@bbn/bbn 1.0.437 → 1.0.439

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 +39 -0
  5. package/dist/date.js +339 -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 -8
  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
@@ -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,7 +70,7 @@ 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++) {
73
+ for (let i = 0; i < arr.length; i++) {
76
74
  if (prop(arr[i], i)) {
77
75
  res.push(arr[i]);
78
76
  }
@@ -81,7 +79,7 @@ export default function filter(arr, prop, val, operator) {
81
79
  else {
82
80
  cfg = filterToConditions(cfg, operator);
83
81
  if (cfg.conditions && cfg.logic) {
84
- for (var i = 0; i < arr.length; i++) {
82
+ for (let i = 0; i < arr.length; i++) {
85
83
  if (compareConditions(arr[i], cfg)) {
86
84
  res.push(arr[i]);
87
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);
@@ -20,8 +20,8 @@ import numProperties from './numProperties.js';
20
20
  export default function removeEmpty(arr) {
21
21
  var tmp = [];
22
22
  if (isArray(arr)) {
23
- for (var i = 0; i < arr.length; i++) {
24
- var ok = false;
23
+ for (let i = 0; i < arr.length; i++) {
24
+ let ok = false;
25
25
  if (arr[i]) {
26
26
  if (isArray(arr[i])) {
27
27
  if (arr[i].length) {
@@ -21,9 +21,8 @@ import substr from '../string/substr.js';
21
21
  * @param {Boolean} deep If true the function will be reapplied on object properties
22
22
  * @returns {Object} A new object without only the _public_ properties.
23
23
  */
24
- export default function removePrivateProp(obj, deep) {
25
- if (deep === void 0) { deep = false; }
26
- var r = null;
24
+ export default function removePrivateProp(obj, deep = false) {
25
+ let r = null;
27
26
  if (typeof obj === 'object') {
28
27
  r = {};
29
28
  for (var n in obj) {
@@ -101,23 +101,19 @@ import isArray from '../type/isArray.js';
101
101
  * @param {Number} startFrom The index from which the search should start
102
102
  * @returns {Number} The index if found, otherwise -1
103
103
  */
104
- export default function search(arr, prop, val, operator, startFrom, backward) {
105
- if (val === void 0) { val = null; }
106
- if (operator === void 0) { operator = '='; }
107
- if (startFrom === void 0) { startFrom = 0; }
108
- if (backward === void 0) { backward = false; }
104
+ export default function search(arr, prop, val = null, operator = '=', startFrom = 0, backward = false) {
109
105
  if (!isIterable(arr)) {
110
106
  throw new Error(bbn._('The first argument for a search should be iterable') + ' ' + typeof arr + ' ' + bbn._('given'));
111
107
  }
112
108
  if (!arr.length) {
113
109
  return -1;
114
110
  }
115
- var filter;
116
- var isFn = false;
117
- var fn;
111
+ let filter;
112
+ let isFn = false;
113
+ let fn;
118
114
  if (!prop) {
119
115
  isFn = true;
120
- fn = function (a) {
116
+ fn = a => {
121
117
  return compareConditions({ value: a }, filterToConditions({
122
118
  logic: 'AND',
123
119
  conditions: [
@@ -156,8 +152,8 @@ export default function search(arr, prop, val, operator, startFrom, backward) {
156
152
  };
157
153
  }
158
154
  else if (!('conditions' in prop)) {
159
- var conditions = [];
160
- for (var p in prop) {
155
+ const conditions = [];
156
+ for (let p in prop) {
161
157
  conditions.push({
162
158
  field: p,
163
159
  value: prop[p],
@@ -165,7 +161,7 @@ export default function search(arr, prop, val, operator, startFrom, backward) {
165
161
  });
166
162
  }
167
163
  filter = {
168
- conditions: conditions,
164
+ conditions,
169
165
  logic: 'AND'
170
166
  };
171
167
  }
@@ -180,17 +176,17 @@ export default function search(arr, prop, val, operator, startFrom, backward) {
180
176
  };
181
177
  }
182
178
  }
183
- var res = -1;
179
+ let res = -1;
184
180
  if (isFn || filter) {
185
181
  if (typeof startFrom !== 'number') {
186
182
  startFrom = backward ? arr.length - 1 : 0;
187
183
  }
188
184
  if (!fn) {
189
- var subfilter_1 = filterToConditions(filter);
190
- fn = function (ele) { return compareConditions(ele, subfilter_1); };
185
+ const subfilter = filterToConditions(filter);
186
+ fn = (ele) => compareConditions(ele, subfilter);
191
187
  }
192
188
  if (backward) {
193
- for (var i = startFrom; i >= 0; i--) {
189
+ for (let i = startFrom; i >= 0; i--) {
194
190
  bbn.env._enumerated.push(true);
195
191
  if (fn(arr[i])) {
196
192
  bbn.env._enumerated.pop();
@@ -201,7 +197,7 @@ export default function search(arr, prop, val, operator, startFrom, backward) {
201
197
  }
202
198
  }
203
199
  else {
204
- for (var i = startFrom; i < arr.length; i++) {
200
+ for (let i = startFrom; i < arr.length; i++) {
205
201
  bbn.env._enumerated.push(true);
206
202
  if (fn(arr[i])) {
207
203
  bbn.env._enumerated.pop();