@bbn/bbn 1.0.436 → 1.0.438

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 (206) hide show
  1. package/dist/_.js +7 -11
  2. package/dist/bbn.js +1 -1
  3. package/dist/bbn.js.map +1 -1
  4. package/dist/date.d.ts +26 -0
  5. package/dist/date.js +190 -0
  6. package/dist/db.js +107 -124
  7. package/dist/fn/ajax/_addLoader.js +6 -6
  8. package/dist/fn/ajax/_deleteLoader.js +11 -13
  9. package/dist/fn/ajax/abort.js +1 -1
  10. package/dist/fn/ajax/abortURL.js +1 -1
  11. package/dist/fn/ajax/ajax.js +25 -30
  12. package/dist/fn/ajax/callback.js +10 -14
  13. package/dist/fn/ajax/download.js +7 -9
  14. package/dist/fn/ajax/downloadContent.js +5 -6
  15. package/dist/fn/ajax/getLoader.js +1 -1
  16. package/dist/fn/ajax/getRequestId.js +2 -2
  17. package/dist/fn/ajax/link.js +9 -13
  18. package/dist/fn/ajax/post.js +3 -7
  19. package/dist/fn/ajax/postOut.js +2 -4
  20. package/dist/fn/ajax/setNavigationVars.js +5 -7
  21. package/dist/fn/ajax/stream.js +21 -22
  22. package/dist/fn/ajax/treatAjaxArguments.js +3 -3
  23. package/dist/fn/ajax/upload.js +6 -9
  24. package/dist/fn/browser/copy.js +9 -12
  25. package/dist/fn/browser/error.js +2 -2
  26. package/dist/fn/browser/executeSlowly.js +11 -55
  27. package/dist/fn/browser/getBrowserName.js +1 -1
  28. package/dist/fn/browser/getBrowserVersion.js +1 -1
  29. package/dist/fn/browser/getCookie.js +5 -5
  30. package/dist/fn/browser/getDeviceType.js +1 -1
  31. package/dist/fn/browser/getEventData.js +30 -30
  32. package/dist/fn/browser/happy.js +1 -5
  33. package/dist/fn/browser/info.js +1 -5
  34. package/dist/fn/browser/isActiveInterface.js +2 -3
  35. package/dist/fn/browser/isFocused.js +1 -2
  36. package/dist/fn/browser/log.js +8 -12
  37. package/dist/fn/browser/replaceSelection.js +5 -5
  38. package/dist/fn/browser/selectElementText.js +4 -5
  39. package/dist/fn/browser/setCookie.js +3 -3
  40. package/dist/fn/browser/warning.js +2 -2
  41. package/dist/fn/browser/yieldToBrowser.js +7 -43
  42. package/dist/fn/convert/arrayBuffer2String.js +1 -1
  43. package/dist/fn/convert/canvasToImage.js +1 -1
  44. package/dist/fn/convert/colorToHex.js +1 -1
  45. package/dist/fn/convert/fromXml.js +7 -13
  46. package/dist/fn/convert/hex2rgb.js +1 -1
  47. package/dist/fn/convert/imageToCanvas.js +1 -1
  48. package/dist/fn/convert/imgToBase64.js +2 -3
  49. package/dist/fn/convert/toCSV.js +7 -10
  50. package/dist/fn/datetime/calendar.js +4 -5
  51. package/dist/fn/datetime/date.js +1 -1
  52. package/dist/fn/datetime/dateSQL.js +1 -1
  53. package/dist/fn/datetime/daysInMonth.js +1 -1
  54. package/dist/fn/datetime/fdate.js +2 -3
  55. package/dist/fn/datetime/fdatetime.js +2 -3
  56. package/dist/fn/datetime/ftime.js +1 -1
  57. package/dist/fn/datetime/getChrono.js +2 -3
  58. package/dist/fn/datetime/getDay.js +3 -3
  59. package/dist/fn/datetime/startChrono.js +1 -1
  60. package/dist/fn/datetime/stopChrono.js +2 -2
  61. package/dist/fn/datetime/timestamp.js +2 -3
  62. package/dist/fn/default/defaultAjaxAbortFunction.js +1 -2
  63. package/dist/fn/default/defaultAjaxErrorFunction.js +1 -3
  64. package/dist/fn/default/defaultAlertFunction.js +1 -2
  65. package/dist/fn/default/defaultConfirmFunction.js +2 -3
  66. package/dist/fn/default/defaultEndLoadingFunction.js +1 -3
  67. package/dist/fn/default/defaultPostLinkFunction.js +1 -2
  68. package/dist/fn/default/defaultPreLinkFunction.js +1 -3
  69. package/dist/fn/form/addInputs.js +10 -12
  70. package/dist/fn/form/fieldValue.js +1 -1
  71. package/dist/fn/form/formdata.js +24 -24
  72. package/dist/fn/form/objectToFormData.js +5 -8
  73. package/dist/fn/form/submit.js +4 -4
  74. package/dist/fn/html/adjustHeight.js +1 -1
  75. package/dist/fn/html/adjustSize.js +5 -5
  76. package/dist/fn/html/adjustWidth.js +1 -1
  77. package/dist/fn/html/getAllTags.js +1 -1
  78. package/dist/fn/html/getAncestors.js +2 -3
  79. package/dist/fn/html/getAttributes.js +2 -2
  80. package/dist/fn/html/getHTMLOfSelection.js +4 -4
  81. package/dist/fn/html/getHtml.js +2 -3
  82. package/dist/fn/html/getIndex.js +3 -4
  83. package/dist/fn/html/getPath.js +12 -17
  84. package/dist/fn/html/html2text.js +1 -1
  85. package/dist/fn/html/isInViewport.js +4 -5
  86. package/dist/fn/html/isInside.js +5 -5
  87. package/dist/fn/html/makeReactive.js +22 -26
  88. package/dist/fn/init.js +18 -18
  89. package/dist/fn/loop/each.js +2 -2
  90. package/dist/fn/loop/fori.js +3 -5
  91. package/dist/fn/loop/forir.js +3 -5
  92. package/dist/fn/loop/iterate.js +3 -6
  93. package/dist/fn/loop/riterate.js +1 -2
  94. package/dist/fn/misc/analyzeFunction.js +36 -36
  95. package/dist/fn/misc/money.js +4 -4
  96. package/dist/fn/misc/translate.js +2 -2
  97. package/dist/fn/object/_compareValues.js +2 -3
  98. package/dist/fn/object/_filter.js +7 -10
  99. package/dist/fn/object/arrayFromProp.js +2 -2
  100. package/dist/fn/object/checkProps.js +1 -2
  101. package/dist/fn/object/checkPropsDetails.js +8 -9
  102. package/dist/fn/object/checkPropsOrDie.js +2 -3
  103. package/dist/fn/object/circularReplacer.js +2 -2
  104. package/dist/fn/object/clone.js +2 -2
  105. package/dist/fn/object/compareConditions.js +6 -6
  106. package/dist/fn/object/count.js +1 -3
  107. package/dist/fn/object/createObject.js +3 -16
  108. package/dist/fn/object/deepPath.js +6 -7
  109. package/dist/fn/object/diffObj.js +11 -13
  110. package/dist/fn/object/extend.js +10 -14
  111. package/dist/fn/object/extendOut.js +4 -9
  112. package/dist/fn/object/filter.js +6 -12
  113. package/dist/fn/object/filterToConditions.js +6 -7
  114. package/dist/fn/object/findAll.js +4 -5
  115. package/dist/fn/object/getField.js +2 -8
  116. package/dist/fn/object/getFieldValues.js +2 -2
  117. package/dist/fn/object/getProperty.js +5 -9
  118. package/dist/fn/object/getRow.js +2 -7
  119. package/dist/fn/object/getSortingMoves.js +28 -28
  120. package/dist/fn/object/isWritable.js +1 -1
  121. package/dist/fn/object/map.js +2 -3
  122. package/dist/fn/object/move.js +1 -1
  123. package/dist/fn/object/multiorder.js +5 -6
  124. package/dist/fn/object/mutateArray.js +8 -9
  125. package/dist/fn/object/mutateObject.js +3 -3
  126. package/dist/fn/object/order.js +1 -2
  127. package/dist/fn/object/removeEmpty.js +2 -2
  128. package/dist/fn/object/removePrivateProp.js +2 -3
  129. package/dist/fn/object/search.js +13 -17
  130. package/dist/fn/object/setProp.js +1 -3
  131. package/dist/fn/object/setProperty.js +8 -8
  132. package/dist/fn/object/shortenObj.js +3 -4
  133. package/dist/fn/object/shuffle.js +2 -3
  134. package/dist/fn/object/sum.js +3 -3
  135. package/dist/fn/object/unique.js +1 -1
  136. package/dist/fn/phone/fphone.js +22 -22
  137. package/dist/fn/string/baseName.js +3 -3
  138. package/dist/fn/string/correctCase.js +1 -1
  139. package/dist/fn/string/crc32.js +7 -7
  140. package/dist/fn/string/data2Html.js +4 -5
  141. package/dist/fn/string/dirName.js +1 -1
  142. package/dist/fn/string/escapeUrl.js +6 -6
  143. package/dist/fn/string/fileExt.js +1 -1
  144. package/dist/fn/string/firstVarElement.js +2 -2
  145. package/dist/fn/string/format.js +4 -4
  146. package/dist/fn/string/formatBytes.js +2 -3
  147. package/dist/fn/string/hash.js +4 -8
  148. package/dist/fn/string/randomString.js +5 -5
  149. package/dist/fn/string/replaceAll.js +1 -2
  150. package/dist/fn/string/sanitize.js +6 -7
  151. package/dist/fn/string/simpleHash.js +2 -2
  152. package/dist/fn/string/simpleHash1.js +3 -3
  153. package/dist/fn/string/simpleHash2.js +3 -3
  154. package/dist/fn/string/treatForHash.js +6 -10
  155. package/dist/fn/string/trim.js +1 -2
  156. package/dist/fn/string/uniqString.js +7 -14
  157. package/dist/fn/style/addColors.js +14 -14
  158. package/dist/fn/style/addStyle.js +1 -1
  159. package/dist/fn/style/animateCss.js +1 -1
  160. package/dist/fn/style/center.js +1 -1
  161. package/dist/fn/style/cssExists.js +5 -5
  162. package/dist/fn/style/getCssVar.js +1 -1
  163. package/dist/fn/style/getScrollBarSize.js +5 -5
  164. package/dist/fn/style/lightenDarkenHex.js +2 -2
  165. package/dist/fn/style/outerHeight.js +2 -2
  166. package/dist/fn/style/outerWidth.js +2 -2
  167. package/dist/fn/style/resize.js +14 -14
  168. package/dist/fn/type/checkType.js +5 -9
  169. package/dist/fn/type/isArray.js +2 -7
  170. package/dist/fn/type/isBlob.js +2 -7
  171. package/dist/fn/type/isBoolean.js +2 -7
  172. package/dist/fn/type/isCanvas.js +2 -7
  173. package/dist/fn/type/isColor.js +2 -7
  174. package/dist/fn/type/isComment.js +2 -7
  175. package/dist/fn/type/isCp.js +3 -8
  176. package/dist/fn/type/isDataURL.js +2 -7
  177. package/dist/fn/type/isDate.js +2 -7
  178. package/dist/fn/type/isDimension.js +2 -7
  179. package/dist/fn/type/isDom.js +2 -7
  180. package/dist/fn/type/isEmail.js +3 -8
  181. package/dist/fn/type/isEvent.js +2 -7
  182. package/dist/fn/type/isFunction.js +2 -7
  183. package/dist/fn/type/isHostname.js +2 -7
  184. package/dist/fn/type/isIP.js +2 -7
  185. package/dist/fn/type/isInt.js +2 -7
  186. package/dist/fn/type/isIterable.js +2 -7
  187. package/dist/fn/type/isNotObject.js +2 -7
  188. package/dist/fn/type/isNull.js +2 -7
  189. package/dist/fn/type/isNumber.js +2 -7
  190. package/dist/fn/type/isObject.js +2 -7
  191. package/dist/fn/type/isPercent.js +2 -7
  192. package/dist/fn/type/isPrimitive.js +2 -7
  193. package/dist/fn/type/isPromise.js +2 -7
  194. package/dist/fn/type/isPropSize.js +2 -2
  195. package/dist/fn/type/isSQLDate.js +2 -7
  196. package/dist/fn/type/isSame.js +12 -12
  197. package/dist/fn/type/isString.js +2 -7
  198. package/dist/fn/type/isSymbol.js +2 -7
  199. package/dist/fn/type/isURL.js +2 -7
  200. package/dist/fn/type/isUid.js +2 -7
  201. package/dist/fn/type/isValidDimension.js +2 -2
  202. package/dist/fn/type/isValidName.js +2 -7
  203. package/dist/fn/type/isVue.js +4 -11
  204. package/dist/fn.js +247 -247
  205. package/dist/index.js +9 -7
  206. package/package.json +1 -1
