@bbn/bbn 1.0.14 → 1.0.16

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 (205) hide show
  1. package/dist/bundle.d.ts +33 -33
  2. package/dist/bundle.js +1341 -555
  3. package/dist/fn/_addLoader.js +12 -4
  4. package/dist/fn/_compareValues.js +2 -2
  5. package/dist/fn/_deleteLoader.js +0 -1
  6. package/dist/fn/abort.js +12 -3
  7. package/dist/fn/abortURL.js +0 -1
  8. package/dist/fn/addColors.js +9 -2
  9. package/dist/fn/addInputs.js +9 -2
  10. package/dist/fn/addStyle.js +7 -3
  11. package/dist/fn/adjustSize.js +19 -6
  12. package/dist/fn/ajax.js +16 -6
  13. package/dist/fn/analyzeFunction.js +10 -1
  14. package/dist/fn/animateCss.js +8 -2
  15. package/dist/fn/arrayBuffer2String.js +3 -1
  16. package/dist/fn/arrayFromProp.js +7 -1
  17. package/dist/fn/autoExtend.js +2 -1
  18. package/dist/fn/br2nl.js +3 -1
  19. package/dist/fn/calendar.js +8 -2
  20. package/dist/fn/callback.js +4 -3
  21. package/dist/fn/camelToCss.js +7 -1
  22. package/dist/fn/canvasToImage.js +5 -1
  23. package/dist/fn/center.js +12 -1
  24. package/dist/fn/checkProps.js +3 -1
  25. package/dist/fn/checkPropsDetails.js +4 -2
  26. package/dist/fn/checkType.js +0 -1
  27. package/dist/fn/clone.js +3 -1
  28. package/dist/fn/colorToHex.js +5 -1
  29. package/dist/fn/compare.js +28 -15
  30. package/dist/fn/compareConditions.js +1 -0
  31. package/dist/fn/copy.js +8 -2
  32. package/dist/fn/correctCase.js +3 -1
  33. package/dist/fn/count.js +3 -1
  34. package/dist/fn/crc32.js +1 -1
  35. package/dist/fn/cssExists.js +2 -0
  36. package/dist/fn/dateSQL.js +6 -3
  37. package/dist/fn/deepPath.js +9 -7
  38. package/dist/fn/defaultAjaxAbortFunction.js +3 -1
  39. package/dist/fn/defaultAjaxErrorFunction.d.ts +1 -1
  40. package/dist/fn/defaultAjaxErrorFunction.js +15 -2
  41. package/dist/fn/defaultAlertFunction.d.ts +1 -1
  42. package/dist/fn/defaultAlertFunction.js +5 -1
  43. package/dist/fn/defaultEndLoadingFunction.d.ts +1 -1
  44. package/dist/fn/defaultEndLoadingFunction.js +19 -1
  45. package/dist/fn/defaultErrorFunction.js +3 -1
  46. package/dist/fn/defaultHistoryFunction.js +3 -1
  47. package/dist/fn/defaultLinkFunction.js +3 -1
  48. package/dist/fn/defaultPostLinkFunction.js +3 -1
  49. package/dist/fn/defaultPreLinkFunction.d.ts +1 -1
  50. package/dist/fn/defaultPreLinkFunction.js +11 -1
  51. package/dist/fn/defaultResizeFunction.js +3 -1
  52. package/dist/fn/defaultStartLoadingFunction.d.ts +1 -1
  53. package/dist/fn/defaultStartLoadingFunction.js +14 -1
  54. package/dist/fn/deleteProp.js +5 -2
  55. package/dist/fn/diffObj.js +20 -5
  56. package/dist/fn/download.js +4 -1
  57. package/dist/fn/downloadContent.js +12 -1
  58. package/dist/fn/eraseCookie.js +3 -1
  59. package/dist/fn/error.js +5 -1
  60. package/dist/fn/escapeRegExp.js +3 -1
  61. package/dist/fn/escapeUrl.js +3 -1
  62. package/dist/fn/extend.js +6 -2
  63. package/dist/fn/fdate.js +1 -0
  64. package/dist/fn/fdatetime.js +10 -2
  65. package/dist/fn/filter.js +10 -6
  66. package/dist/fn/filterToConditions.js +8 -2
  67. package/dist/fn/findAll.js +5 -3
  68. package/dist/fn/format.js +5 -2
  69. package/dist/fn/formatDate.js +3 -1
  70. package/dist/fn/formdata.js +7 -2
  71. package/dist/fn/ftime.js +3 -1
  72. package/dist/fn/getAllTags.js +3 -1
  73. package/dist/fn/getAttributes.js +3 -1
  74. package/dist/fn/getBrowserName.js +20 -10
  75. package/dist/fn/getBrowserVersion.js +21 -10
  76. package/dist/fn/getEventData.js +26 -7
  77. package/dist/fn/getField.js +1 -2
  78. package/dist/fn/getLoader.d.ts +1 -1
  79. package/dist/fn/getLoader.js +0 -1
  80. package/dist/fn/getPath.js +14 -3
  81. package/dist/fn/getProp.js +5 -2
  82. package/dist/fn/getRequestId.js +5 -3
  83. package/dist/fn/getScrollBarSize.d.ts +1 -1
  84. package/dist/fn/getScrollBarSize.js +4 -2
  85. package/dist/fn/getText.js +3 -1
  86. package/dist/fn/getTimeoff.js +0 -1
  87. package/dist/fn/happy.js +8 -1
  88. package/dist/fn/hash.js +2 -1
  89. package/dist/fn/hex2rgb.js +8 -1
  90. package/dist/fn/history.js +3 -1
  91. package/dist/fn/html2text.js +6 -1
  92. package/dist/fn/imageToCanvas.js +7 -1
  93. package/dist/fn/imgToBase64.js +4 -1
  94. package/dist/fn/info.js +9 -1
  95. package/dist/fn/init.js +70 -13
  96. package/dist/fn/isActiveInterface.js +0 -1
  97. package/dist/fn/isArray.d.ts +1 -1
  98. package/dist/fn/isArray.js +3 -3
  99. package/dist/fn/isBlob.d.ts +1 -1
  100. package/dist/fn/isBlob.js +3 -3
  101. package/dist/fn/isBoolean.d.ts +1 -1
  102. package/dist/fn/isBoolean.js +3 -3
  103. package/dist/fn/isCanvas.d.ts +1 -1
  104. package/dist/fn/isCanvas.js +3 -3
  105. package/dist/fn/isComment.d.ts +1 -1
  106. package/dist/fn/isComment.js +3 -3
  107. package/dist/fn/isCp.d.ts +1 -1
  108. package/dist/fn/isCp.js +3 -4
  109. package/dist/fn/isDate.d.ts +1 -1
  110. package/dist/fn/isDate.js +3 -3
  111. package/dist/fn/isDesktopDevice.js +3 -1
  112. package/dist/fn/isDom.d.ts +1 -1
  113. package/dist/fn/isDom.js +3 -3
  114. package/dist/fn/isEvent.d.ts +1 -1
  115. package/dist/fn/isEvent.js +3 -3
  116. package/dist/fn/isFocused.js +3 -1
  117. package/dist/fn/isFunction.d.ts +1 -1
  118. package/dist/fn/isFunction.js +3 -3
  119. package/dist/fn/isHostname.d.ts +1 -1
  120. package/dist/fn/isHostname.js +10 -6
  121. package/dist/fn/isIP.d.ts +1 -1
  122. package/dist/fn/isIP.js +10 -4
  123. package/dist/fn/isInside.js +6 -4
  124. package/dist/fn/isInt.d.ts +1 -1
  125. package/dist/fn/isInt.js +3 -3
  126. package/dist/fn/isIterable.js +3 -1
  127. package/dist/fn/isMobile.js +3 -1
  128. package/dist/fn/isMobileDevice.js +3 -1
  129. package/dist/fn/isNull.d.ts +1 -1
  130. package/dist/fn/isNull.js +3 -3
  131. package/dist/fn/isNumber.d.ts +1 -1
  132. package/dist/fn/isNumber.js +3 -3
  133. package/dist/fn/isObject.d.ts +1 -1
  134. package/dist/fn/isObject.js +3 -3
  135. package/dist/fn/isPercent.d.ts +1 -1
  136. package/dist/fn/isPercent.js +3 -3
  137. package/dist/fn/isPrimitive.d.ts +1 -1
  138. package/dist/fn/isPrimitive.js +3 -3
  139. package/dist/fn/isPromise.d.ts +1 -1
  140. package/dist/fn/isPromise.js +3 -3
  141. package/dist/fn/isPropSize.js +10 -4
  142. package/dist/fn/isSQLDate.d.ts +1 -1
  143. package/dist/fn/isSQLDate.js +5 -4
  144. package/dist/fn/isSame.js +7 -4
  145. package/dist/fn/isSymbol.d.ts +1 -1
  146. package/dist/fn/isSymbol.js +3 -3
  147. package/dist/fn/isTabletDevice.js +3 -1
  148. package/dist/fn/isURL.d.ts +1 -1
  149. package/dist/fn/isURL.js +10 -2
  150. package/dist/fn/isValidDimension.js +3 -1
  151. package/dist/fn/isValidName.d.ts +1 -1
  152. package/dist/fn/isValidName.js +3 -3
  153. package/dist/fn/isValue.d.ts +1 -1
  154. package/dist/fn/isValue.js +3 -3
  155. package/dist/fn/isVue.d.ts +1 -1
  156. package/dist/fn/isVue.js +5 -6
  157. package/dist/fn/iterate.js +5 -3
  158. package/dist/fn/link.js +24 -4
  159. package/dist/fn/log.js +0 -1
  160. package/dist/fn/makeReactive.js +47 -11
  161. package/dist/fn/md5.js +12 -3
  162. package/dist/fn/money.js +26 -1
  163. package/dist/fn/nl2br.js +3 -1
  164. package/dist/fn/objectToFormData.js +8 -4
  165. package/dist/fn/order.js +3 -1
  166. package/dist/fn/percent.js +3 -1
  167. package/dist/fn/pickValue.js +5 -3
  168. package/dist/fn/post.js +8 -3
  169. package/dist/fn/printf.js +8 -1
  170. package/dist/fn/randomInt.js +3 -1
  171. package/dist/fn/randomString.js +9 -2
  172. package/dist/fn/removeAccents.js +0 -1
  173. package/dist/fn/removeExtraSpaces.js +3 -1
  174. package/dist/fn/repeat.js +7 -1
  175. package/dist/fn/replaceSelection.js +6 -0
  176. package/dist/fn/resize.js +0 -1
  177. package/dist/fn/riterate.js +3 -1
  178. package/dist/fn/roundDecimal.js +3 -1
  179. package/dist/fn/search.js +17 -3
  180. package/dist/fn/selector.js +3 -1
  181. package/dist/fn/setNavigationVars.js +20 -3
  182. package/dist/fn/setProp.js +9 -2
  183. package/dist/fn/setProperty.js +0 -1
  184. package/dist/fn/shorten.js +0 -1
  185. package/dist/fn/shuffle.js +6 -1
  186. package/dist/fn/simpleHash.js +5 -1
  187. package/dist/fn/simpleHash1.js +1 -1
  188. package/dist/fn/simpleHash2.js +1 -1
  189. package/dist/fn/startChrono.js +5 -3
  190. package/dist/fn/stat.js +3 -2
  191. package/dist/fn/stopChrono.js +7 -5
  192. package/dist/fn/string2ArrayBuffer.js +1 -1
  193. package/dist/fn/submit.js +12 -2
  194. package/dist/fn/substr.js +0 -1
  195. package/dist/fn/sum.js +11 -3
  196. package/dist/fn/timestamp.js +4 -1
  197. package/dist/fn/toggleFullScreen.js +3 -1
  198. package/dist/fn/translate.js +6 -2
  199. package/dist/fn/treatAjaxArguments.js +8 -1
  200. package/dist/fn/uniqString.d.ts +1 -1
  201. package/dist/fn/uniqString.js +14 -11
  202. package/dist/fn/unique.js +5 -1
  203. package/dist/fn/upload.js +20 -10
  204. package/dist/fn/warning.js +10 -1
  205. package/package.json +1 -1
@@ -1,4 +1,6 @@
1
- const pickValue = function (arr) { if (Array.isArray(arr) && arr.length) {
2
- return arr[Math.floor(Math.random() * arr.length)];
3
- } };
1
+ const pickValue = function (arr) {
2
+ if (Array.isArray(arr) && arr.length) {
3
+ return arr[Math.floor(Math.random() * arr.length)];
4
+ }
5
+ };
4
6
  export { pickValue };
package/dist/fn/post.js CHANGED
@@ -1,7 +1,12 @@
1
1
  import { treatAjaxArguments } from './treatAjaxArguments';
2
2
  import { ajax } from './ajax';
3
3
  import { callback } from './callback';
4
- const post = function () { let cfg = treatAjaxArguments(arguments); if (cfg.url) {
5
- return ajax(cfg.url, cfg.datatype, cfg.obj, (res) => { callback(cfg.url, res, cfg.successFn, false, cfg.ele); }, cfg.errorFn, cfg.abortFn);
6
- } };
4
+ const post = function () {
5
+ let cfg = treatAjaxArguments(arguments);
6
+ if (cfg.url) {
7
+ return ajax(cfg.url, cfg.datatype, cfg.obj, (res) => {
8
+ callback(cfg.url, res, cfg.successFn, false, cfg.ele);
9
+ }, cfg.errorFn, cfg.abortFn);
10
+ }
11
+ };
7
12
  export { post };