@@ -50,19 +50,19 @@ export default function compareConditions(data, filter) {
50
50
  if (!filter.conditions || !filter.logic || !isArray(filter.conditions)) {
51
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
52
  }
53
- var ok = filter.logic === "AND" ? true : false;
54
- each(filter.conditions, function (a) {
55
- var comparator;
53
+ let ok = filter.logic === "AND" ? true : false;
54
+ each(filter.conditions, (a) => {
55
+ let comparator;
56
56
  if (a.conditions && isArray(a.conditions)) {
57
57
  comparator = compareConditions(data, a);
58
58
  }
59
59
  else {
60
60
  comparator = compare(getProperty(data, a.field), a.value, a.operator);
61
61
  if (comparator) {
62
- var bits = a.field.split(".");
63
- var prop = bits.pop();
62
+ let bits = a.field.split(".");
63
+ let prop = bits.pop();
64
64
  if (bits.length) {
65
- each(bits, function (b) { return (data = data[b]); });
65
+ each(bits, (b) => (data = data[b]));
66
66
  }
67
67
  // Case where both are undefined: value and prop which doesn't exist; they are not the same!
68
68
  if (getProperty(data, prop) === undefined && a.value !== undefined) {
@@ -53,9 +53,7 @@ import filter from './filter.js';
53
53
  * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
54
54
  * @returns {Number} The number of items
55
55
  */
56
- export default function count(arr, prop, val, operator) {
57
- if (val === void 0) { val = null; }
58
- if (operator === void 0) { operator = '='; }
56
+ export default function count(arr, prop, val = null, operator = '=') {
59
57
  return filter(arr, prop, val, operator).length || 0;
60
58
  }
61
59
  ;
@@ -1,21 +1,8 @@
1
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
- if (ar || !(i in from)) {
4
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
- ar[i] = from[i];
6
- }
7
- }
8
- return to.concat(ar || Array.prototype.slice.call(from));
9
- };
10
1
  import extend from './extend.js';
11
- export default function createObject() {
12
- var args = [];
13
- for (var _i = 0; _i < arguments.length; _i++) {
14
- args[_i] = arguments[_i];
15
- }
16
- var obj = Object.create(null);
2
+ export default function createObject(...args) {
3
+ const obj = Object.create(null);
17
4
  if (args.length) {
18
- extend.apply(void 0, __spreadArray([obj], args, false));
5
+ extend(obj, ...args);
19
6
  }
20
7
  return obj;
21
8
  }
@@ -56,19 +56,18 @@ import isArray from '../type/isArray.js';
56
56
  * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
57
57
  * @returns {Number} The number of items
58
58
  */
59
- export default function deepPath(arr, filter, deepProperty, res) {
60
- if (res === void 0) { res = []; }
61
- var idx;
62
- var start = 0;
59
+ export default function deepPath(arr, filter, deepProperty, res = []) {
60
+ let idx;
61
+ let start = 0;
63
62
  if ((idx = search(arr, filter, start)) > -1) {
64
63
  res.push(idx);
65
64
  return res;
66
65
  }
67
- each(arr, function (it, i) {
66
+ each(arr, (it, i) => {
68
67
  if (isArray(it[deepProperty])) {
69
- var r = res.slice();
68
+ let r = res.slice();
70
69
  r.push(i);
71
- var tmp = deepPath(it[deepProperty], filter, deepProperty, r);
70
+ let tmp = deepPath(it[deepProperty], filter, deepProperty, r);
72
71
  if (tmp !== false) {
73
72
  return tmp;
74
73
  }
@@ -4,7 +4,7 @@ import isFunction from '../type/isFunction.js';
4
4
  import isNotObject from '../type/isNotObject.js';
5
5
  import isDom from '../type/isDom.js';
6
6
  import numProperties from './numProperties.js';
7
- var diffObjProcessed = [];
7
+ let diffObjProcessed = [];
8
8
  /**
9
9
  * Returns an object describing the differences for transforming the first given object into the second.
10
10
  *
@@ -82,13 +82,11 @@ var diffObjProcessed = [];
82
82
  * @param {Boolean} notRoot
83
83
  * @returns {Object}
84
84
  */
85
- export default function diffObj(obj1, obj2, unchanged, notRoot) {
86
- if (unchanged === void 0) { unchanged = false; }
87
- if (notRoot === void 0) { notRoot = false; }
85
+ export default function diffObj(obj1, obj2, unchanged = false, notRoot = false) {
88
86
  if (!notRoot) {
89
87
  diffObjProcessed = [];
90
88
  }
91
- var VALUE_CREATED = 'created', VALUE_UPDATED = 'updated', VALUE_DELETED = 'deleted', VALUE_UNCHANGED = 'unchanged', _compareValues = function (value1, value2) {
89
+ let VALUE_CREATED = 'created', VALUE_UPDATED = 'updated', VALUE_DELETED = 'deleted', VALUE_UNCHANGED = 'unchanged', _compareValues = function (value1, value2) {
92
90
  if (value1 === value2) {
93
91
  return VALUE_UNCHANGED;
94
92
  }
@@ -106,12 +104,12 @@ export default function diffObj(obj1, obj2, unchanged, notRoot) {
106
104
  if (notRoot === undefined) {
107
105
  notRoot = false;
108
106
  }
109
- var diff = createObject();
107
+ let diff = createObject();
110
108
  if (!isFunction(obj1) && !isFunction(obj2)) {
111
109
  if (isNotObject(obj1) || isNotObject(obj2)) {
112
- var res = _compareValues(obj1, obj2);
110
+ let res = _compareValues(obj1, obj2);
113
111
  if (unchanged || res !== VALUE_UNCHANGED) {
114
- var ret = createObject();
112
+ let ret = createObject();
115
113
  Object.defineProperty(ret, 'type', {
116
114
  value: res,
117
115
  enumerable: false,
@@ -142,24 +140,24 @@ export default function diffObj(obj1, obj2, unchanged, notRoot) {
142
140
  return false;
143
141
  }
144
142
  diffObjProcessed.push(obj1, obj2);
145
- for (var key in obj1) {
143
+ for (let key in obj1) {
146
144
  if (isFunction(obj1[key])) {
147
145
  continue;
148
146
  }
149
- var value2 = undefined;
147
+ let value2 = undefined;
150
148
  if ('undefined' != typeof obj2[key]) {
151
149
  value2 = obj2[key];
152
150
  }
153
- var res = diffObj(obj1[key], value2, unchanged, true);
151
+ let res = diffObj(obj1[key], value2, unchanged, true);
154
152
  if (res) {
155
153
  diff[key] = res;
156
154
  }
157
155
  }
158
- for (var key in obj2) {
156
+ for (let key in obj2) {
159
157
  if (isFunction(obj2[key]) || 'undefined' != typeof obj1[key]) {
160
158
  continue;
161
159
  }
162
- var res = diffObj(undefined, obj2[key], unchanged, true);
160
+ let res = diffObj(undefined, obj2[key], unchanged, true);
163
161
  if (res) {
164
162
  diff[key] = res;
165
163
  }
@@ -87,14 +87,10 @@ import isObject from '../type/isObject.js';
87
87
  * @memberof bbn.fn
88
88
  * @returns {Object} The first object argument, merged with the other objects given
89
89
  */
90
- export default function extend() {
91
- var originalArgs = [];
92
- for (var _i = 0; _i < arguments.length; _i++) {
93
- originalArgs[_i] = arguments[_i];
94
- }
95
- var deep = false;
96
- var args = [];
97
- for (var i = 0; i < originalArgs.length; i++) {
90
+ export default function extend(...originalArgs) {
91
+ let deep = false;
92
+ let args = [];
93
+ for (let i = 0; i < originalArgs.length; i++) {
98
94
  if (originalArgs[i] === true) {
99
95
  deep = true;
100
96
  }
@@ -111,16 +107,16 @@ export default function extend() {
111
107
  if (!args.length) {
112
108
  throw new Error("No argument given");
113
109
  }
114
- var out = args[0];
115
- var hasNoData;
116
- for (var i = 1; i < args.length; i++) {
117
- iterate(args[i], function (a, key) {
110
+ let out = args[0];
111
+ let hasNoData;
112
+ for (let i = 1; i < args.length; i++) {
113
+ iterate(args[i], (a, key) => {
118
114
  if (deep) {
119
115
  if (isArray(a)) {
120
116
  out[key] = isArray(out[key]) ? out[key] : [];
121
- each(a, function (b, i) {
117
+ each(a, (b, i) => {
122
118
  if (b && typeof b === "object") {
123
- var tmp = out[key][i];
119
+ let tmp = out[key][i];
124
120
  if (isArray(b)) {
125
121
  if (!isArray(tmp)) {
126
122
  tmp = [];
@@ -15,14 +15,9 @@ import isObject from '../type/isObject.js';
15
15
  * @memberof bbn.fn
16
16
  * @returns {Object}
17
17
  */
18
- export default function extendOut() {
19
- var args = [];
20
- for (var _i = 0; _i < arguments.length; _i++) {
21
- args[_i] = arguments[_i];
22
- }
23
- var r = null;
24
- for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
25
- var a = args_1[_a];
18
+ export default function extendOut(...args) {
19
+ let r = null;
20
+ for (let a of args) {
26
21
  if (!isObject(a)) {
27
22
  throw new Error("Each argument for extendOut must be an object, " + typeof a + " given");
28
23
  }
@@ -30,7 +25,7 @@ export default function extendOut() {
30
25
  r = a;
31
26
  }
32
27
  else {
33
- for (var n in a) {
28
+ for (let n in a) {
34
29
  if (isObject(r[n], a[n])) {
35
30
  extendOut(r[n], a[n]);
36
31
  }
@@ -48,16 +48,14 @@ import compareConditions from './compareConditions.js';
48
48
  * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
49
49
  * @returns {Array} A new filtered array
50
50
  */
51
- export default function filter(arr, prop, val, operator) {
52
- if (val === void 0) { val = null; }
53
- if (operator === void 0) { operator = '='; }
51
+ export default function filter(arr, prop, val = null, operator = '=') {
54
52
  if (!isArray(arr)) {
55
53
  bbn.fn.log("NOT ARRAY", arr);
56
54
  throw new Error('Error in filter: The first argument must be an array');
57
55
  }
58
- var cfg = {};
59
- var res = [];
60
- var isFn = typeof (prop) === 'function';
56
+ let cfg = {};
57
+ const res = [];
58
+ const isFn = typeof (prop) === 'function';
61
59
  if (!prop || !arr.length) {
62
60
  return arr;
63
61
  }
@@ -72,20 +70,16 @@ export default function filter(arr, prop, val, operator) {
72
70
  throw new Error('Search function error: The prop argument should be a string or an object');
73
71
  }
74
72
  if (typeof (prop) === 'function') {
75
- for (var i = 0; i < arr.length; i++) {
76
- bbn.env._enumerated.push(true);
73
+ for (let i = 0; i < arr.length; i++) {
77
74
  if (prop(arr[i], i)) {
78
- bbn.env._enumerated.pop();
79
75
  res.push(arr[i]);
80
- bbn.env._enumerated.push(true);
81
76
  }
82
- bbn.env._enumerated.pop();
83
77
  }
84
78
  }
85
79
  else {
86
80
  cfg = filterToConditions(cfg, operator);
87
81
  if (cfg.conditions && cfg.logic) {
88
- for (var i = 0; i < arr.length; i++) {
82
+ for (let i = 0; i < arr.length; i++) {
89
83
  if (compareConditions(arr[i], cfg)) {
90
84
  res.push(arr[i]);
91
85
  }
@@ -38,19 +38,18 @@ import iterate from '../loop/iterate.js';
38
38
  * @param {String} operator
39
39
  * @returns {Object}
40
40
  */
41
- export default function filterToConditions(filter, operator) {
42
- if (operator === void 0) { operator = "="; }
41
+ export default function filterToConditions(filter, operator = "=") {
43
42
  if (!isObject(filter)) {
44
43
  throw new Error("Error in filterToCondition: filter must be an object");
45
44
  }
46
45
  if (!filter.conditions || !isArray(filter.conditions)) {
47
- var tmp_1 = [];
48
- iterate(filter, function (a, n) {
46
+ let tmp = [];
47
+ iterate(filter, (a, n) => {
49
48
  if (isObject(a) && typeof a.conditions === "object") {
50
- tmp_1.push(filterToConditions(a));
49
+ tmp.push(filterToConditions(a));
51
50
  }
52
51
  else {
53
- tmp_1.push({
52
+ tmp.push({
54
53
  field: n,
55
54
  operator: operator,
56
55
  value: a,
@@ -58,7 +57,7 @@ export default function filterToConditions(filter, operator) {
58
57
  }
59
58
  });
60
59
  filter = {
61
- conditions: tmp_1,
60
+ conditions: tmp,
62
61
  };
63
62
  }
64
63
  if (!filter.logic) {
@@ -56,15 +56,14 @@ import isArray from '../type/isArray.js';
56
56
  * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
57
57
  * @returns {Number} The number of items
58
58
  */
59
- export default function findAll(arr, filter, deepProperty, res) {
60
- if (res === void 0) { res = []; }
61
- var idx;
62
- var start = 0;
59
+ export default function findAll(arr, filter, deepProperty, res = []) {
60
+ let idx;
61
+ let start = 0;
63
62
  while ((idx = search(arr, filter, start)) > -1) {
64
63
  res.push(arr[idx]);
65
64
  start = idx + 1;
66
65
  }
67
- each(arr, function (it) {
66
+ each(arr, (it) => {
68
67
  if (isArray(it[deepProperty])) {
69
68
  findAll(it[deepProperty], filter, deepProperty, res);
70
69
  }
@@ -29,14 +29,8 @@ import getRow from './getRow.js';
29
29
  * @param {Boolean} backward Searches backward
30
30
  * @returns {*}
31
31
  */
32
- export default function getField(arr, field, prop, val, operator, from, backward, notFound) {
33
- if (prop === void 0) { prop = ''; }
34
- if (val === void 0) { val = null; }
35
- if (operator === void 0) { operator = '='; }
36
- if (from === void 0) { from = 0; }
37
- if (backward === void 0) { backward = false; }
38
- if (notFound === void 0) { notFound = undefined; }
39
- var r;
32
+ export default function getField(arr, field, prop = '', val = null, operator = '=', from = 0, backward = false, notFound = undefined) {
33
+ let r;
40
34
  if (prop && ['object', 'function'].includes(typeof prop) && (6 in arguments)) {
41
35
  notFound = backward;
42
36
  }
@@ -34,8 +34,8 @@ export default function getFieldValues(arr, field, prop, val, operator) {
34
34
  if (prop) {
35
35
  arr = _filter(arr, prop, val, operator);
36
36
  }
37
- var res = [];
38
- each(arr, function (a) { return (res.indexOf(a[field]) === -1 ? res.push(a[field]) : null); });
37
+ let res = [];
38
+ each(arr, (a) => (res.indexOf(a[field]) === -1 ? res.push(a[field]) : null));
39
39
  return res;
40
40
  }
41
41
  ;
@@ -26,20 +26,16 @@
26
26
  * @param {String} props
27
27
  * @returns {*} The property's value or undefined
28
28
  */
29
- export default function getProperty(obj) {
30
- var props = [];
31
- for (var _i = 1; _i < arguments.length; _i++) {
32
- props[_i - 1] = arguments[_i];
33
- }
29
+ export default function getProperty(obj, ...props) {
34
30
  if (typeof obj === 'object') {
35
- var arr = [];
31
+ const arr = [];
36
32
  if (props.length === 1 && typeof props[0] === 'string') {
37
- arr.push.apply(arr, props[0].split('.'));
33
+ arr.push(...props[0].split('.'));
38
34
  }
39
35
  else {
40
- arr.push.apply(arr, props);
36
+ arr.push(...props);
41
37
  }
42
- return arr.reduce(function (o, i) {
38
+ return arr.reduce((o, i) => {
43
39
  if (o) {
44
40
  return o[o instanceof Array ? parseInt(i) : i];
45
41
  }
@@ -42,13 +42,8 @@ import search from './search.js';
42
42
  * @param {*} notFound Value to return when not found
43
43
  * @returns {*} The item if found, false otherwise
44
44
  */
45
- export default function getRow(arr, prop, val, operator, from, backward, notFound) {
46
- if (val === void 0) { val = null; }
47
- if (operator === void 0) { operator = '='; }
48
- if (from === void 0) { from = 0; }
49
- if (backward === void 0) { backward = false; }
50
- if (notFound === void 0) { notFound = false; }
51
- var idx = search(arr, prop, val, operator, from, backward);
45
+ export default function getRow(arr, prop, val = null, operator = '=', from = 0, backward = false, notFound = false) {
46
+ let idx = search(arr, prop, val, operator, from, backward);
52
47
  if (idx > -1) {
53
48
  return arr[idx];
54
49
  }
@@ -19,12 +19,12 @@
19
19
  * @returns {Array} The same array, with elements repositionned.
20
20
  */
21
21
  // LIS indices on `pos` (strictly increasing)
22
- var lisIndices = function (arr) {
23
- var n = arr.length, tails = [], prev = Array(n).fill(-1);
24
- for (var i = 0; i < n; i++) {
25
- var x = arr[i], lo = 0, hi = tails.length;
22
+ const lisIndices = (arr) => {
23
+ const n = arr.length, tails = [], prev = Array(n).fill(-1);
24
+ for (let i = 0; i < n; i++) {
25
+ let x = arr[i], lo = 0, hi = tails.length;
26
26
  while (lo < hi) {
27
- var mid = (lo + hi) >> 1;
27
+ const mid = (lo + hi) >> 1;
28
28
  if (arr[tails[mid]] < x)
29
29
  lo = mid + 1;
30
30
  else
@@ -34,8 +34,8 @@ var lisIndices = function (arr) {
34
34
  prev[i] = tails[lo - 1];
35
35
  tails[lo] = i;
36
36
  }
37
- var res = [];
38
- for (var k = tails.length ? tails[tails.length - 1] : -1; k !== -1; k = prev[k])
37
+ const res = [];
38
+ for (let k = tails.length ? tails[tails.length - 1] : -1; k !== -1; k = prev[k])
39
39
  res.push(k);
40
40
  return res.reverse();
41
41
  };
@@ -43,53 +43,53 @@ export default function getSortingMoves(src, dst) {
43
43
  if (src.length !== dst.length)
44
44
  throw new Error("Lengths must match.");
45
45
  // Validate same unique set
46
- var setDst = new Set(dst);
46
+ const setDst = new Set(dst);
47
47
  if (setDst.size !== dst.length)
48
48
  throw new Error("dst has duplicates.");
49
- var setSrc = new Set(src);
49
+ const setSrc = new Set(src);
50
50
  if (setSrc.size !== src.length)
51
51
  throw new Error("src has duplicates.");
52
- if (src.length !== setDst.size || Array.from(setSrc).some(function (v) { return !setDst.has(v); })) {
52
+ if (src.length !== setDst.size || Array.from(setSrc).some(v => !setDst.has(v))) {
53
53
  throw new Error("Arrays must contain the same unique values.");
54
54
  }
55
55
  // Map each value to its index in dst
56
- var posInDst = new Map(dst.map(function (v, i) { return [v, i]; }));
56
+ const posInDst = new Map(dst.map((v, i) => [v, i]));
57
57
  // Convert src into positions-in-dst
58
- var pos = src.map(function (v) { return posInDst.get(v); });
59
- var lisIdx = lisIndices(pos);
60
- var keepSet = new Set(lisIdx.map(function (i) { return src[i]; })); // values we won't move
58
+ const pos = src.map(v => posInDst.get(v));
59
+ const lisIdx = lisIndices(pos);
60
+ const keepSet = new Set(lisIdx.map(i => src[i])); // values we won't move
61
61
  // Next kept anchor to the right for each dst index
62
- var nextKeptAfter = Array(dst.length).fill(-1);
63
- for (var i = dst.length - 2; i >= 0; i--) {
62
+ const nextKeptAfter = Array(dst.length).fill(-1);
63
+ for (let i = dst.length - 2; i >= 0; i--) {
64
64
  nextKeptAfter[i] = nextKeptAfter[i + 1];
65
65
  if (keepSet.has(dst[i + 1]))
66
66
  nextKeptAfter[i] = i + 1;
67
67
  }
68
68
  // Simulate moves on a working copy
69
- var work = src.slice();
70
- var indexOf = new Map(work.map(function (v, i) { return [v, i]; }));
71
- var moves = [];
72
- for (var i = 0; i < dst.length; i++) {
73
- var v = dst[i];
69
+ const work = src.slice();
70
+ const indexOf = new Map(work.map((v, i) => [v, i]));
71
+ const moves = [];
72
+ for (let i = 0; i < dst.length; i++) {
73
+ const v = dst[i];
74
74
  if (keepSet.has(v))
75
75
  continue; // leave in place
76
- var from = indexOf.get(v);
76
+ const from = indexOf.get(v);
77
77
  if (from === undefined) {
78
78
  throw new Error("Inconsistent state");
79
79
  }
80
- var j = nextKeptAfter[i];
81
- var to = (j !== -1) ? indexOf.get(dst[j]) : work.length;
80
+ const j = nextKeptAfter[i];
81
+ const to = (j !== -1) ? indexOf.get(dst[j]) : work.length;
82
82
  if (to === undefined) {
83
83
  throw new Error("Inconsistent state");
84
84
  }
85
- var adjustedTo = from < to ? to - 1 : to;
85
+ const adjustedTo = from < to ? to - 1 : to;
86
86
  if (from !== adjustedTo) {
87
- var moved = work.splice(from, 1)[0];
87
+ const [moved] = work.splice(from, 1);
88
88
  work.splice(adjustedTo, 0, moved);
89
- moves.push({ from: from, to: adjustedTo, value: v });
89
+ moves.push({ from, to: adjustedTo, value: v });
90
90
  // refresh indices (simple & reliable)
91
91
  indexOf.clear();
92
- for (var p = 0; p < work.length; p++)
92
+ for (let p = 0; p < work.length; p++)
93
93
  indexOf.set(work[p], p);
94
94
  }
95
95
  }
@@ -36,7 +36,7 @@
36
36
  * @returns {Boolean}
37
37
  */
38
38
  export default function isWritable(obj, key) {
39
- var desc;
39
+ let desc;
40
40
  while (obj) {
41
41
  desc = Object.getOwnPropertyDescriptor(obj, key);
42
42
  if (desc) {
@@ -71,9 +71,8 @@ import isArray from '../type/isArray.js';
71
71
  * @param {Number} level
72
72
  * @returns {Array}
73
73
  */
74
- export default function map(arr, fn, deepProp, level) {
75
- if (level === void 0) { level = 0; }
76
- return arr.map(function (a, i) {
74
+ export default function map(arr, fn, deepProp, level = 0) {
75
+ return arr.map((a, i) => {
77
76
  a = fn(a, i, level);
78
77
  if (deepProp && a[deepProp] && isArray(a[deepProp])) {
79
78
  a[deepProp] = map(a[deepProp], fn, deepProp, level + 1);
@@ -32,7 +32,7 @@
32
32
  */
33
33
  export default function move(arr, fromIndex, toIndex) {
34
34
  if (toIndex >= arr.length) {
35
- var k = toIndex - arr.length;
35
+ let k = toIndex - arr.length;
36
36
  while (k-- + 1) {
37
37
  arr.push(undefined);
38
38
  }
@@ -41,7 +41,7 @@ export default function multiorder(arr, orders) {
41
41
  if (!orders) {
42
42
  return arr;
43
43
  }
44
- var currentOrders;
44
+ let currentOrders;
45
45
  if (!Array.isArray(orders) && typeof orders === 'object') {
46
46
  currentOrders = [];
47
47
  for (var n in orders) {
@@ -54,11 +54,10 @@ export default function multiorder(arr, orders) {
54
54
  if (!Array.isArray(currentOrders)) {
55
55
  throw new Error('The orders argument must be an array');
56
56
  }
57
- var r = arr.slice();
58
- return r.sort(function (a, b) {
59
- var res;
60
- for (var _i = 0, currentOrders_1 = currentOrders; _i < currentOrders_1.length; _i++) {
61
- var order = currentOrders_1[_i];
57
+ let r = arr.slice();
58
+ return r.sort((a, b) => {
59
+ let res;
60
+ for (let order of currentOrders) {
62
61
  res = _compareValues(a, b, order.field, order.dir);
63
62
  if (res !== 0) {
64
63
  return res;
@@ -3,8 +3,7 @@ import hash from '../string/hash.js';
3
3
  import isSame from '../type/isSame.js';
4
4
  import search from './search.js';
5
5
  import checkType from '../type/checkType.js';
6
- export default function mutateArray(a1, a2, hashFn) {
7
- if (hashFn === void 0) { hashFn = null; }
6
+ export default function mutateArray(a1, a2, hashFn = null) {
8
7
  if (!isArray(a1, a2)) {
9
8
  throw new TypeError('mutateArray can only be called with arrays');
10
9
  }
@@ -14,27 +13,27 @@ export default function mutateArray(a1, a2, hashFn) {
14
13
  else {
15
14
  checkType(hashFn, 'function', 'The hash function must be a function');
16
15
  }
17
- var mapA2 = new Map(a2.map(function (item) { return [hashFn(item), item]; }));
18
- var a1Ordered = [];
16
+ const mapA2 = new Map(a2.map(item => [hashFn(item), item]));
17
+ let a1Ordered = [];
19
18
  // Build a1Ordered to have the same order and contents as a2
20
- a2.forEach(function (item) {
19
+ a2.forEach(item => {
21
20
  a1Ordered.push(item);
22
21
  });
23
22
  // Remove items from a1 that are not in a2
24
- var i = a1.length;
23
+ let i = a1.length;
25
24
  while (i--) {
26
25
  if (!mapA2.has(hashFn(a1[i]))) {
27
26
  a1.splice(i, 1);
28
27
  }
29
28
  }
30
29
  // Insert or move items to match the order of a2
31
- for (var j = 0; j < a1Ordered.length; j++) {
30
+ for (let j = 0; j < a1Ordered.length; j++) {
32
31
  if ((j >= a1.length) || !isSame(a1[j], a1Ordered[j])) {
33
32
  // Find the index of the item in a1, if it exists
34
- var indexInA1 = search(a1, a1Ordered[j]);
33
+ const indexInA1 = search(a1, a1Ordered[j]);
35
34
  if (indexInA1 !== -1) {
36
35
  // Move the item to the correct position if it already exists in a1
37
- var itemToMove = a1.splice(indexInA1, 1)[0];
36
+ const [itemToMove] = a1.splice(indexInA1, 1);
38
37
  a1.splice(j, 0, itemToMove);
39
38
  }
40
39
  else {
@@ -12,14 +12,14 @@ export default function mutateObject(a1, a2, hashFn) {
12
12
  else {
13
13
  hashFn = hash;
14
14
  }
15
- var mapA2 = Object.keys(a2);
15
+ const mapA2 = Object.keys(a2);
16
16
  // Remove items from a1 that are not in a2
17
- for (var n in a1) {
17
+ for (let n in a1) {
18
18
  if (!mapA2.includes(n)) {
19
19
  delete a1[n];
20
20
  }
21
21
  }
22
- mapA2.forEach(function (n) {
22
+ mapA2.forEach(n => {
23
23
  if (!isSame(a1[n], a2[n])) {
24
24
  a1[n] = a2[n];
25
25
  }
@@ -25,8 +25,7 @@ import _compareValues from './_compareValues.js';
25
25
  * @param {String} [dir=asc] The direction of the order (desc or asc by default)
26
26
  * @returns {Array}
27
27
  */
28
- export default function order(arr, prop, dir) {
29
- if (dir === void 0) { dir = 'asc'; }
28
+ export default function order(arr, prop, dir = 'asc') {
30
29
  if (arr) {
31
30
  return arr.sort(function (a, b) {
32
31
  return _compareValues(a, b, prop, dir);