package/dist/fn/printf.js CHANGED
@@ -1,2 +1,9 @@
1
- const printf = function (format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
1
+ const printf = function (format) {
2
+ var args = Array.prototype.slice.call(arguments, 1);
3
+ return format.replace(/{(\d+)}/g, function (match, number) {
4
+ return typeof args[number] != 'undefined'
5
+ ? args[number]
6
+ : match;
7
+ });
8
+ };
2
9
  export { printf };
@@ -1,2 +1,4 @@
1
- const randomInt = function (min, max) { return Math.floor(Math.random() * (max - min + 1) + min); };
1
+ const randomInt = function (min, max) {
2
+ return Math.floor(Math.random() * (max - min + 1) + min);
3
+ };
2
4
  export { randomInt };
@@ -1,7 +1,11 @@
1
1
  import { randomInt } from './randomInt';
2
2
  import { isString } from './isString';
3
3
  const randomString = function (min, max, types) {
4
- let length, type, chars = { n: '0123456789', l: 'abcdefghijklmnopqrstuvwxyz', u: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' };
4
+ let length, type, chars = {
5
+ n: '0123456789',
6
+ l: 'abcdefghijklmnopqrstuvwxyz',
7
+ u: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
8
+ };
5
9
  if (!types) {
6
10
  types = 'nlu';
7
11
  }
@@ -10,7 +14,9 @@ const randomString = function (min, max, types) {
10
14
  }
11
15
  if (isString(max)) {
12
16
  types = 'n';
13
- chars = { n: max };
17
+ chars = {
18
+ n: max
19
+ };
14
20
  if (!length) {
15
21
  length = min;
16
22
  }
@@ -23,6 +29,7 @@ const randomString = function (min, max, types) {
23
29
  }
24
30
  let result = '';
25
31
  for (let i = 0; i < length; i++) {
32
+ // Not a number for the first char
26
33
  if (i === 0) {
27
34
  if (types !== 'n') {
28
35
  type = types.indexOf('u') === -1 ? 'l' : 'u';
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { isString } from './isString';
3
2
  import { log } from './log';
4
3
  const removeAccents = function (st) {
@@ -1,2 +1,4 @@
1
- const removeExtraSpaces = function (str) { return str.replace(/\s+/g, ' ').trim(); };
1
+ const removeExtraSpaces = function (str) {
2
+ return str.replace(/\s+/g, ' ').trim();
3
+ };
2
4
  export { removeExtraSpaces };
package/dist/fn/repeat.js CHANGED
@@ -1,3 +1,9 @@
1
1
  import { iterate } from './iterate';
2
- const repeat = function (st, num) { let res = ''; iterate(num, () => { res += st; }); return res; };
2
+ const repeat = function (st, num) {
3
+ let res = '';
4
+ iterate(num, () => {
5
+ res += st;
6
+ });
7
+ return res;
8
+ };
3
9
  export { repeat };
@@ -1,13 +1,19 @@
1
1
  const replaceSelection = function (html, selectInserted) {
2
2
  let sel, range, fragment;
3
3
  sel = window.getSelection();
4
+ // Test that the Selection object contains at least one Range
4
5
  if (sel.getRangeAt && sel.rangeCount) {
6
+ // Get the first Range (only Firefox supports more than one)
5
7
  range = window.getSelection().getRangeAt(0);
6
8
  range.deleteContents();
9
+ // Create a DocumentFragment to insert and populate it with HTML
10
+ // Need to test for the existence of range.createContextualFragment
11
+ // because it's non-standard and IE 9 does not support it
7
12
  if (range.createContextualFragment) {
8
13
  fragment = range.createContextualFragment(html);
9
14
  }
10
15
  else {
16
+ // In IE 9 we need to use innerHTML of a temporary element
11
17
  const div = document.createElement("div");
12
18
  let child;
13
19
  div.innerHTML = html;
package/dist/fn/resize.js CHANGED
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { getCssVar } from './getCssVar';
3
2
  import { each } from './each';
4
3
  import { defaultResizeFunction } from './defaultResizeFunction';
@@ -1,3 +1,5 @@
1
1
  import { iterate } from './iterate';
2
- const riterate = function (obj, fn, noPrivate) { return iterate(obj, fn, noPrivate, true); };
2
+ const riterate = function (obj, fn, noPrivate) {
3
+ return iterate(obj, fn, noPrivate, true);
4
+ };
3
5
  export { riterate };
@@ -1,2 +1,4 @@
1
- const roundDecimal = function (value, decimals) { return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals); };
1
+ const roundDecimal = function (value, decimals) {
2
+ return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
3
+ };
2
4
  export { roundDecimal };
package/dist/fn/search.js CHANGED
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { isIterable } from './isIterable';
3
2
  import { isString } from './isString';
4
3
  import { compareConditions } from './compareConditions';
@@ -16,11 +15,26 @@ const search = function (arr, prop, val, operator, startFrom) {
16
15
  let filter = {};
17
16
  let isFunction = false;
18
17
  if (isString(prop)) {
19
- filter.conditions = [{ field: prop, value: val, operator: operator || '=' }];
18
+ filter.conditions = [{
19
+ field: prop,
20
+ value: val,
21
+ operator: operator || '='
22
+ }];
20
23
  }
21
24
  else if (!prop) {
22
25
  isFunction = true;
23
- filter = a => { return compareConditions({ value: a }, filterToConditions({ logic: 'AND', conditions: [{ field: 'value', operator: operator || '=', value: val }] })); };
26
+ filter = a => {
27
+ return compareConditions({ value: a }, filterToConditions({
28
+ logic: 'AND',
29
+ conditions: [
30
+ {
31
+ field: 'value',
32
+ operator: operator || '=',
33
+ value: val
34
+ }
35
+ ]
36
+ }));
37
+ };
24
38
  }
25
39
  else {
26
40
  startFrom = operator;
@@ -1,2 +1,4 @@
1
- const selector = function (ele) { return (typeof el === 'string') ? document.querySelector(ele) : ele; };
1
+ const selector = function (ele) {
2
+ return (typeof el === 'string') ? document.querySelector(ele) : ele;
3
+ };
2
4
  export { selector };
@@ -1,17 +1,30 @@
1
- import { bbn } from '../definitions';
2
1
  import { substr } from './substr';
3
2
  import { filter } from './filter';
4
3
  import { extend } from './extend';
5
4
  import { html2text } from './html2text';
6
5
  const setNavigationVars = function (url, title, data, repl) {
6
+ // Current path becomes old path
7
7
  bbn.env.old_path = bbn.env.path;
8
+ // URL includes the domain
8
9
  bbn.env.url = ['https:/', 'http://'].includes(substr(url, 0, 7)) ? url : bbn.env.root + url;
10
+ // Path does not
9
11
  bbn.env.path = substr(bbn.env.url, bbn.env.root.length);
10
- bbn.env.params = filter(bbn.env.path.split("/"), (v) => { return v !== ''; });
12
+ // Params will include each part of the URL
13
+ bbn.env.params = filter(bbn.env.path.split("/"), (v) => {
14
+ return v !== '';
15
+ });
16
+ // Managing history
11
17
  let h = window.history;
12
18
  if (h) {
19
+ // Current state
13
20
  let state = h.state;
14
- let obj = { url: bbn.env.path, old_path: bbn.env.old_path || null, data: data || {} };
21
+ // Future state
22
+ let obj = {
23
+ url: bbn.env.path,
24
+ old_path: bbn.env.old_path || null,
25
+ data: data || {}
26
+ };
27
+ // If same URL we replace
15
28
  if (state && (state.url === bbn.env.path)) {
16
29
  if (state.data) {
17
30
  extend(obj.data, state.data);
@@ -21,16 +34,20 @@ const setNavigationVars = function (url, title, data, repl) {
21
34
  }
22
35
  repl = 1;
23
36
  }
37
+ // If no title the global title
24
38
  if (!title) {
25
39
  title = bbn.env.siteTitle;
26
40
  }
41
+ // Otherwise we add the global title at the end
27
42
  else {
28
43
  title = html2text(title);
29
44
  }
45
+ // Replacing state
30
46
  if (repl) {
31
47
  obj.reload = 1;
32
48
  h.replaceState(obj, title, bbn.env.url);
33
49
  }
50
+ // Adding state
34
51
  else {
35
52
  h.pushState(obj, title, bbn.env.url);
36
53
  }
@@ -1,3 +1,10 @@
1
- import { bbn } from '../definitions';
2
- const setProp = function (obj, prop, value, writable = true, configurable = true) { checkType(prop, "string", bbn._("The prop must be a string in setProp")); checkType(obj, "object", bbn._("The obj must be an object in setProp")); Object.defineProperty(obj, prop, { value: value, writable: writable, configurable: configurable }); };
1
+ const setProp = function (obj, prop, value, writable = true, configurable = true) {
2
+ checkType(prop, "string", bbn._("The prop must be a string in setProp"));
3
+ checkType(obj, "object", bbn._("The obj must be an object in setProp"));
4
+ Object.defineProperty(obj, prop, {
5
+ value: value,
6
+ writable: writable,
7
+ configurable: configurable
8
+ });
9
+ };
3
10
  export { setProp };
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { each } from './each';
3
2
  const setProperty = function (obj, prop, value, force) {
4
3
  if ((typeof obj === 'object') && (typeof prop === 'string')) {
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { isString } from './isString';
3
2
  import { substr } from './substr';
4
3
  const shorten = function (st, len, adj) {
@@ -1,9 +1,14 @@
1
1
  const shuffle = function (array) {
2
2
  let currentIndex = array.length, randomIndex;
3
+ // While there remain elements to shuffle.
3
4
  while (currentIndex != 0) {
5
+ // Pick a remaining element.
4
6
  randomIndex = Math.floor(Math.random() * currentIndex);
5
7
  currentIndex--;
6
- [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
8
+ // And swap it with the current element.
9
+ [array[currentIndex], array[randomIndex]] = [
10
+ array[randomIndex], array[currentIndex]
11
+ ];
7
12
  }
8
13
  return array;
9
14
  };
@@ -1,4 +1,8 @@
1
1
  import { simpleHash1 } from './simpleHash1';
2
2
  import { simpleHash2 } from './simpleHash2';
3
- const simpleHash = function (str) { const part1 = simpleHash1(str).toString(16).padStart(8, '0'); const part2 = simpleHash2(str).toString(16).padStart(8, '0'); return part1 + part2; };
3
+ const simpleHash = function (str) {
4
+ const part1 = simpleHash1(str).toString(16).padStart(8, '0');
5
+ const part2 = simpleHash2(str).toString(16).padStart(8, '0');
6
+ return part1 + part2;
7
+ };
4
8
  export { simpleHash };
@@ -3,7 +3,7 @@ const simpleHash1 = function (str) {
3
3
  for (let i = 0; i < str.length; i++) {
4
4
  const char = str.charCodeAt(i);
5
5
  hash = ((hash << 5) - hash) + char;
6
- hash |= 0;
6
+ hash |= 0; // Convert to 32-bit integer
7
7
  }
8
8
  return hash;
9
9
  };
@@ -3,7 +3,7 @@ const simpleHash2 = function (str) {
3
3
  for (let i = 0; i < str.length; i++) {
4
4
  const char = str.charCodeAt(i);
5
5
  hash = char + (hash << 6) + (hash << 16) - hash;
6
- hash |= 0;
6
+ hash |= 0; // Convert to 32-bit integer
7
7
  }
8
8
  return hash;
9
9
  };
@@ -3,9 +3,11 @@ const startChrono = function (name) {
3
3
  let now = (new Date()).getTime();
4
4
  let h1 = 3600 * 1000;
5
5
  if (_private.length) {
6
- each(_private, (t, n) => { if (now - t > h1) {
7
- delete _private[n];
8
- } });
6
+ each(_private, (t, n) => {
7
+ if (now - t > h1) {
8
+ delete _private[n];
9
+ }
10
+ });
9
11
  now = (new Date()).getTime();
10
12
  }
11
13
  _private[name] = now;
package/dist/fn/stat.js CHANGED
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { getPath } from './getPath';
3
2
  const stat = function (returnStat) {
4
3
  return;
@@ -17,7 +16,9 @@ const stat = function (returnStat) {
17
16
  a = a.toString();
18
17
  }
19
18
  if (!logs[a]) {
20
- logs[a] = { _num: 0, };
19
+ logs[a] = {
20
+ _num: 0,
21
+ };
21
22
  }
22
23
  logs[a]._num++;
23
24
  logs = logs[a];
@@ -1,6 +1,8 @@
1
- const stopChrono = function (name) { if (_private[name]) {
2
- let now = (new Date()).getTime();
3
- let diff = now - _private[name];
4
- return diff;
5
- } };
1
+ const stopChrono = function (name) {
2
+ if (_private[name]) {
3
+ let now = (new Date()).getTime();
4
+ let diff = now - _private[name];
5
+ return diff;
6
+ }
7
+ };
6
8
  export { stopChrono };
@@ -1,5 +1,5 @@
1
1
  const string2ArrayBuffer = function (str) {
2
- var buf = new ArrayBuffer(str.length * 2);
2
+ var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char
3
3
  var bufView = new Uint16Array(buf);
4
4
  for (var i = 0, strLen = str.length; i < strLen; i++) {
5
5
  bufView[i] = str.charCodeAt(i);
package/dist/fn/submit.js CHANGED
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { formdata } from './formdata';
3
2
  import { isFunction } from './isFunction';
4
3
  import { isString } from './isString';
@@ -8,17 +7,28 @@ const submit = function (form, e, fn) {
8
7
  if (url === '') {
9
8
  url = '.';
10
9
  }
10
+ //if ( (typeof(url) === 'string') && (url.indexOf("http") !== 0 || url.indexOf(window.document.location.hostname) !== -1) && !form.is("[target]") ){
11
11
  if ((typeof (url) === 'string') && (url.indexOf("http") !== 0 || url.indexOf(window.document.location.hostname) !== -1) && !form.getAttribute("target")) {
12
12
  if (e) {
13
13
  e.preventDefault();
14
14
  }
15
15
  data = formdata(form);
16
16
  if (data) {
17
+ //$form.attr("action", null);
17
18
  form.setAttribute('action', null);
19
+ //$form.data("bbnSubmit", 1);
18
20
  form.dataset.bbnSubmit = 1;
21
+ //var script = $form.data("script");
19
22
  let script = form.dataset.script;
20
23
  if (isFunction(script)) {
21
- form.dataset.script = d => { form.setAttribute("action", url); script(d); };
24
+ /*$form.data("script", function(d){
25
+ $form.attr("action", url);
26
+ script(d);
27
+ })*/
28
+ form.dataset.script = d => {
29
+ form.setAttribute("action", url);
30
+ script(d);
31
+ };
22
32
  }
23
33
  if (!fn) {
24
34
  fn = form.getAttribute("data-script");
package/dist/fn/substr.js CHANGED
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { isString } from './isString';
3
2
  import { isInt } from './isInt';
4
3
  import { log } from './log';
package/dist/fn/sum.js CHANGED
@@ -1,6 +1,14 @@
1
1
  import { each } from './each';
2
2
  import { filter } from './filter';
3
- const sum = function (arr, numberProp, prop, val, operator) { let r = 0; let isFunction = isFunction(numberProp); each(filter(arr, prop, val, operator), (a) => { let tmp = isFunction ? numberProp(a) : a[numberProp]; if (tmp) {
4
- r += (parseFloat(tmp) || 0);
5
- } }); return r; };
3
+ const sum = function (arr, numberProp, prop, val, operator) {
4
+ let r = 0;
5
+ let isFunction = isFunction(numberProp);
6
+ each(filter(arr, prop, val, operator), (a) => {
7
+ let tmp = isFunction ? numberProp(a) : a[numberProp];
8
+ if (tmp) {
9
+ r += (parseFloat(tmp) || 0);
10
+ }
11
+ });
12
+ return r;
13
+ };
6
14
  export { sum };
@@ -1,2 +1,5 @@
1
- const timestamp = function (seconds) { var r = (new Date()).getTime(); return seconds ? Math.round(r / 1000) : r; };
1
+ const timestamp = function (seconds) {
2
+ var r = (new Date()).getTime();
3
+ return seconds ? Math.round(r / 1000) : r;
4
+ };
2
5
  export { timestamp };
@@ -32,6 +32,8 @@ const toggleFullScreen = function () {
32
32
  window.document.documentElement.requestFullscreen();
33
33
  }
34
34
  }
35
- setTimeout(function () { resize(); }, 0);
35
+ setTimeout(function () {
36
+ resize();
37
+ }, 0);
36
38
  };
37
39
  export { toggleFullScreen };
@@ -1,4 +1,8 @@
1
- import { bbn } from '../definitions';
2
1
  import { iterate } from './iterate';
3
- const translate = function (o, namespace) { let lng = namespace ? bbn.lng[namespace.indexOf('_') === 0 ? namespace : '_' + namespace] : bbn.lng; iterate(o, (v, k) => { lng[k] = v; }); };
2
+ const translate = function (o, namespace) {
3
+ let lng = namespace ? bbn.lng[namespace.indexOf('_') === 0 ? namespace : '_' + namespace] : bbn.lng;
4
+ iterate(o, (v, k) => {
5
+ lng[k] = v;
6
+ });
7
+ };
4
8
  export { translate };
@@ -1,4 +1,3 @@
1
- import { bbn } from '../definitions';
2
1
  import { isObject } from './isObject';
3
2
  import { isFunction } from './isFunction';
4
3
  import { substr } from './substr';
@@ -11,6 +10,7 @@ const treatAjaxArguments = function (args) {
11
10
  for (i = 0; i < args.length; i++) {
12
11
  t = typeof (args[i]);
13
12
  t = t.toLowerCase();
13
+ /* Callbacks */
14
14
  if (isFunction(args[i])) {
15
15
  if (cfg.errorFn && !cfg.abortFn) {
16
16
  cfg.abortFn = args[i];
@@ -22,14 +22,17 @@ const treatAjaxArguments = function (args) {
22
22
  cfg.successFn = args[i];
23
23
  }
24
24
  }
25
+ /* Force */
25
26
  else if ((args[i] === 1) || (args[i] === true)) {
26
27
  cfg.force = true;
27
28
  }
28
29
  else if (t === 'string') {
29
30
  if (!cfg.url) {
31
+ /* Hash */
30
32
  if (args[i].indexOf('#') === 0 || args[i].indexOf(bbn.env.root + '#') === 0) {
31
33
  cfg.url = substr(args[i], bbn.env.root.length);
32
34
  }
35
+ /* Link */
33
36
  else {
34
37
  cfg.url = args[i];
35
38
  if (cfg.url.indexOf(bbn.env.root) === 0) {
@@ -37,17 +40,21 @@ const treatAjaxArguments = function (args) {
37
40
  }
38
41
  }
39
42
  }
43
+ /* Ajax datatype */
40
44
  else {
41
45
  cfg.datatype = args[i];
42
46
  }
43
47
  }
48
+ /* Event */
44
49
  else if (args[i] && (t === 'object')) {
45
50
  if (args[i] instanceof Event) {
46
51
  cfg.e = args[i];
47
52
  }
53
+ /* HTML Element */
48
54
  else if (!cfg.ele && (args[i].nodeType === 1)) {
49
55
  cfg.ele = args[i];
50
56
  }
57
+ /* An object to post */
51
58
  else if (t.toLowerCase() === 'object') {
52
59
  cfg.obj = args[i];
53
60
  }
@@ -1,2 +1,2 @@
1
- declare const uniqString: () => string;
1
+ declare const uniqString: (...args: any[]) => string;
2
2
  export { uniqString };
@@ -1,28 +1,31 @@
1
1
  import { isArray } from './isArray';
2
2
  import { each } from './each';
3
3
  import { md5 } from './md5';
4
- const uniqString = function () {
4
+ const uniqString = function (...args) {
5
5
  var st = '';
6
- for (var i = 0; i < arguments.length; i++) {
7
- if (!arguments[i]) {
6
+ for (var i = 0; i < args.length; i++) {
7
+ if (!args[i]) {
8
8
  st += '__bbn_empty__';
9
9
  }
10
- else if (typeof (arguments[i]) === 'object') {
11
- if (isArray(arguments[i])) {
12
- st += JSON.stringify(arguments[i]);
10
+ else if (typeof (args[i]) === 'object') {
11
+ if (isArray(args[i])) {
12
+ st += JSON.stringify(args[i]);
13
13
  }
14
14
  else {
15
+ // An object with the same properties, even in different order, should produce the same answer
15
16
  let tmp = {};
16
- let ks = Object.keys(arguments[i]).sort();
17
- each(ks, k => { tmp[k] = arguments[i][k]; });
17
+ let ks = Object.keys(args[i]).sort();
18
+ each(ks, k => {
19
+ tmp[k] = args[i][k];
20
+ });
18
21
  st += JSON.stringify(tmp);
19
22
  }
20
23
  }
21
- else if (typeof (arguments[i]) !== 'string') {
22
- st += arguments[i].toString();
24
+ else if (typeof (args[i]) !== 'string') {
25
+ st += args[i].toString();
23
26
  }
24
27
  else {
25
- st += arguments[i];
28
+ st += args[i];
26
29
  }
27
30
  }
28
31
  return md5(st);
package/dist/fn/unique.js CHANGED
@@ -1,2 +1,6 @@
1
- const unique = function (arr) { return arr.filter(function (el, index, ar) { return index === ar.indexOf(el); }); };
1
+ const unique = function (arr) {
2
+ return arr.filter(function (el, index, ar) {
3
+ return index === ar.indexOf(el);
4
+ });
5
+ };
2
6
  export { unique };
package/dist/fn/upload.js CHANGED
@@ -1,26 +1,36 @@
1
- import { bbn } from '../definitions';
2
1
  import { objectToFormData } from './objectToFormData';
3
2
  import { log } from './log';
4
3
  const upload = function (url, file, success, failure, progress) {
5
4
  let fn = () => {
6
- return axios.post(url || bbn.env.path, objectToFormData(file), { headers: { 'Content-Type': 'multipart/form-data' }, onUploadProgress(progressEvent) {
5
+ return axios.post(url || bbn.env.path, objectToFormData(file), {
6
+ headers: {
7
+ 'Content-Type': 'multipart/form-data'
8
+ },
9
+ onUploadProgress(progressEvent) {
7
10
  if (progress) {
8
11
  let percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
9
12
  progress(percentCompleted, progressEvent.loaded, progressEvent.total);
10
13
  }
11
- } });
14
+ }
15
+ });
12
16
  };
13
17
  if (!success && !failure) {
14
18
  return fn();
15
19
  }
16
20
  else {
17
- return fn().then(res => { if (success) {
18
- log("SUCCESS", res);
19
- success(res);
20
- } }).catch(err => { if (failure) {
21
- log("ERROR", err);
22
- failure(err);
23
- } });
21
+ return fn()
22
+ .then(res => {
23
+ if (success) {
24
+ log("SUCCESS", res);
25
+ success(res);
26
+ }
27
+ })
28
+ .catch(err => {
29
+ if (failure) {
30
+ log("ERROR", err);
31
+ failure(err);
32
+ }
33
+ });
24
34
  }
25
35
  };
26
36
  export { upload };
@@ -1,3 +1,12 @@
1
1
  import { log } from './log';
2
- const warning = function (message) { const args = ["BBN: " + message]; args.unshift({ _bbn_console_mode: "warn", _bbn_console_level: 2, _bbn_console_style: "color: #E64141; background: #F7E195; font-size: 14px" }); log.apply(this, args); return this; };
2
+ const warning = function (message) {
3
+ const args = ["BBN: " + message];
4
+ args.unshift({
5
+ _bbn_console_mode: "warn",
6
+ _bbn_console_level: 2,
7
+ _bbn_console_style: "color: #E64141; background: #F7E195; font-size: 14px"
8
+ });
9
+ log.apply(this, args);
10
+ return this;
11
+ };
3
12
  export { warning };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bbn/bbn",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Javascript toolkit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",