@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.
- package/dist/_.js +7 -11
- package/dist/bbn.js +1 -1
- package/dist/bbn.js.map +1 -1
- package/dist/date.d.ts +26 -0
- package/dist/date.js +190 -0
- package/dist/db.js +107 -124
- package/dist/fn/ajax/_addLoader.js +6 -6
- package/dist/fn/ajax/_deleteLoader.js +11 -13
- package/dist/fn/ajax/abort.js +1 -1
- package/dist/fn/ajax/abortURL.js +1 -1
- package/dist/fn/ajax/ajax.js +25 -30
- package/dist/fn/ajax/callback.js +10 -14
- package/dist/fn/ajax/download.js +7 -9
- package/dist/fn/ajax/downloadContent.js +5 -6
- package/dist/fn/ajax/getLoader.js +1 -1
- package/dist/fn/ajax/getRequestId.js +2 -2
- package/dist/fn/ajax/link.js +9 -13
- package/dist/fn/ajax/post.js +3 -7
- package/dist/fn/ajax/postOut.js +2 -4
- package/dist/fn/ajax/setNavigationVars.js +5 -7
- package/dist/fn/ajax/stream.js +21 -22
- package/dist/fn/ajax/treatAjaxArguments.js +3 -3
- package/dist/fn/ajax/upload.js +6 -9
- package/dist/fn/browser/copy.js +9 -12
- package/dist/fn/browser/error.js +2 -2
- package/dist/fn/browser/executeSlowly.js +11 -55
- package/dist/fn/browser/getBrowserName.js +1 -1
- package/dist/fn/browser/getBrowserVersion.js +1 -1
- package/dist/fn/browser/getCookie.js +5 -5
- package/dist/fn/browser/getDeviceType.js +1 -1
- package/dist/fn/browser/getEventData.js +30 -30
- package/dist/fn/browser/happy.js +1 -5
- package/dist/fn/browser/info.js +1 -5
- package/dist/fn/browser/isActiveInterface.js +2 -3
- package/dist/fn/browser/isFocused.js +1 -2
- package/dist/fn/browser/log.js +8 -12
- package/dist/fn/browser/replaceSelection.js +5 -5
- package/dist/fn/browser/selectElementText.js +4 -5
- package/dist/fn/browser/setCookie.js +3 -3
- package/dist/fn/browser/warning.js +2 -2
- package/dist/fn/browser/yieldToBrowser.js +7 -43
- package/dist/fn/convert/arrayBuffer2String.js +1 -1
- package/dist/fn/convert/canvasToImage.js +1 -1
- package/dist/fn/convert/colorToHex.js +1 -1
- package/dist/fn/convert/fromXml.js +7 -13
- package/dist/fn/convert/hex2rgb.js +1 -1
- package/dist/fn/convert/imageToCanvas.js +1 -1
- package/dist/fn/convert/imgToBase64.js +2 -3
- package/dist/fn/convert/toCSV.js +7 -10
- package/dist/fn/datetime/calendar.js +4 -5
- package/dist/fn/datetime/date.js +1 -1
- package/dist/fn/datetime/dateSQL.js +1 -1
- package/dist/fn/datetime/daysInMonth.js +1 -1
- package/dist/fn/datetime/fdate.js +2 -3
- package/dist/fn/datetime/fdatetime.js +2 -3
- package/dist/fn/datetime/ftime.js +1 -1
- package/dist/fn/datetime/getChrono.js +2 -3
- package/dist/fn/datetime/getDay.js +3 -3
- package/dist/fn/datetime/startChrono.js +1 -1
- package/dist/fn/datetime/stopChrono.js +2 -2
- package/dist/fn/datetime/timestamp.js +2 -3
- package/dist/fn/default/defaultAjaxAbortFunction.js +1 -2
- package/dist/fn/default/defaultAjaxErrorFunction.js +1 -3
- package/dist/fn/default/defaultAlertFunction.js +1 -2
- package/dist/fn/default/defaultConfirmFunction.js +2 -3
- package/dist/fn/default/defaultEndLoadingFunction.js +1 -3
- package/dist/fn/default/defaultPostLinkFunction.js +1 -2
- package/dist/fn/default/defaultPreLinkFunction.js +1 -3
- package/dist/fn/form/addInputs.js +10 -12
- package/dist/fn/form/fieldValue.js +1 -1
- package/dist/fn/form/formdata.js +24 -24
- package/dist/fn/form/objectToFormData.js +5 -8
- package/dist/fn/form/submit.js +4 -4
- package/dist/fn/html/adjustHeight.js +1 -1
- package/dist/fn/html/adjustSize.js +5 -5
- package/dist/fn/html/adjustWidth.js +1 -1
- package/dist/fn/html/getAllTags.js +1 -1
- package/dist/fn/html/getAncestors.js +2 -3
- package/dist/fn/html/getAttributes.js +2 -2
- package/dist/fn/html/getHTMLOfSelection.js +4 -4
- package/dist/fn/html/getHtml.js +2 -3
- package/dist/fn/html/getIndex.js +3 -4
- package/dist/fn/html/getPath.js +12 -17
- package/dist/fn/html/html2text.js +1 -1
- package/dist/fn/html/isInViewport.js +4 -5
- package/dist/fn/html/isInside.js +5 -5
- package/dist/fn/html/makeReactive.js +22 -26
- package/dist/fn/init.js +18 -18
- package/dist/fn/loop/each.js +2 -2
- package/dist/fn/loop/fori.js +3 -5
- package/dist/fn/loop/forir.js +3 -5
- package/dist/fn/loop/iterate.js +3 -6
- package/dist/fn/loop/riterate.js +1 -2
- package/dist/fn/misc/analyzeFunction.js +36 -36
- package/dist/fn/misc/money.js +4 -4
- package/dist/fn/misc/translate.js +2 -2
- package/dist/fn/object/_compareValues.js +2 -3
- package/dist/fn/object/_filter.js +7 -10
- package/dist/fn/object/arrayFromProp.js +2 -2
- package/dist/fn/object/checkProps.js +1 -2
- package/dist/fn/object/checkPropsDetails.js +8 -9
- package/dist/fn/object/checkPropsOrDie.js +2 -3
- package/dist/fn/object/circularReplacer.js +2 -2
- package/dist/fn/object/clone.js +2 -2
- package/dist/fn/object/compareConditions.js +6 -6
- package/dist/fn/object/count.js +1 -3
- package/dist/fn/object/createObject.js +3 -16
- package/dist/fn/object/deepPath.js +6 -7
- package/dist/fn/object/diffObj.js +11 -13
- package/dist/fn/object/extend.js +10 -14
- package/dist/fn/object/extendOut.js +4 -9
- package/dist/fn/object/filter.js +6 -12
- package/dist/fn/object/filterToConditions.js +6 -7
- package/dist/fn/object/findAll.js +4 -5
- package/dist/fn/object/getField.js +2 -8
- package/dist/fn/object/getFieldValues.js +2 -2
- package/dist/fn/object/getProperty.js +5 -9
- package/dist/fn/object/getRow.js +2 -7
- package/dist/fn/object/getSortingMoves.js +28 -28
- package/dist/fn/object/isWritable.js +1 -1
- package/dist/fn/object/map.js +2 -3
- package/dist/fn/object/move.js +1 -1
- package/dist/fn/object/multiorder.js +5 -6
- package/dist/fn/object/mutateArray.js +8 -9
- package/dist/fn/object/mutateObject.js +3 -3
- package/dist/fn/object/order.js +1 -2
- package/dist/fn/object/removeEmpty.js +2 -2
- package/dist/fn/object/removePrivateProp.js +2 -3
- package/dist/fn/object/search.js +13 -17
- package/dist/fn/object/setProp.js +1 -3
- package/dist/fn/object/setProperty.js +8 -8
- package/dist/fn/object/shortenObj.js +3 -4
- package/dist/fn/object/shuffle.js +2 -3
- package/dist/fn/object/sum.js +3 -3
- package/dist/fn/object/unique.js +1 -1
- package/dist/fn/phone/fphone.js +22 -22
- package/dist/fn/string/baseName.js +3 -3
- package/dist/fn/string/correctCase.js +1 -1
- package/dist/fn/string/crc32.js +7 -7
- package/dist/fn/string/data2Html.js +4 -5
- package/dist/fn/string/dirName.js +1 -1
- package/dist/fn/string/escapeUrl.js +6 -6
- package/dist/fn/string/fileExt.js +1 -1
- package/dist/fn/string/firstVarElement.js +2 -2
- package/dist/fn/string/format.js +4 -4
- package/dist/fn/string/formatBytes.js +2 -3
- package/dist/fn/string/hash.js +4 -8
- package/dist/fn/string/randomString.js +5 -5
- package/dist/fn/string/replaceAll.js +1 -2
- package/dist/fn/string/sanitize.js +6 -7
- package/dist/fn/string/simpleHash.js +2 -2
- package/dist/fn/string/simpleHash1.js +3 -3
- package/dist/fn/string/simpleHash2.js +3 -3
- package/dist/fn/string/treatForHash.js +6 -10
- package/dist/fn/string/trim.js +1 -2
- package/dist/fn/string/uniqString.js +7 -14
- package/dist/fn/style/addColors.js +14 -14
- package/dist/fn/style/addStyle.js +1 -1
- package/dist/fn/style/animateCss.js +1 -1
- package/dist/fn/style/center.js +1 -1
- package/dist/fn/style/cssExists.js +5 -5
- package/dist/fn/style/getCssVar.js +1 -1
- package/dist/fn/style/getScrollBarSize.js +5 -5
- package/dist/fn/style/lightenDarkenHex.js +2 -2
- package/dist/fn/style/outerHeight.js +2 -2
- package/dist/fn/style/outerWidth.js +2 -2
- package/dist/fn/style/resize.js +14 -14
- package/dist/fn/type/checkType.js +5 -9
- package/dist/fn/type/isArray.js +2 -7
- package/dist/fn/type/isBlob.js +2 -7
- package/dist/fn/type/isBoolean.js +2 -7
- package/dist/fn/type/isCanvas.js +2 -7
- package/dist/fn/type/isColor.js +2 -7
- package/dist/fn/type/isComment.js +2 -7
- package/dist/fn/type/isCp.js +3 -8
- package/dist/fn/type/isDataURL.js +2 -7
- package/dist/fn/type/isDate.js +2 -7
- package/dist/fn/type/isDimension.js +2 -7
- package/dist/fn/type/isDom.js +2 -7
- package/dist/fn/type/isEmail.js +3 -8
- package/dist/fn/type/isEvent.js +2 -7
- package/dist/fn/type/isFunction.js +2 -7
- package/dist/fn/type/isHostname.js +2 -7
- package/dist/fn/type/isIP.js +2 -7
- package/dist/fn/type/isInt.js +2 -7
- package/dist/fn/type/isIterable.js +2 -7
- package/dist/fn/type/isNotObject.js +2 -7
- package/dist/fn/type/isNull.js +2 -7
- package/dist/fn/type/isNumber.js +2 -7
- package/dist/fn/type/isObject.js +2 -7
- package/dist/fn/type/isPercent.js +2 -7
- package/dist/fn/type/isPrimitive.js +2 -7
- package/dist/fn/type/isPromise.js +2 -7
- package/dist/fn/type/isPropSize.js +2 -2
- package/dist/fn/type/isSQLDate.js +2 -7
- package/dist/fn/type/isSame.js +12 -12
- package/dist/fn/type/isString.js +2 -7
- package/dist/fn/type/isSymbol.js +2 -7
- package/dist/fn/type/isURL.js +2 -7
- package/dist/fn/type/isUid.js +2 -7
- package/dist/fn/type/isValidDimension.js +2 -2
- package/dist/fn/type/isValidName.js +2 -7
- package/dist/fn/type/isVue.js +4 -11
- package/dist/fn.js +247 -247
- package/dist/index.js +9 -7
- package/package.json +1 -1
|
@@ -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 (
|
|
24
|
-
|
|
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
|
-
|
|
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) {
|
package/dist/fn/object/search.js
CHANGED
|
@@ -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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
111
|
+
let filter;
|
|
112
|
+
let isFn = false;
|
|
113
|
+
let fn;
|
|
118
114
|
if (!prop) {
|
|
119
115
|
isFn = true;
|
|
120
|
-
fn =
|
|
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
|
-
|
|
160
|
-
for (
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
190
|
-
fn =
|
|
185
|
+
const subfilter = filterToConditions(filter);
|
|
186
|
+
fn = (ele) => compareConditions(ele, subfilter);
|
|
191
187
|
}
|
|
192
188
|
if (backward) {
|
|
193
|
-
for (
|
|
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 (
|
|
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();
|
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
* @param {Boolean} writable
|
|
8
8
|
* @param {Boolean} configurable
|
|
9
9
|
*/
|
|
10
|
-
export default function setProp(obj, prop, value, writable, configurable) {
|
|
11
|
-
if (writable === void 0) { writable = true; }
|
|
12
|
-
if (configurable === void 0) { configurable = true; }
|
|
10
|
+
export default function setProp(obj, prop, value, writable = true, configurable = true) {
|
|
13
11
|
Object.defineProperty(obj, prop, {
|
|
14
12
|
value: value,
|
|
15
13
|
writable: writable,
|
|
@@ -29,20 +29,20 @@ import each from '../loop/each.js';
|
|
|
29
29
|
*/
|
|
30
30
|
export default function setProperty(obj, prop, value, force) {
|
|
31
31
|
if (typeof obj === 'object' && typeof prop === 'string') {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
each(
|
|
35
|
-
if (!
|
|
32
|
+
let o = obj;
|
|
33
|
+
const bits = prop.split('.');
|
|
34
|
+
each(bits, (v, i) => {
|
|
35
|
+
if (!o) {
|
|
36
36
|
if (!force) {
|
|
37
37
|
throw new Error(bbn._('The object is invalid'));
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
o = {};
|
|
40
40
|
}
|
|
41
|
-
if (
|
|
42
|
-
|
|
41
|
+
if (bits.length - 1 === i) {
|
|
42
|
+
o[v] = value;
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
|
|
45
|
+
o = o[v];
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
}
|
|
@@ -25,10 +25,9 @@ import shorten from '../string/shorten.js';
|
|
|
25
25
|
* @param {Number} [max=100]
|
|
26
26
|
* @returns {(Object|Array)} The same object, modified
|
|
27
27
|
*/
|
|
28
|
-
export default function shortenObj(obj, max) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
each(o, function (a, n) {
|
|
28
|
+
export default function shortenObj(obj, max = 100) {
|
|
29
|
+
let o = clone(obj);
|
|
30
|
+
each(o, (a, n) => {
|
|
32
31
|
if (isString(a) && a.length > max) {
|
|
33
32
|
o[n] = shorten(a, max);
|
|
34
33
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
export default function shuffle(array) {
|
|
2
|
-
|
|
3
|
-
var currentIndex = array.length, randomIndex;
|
|
2
|
+
let currentIndex = array.length, randomIndex;
|
|
4
3
|
// While there remain elements to shuffle.
|
|
5
4
|
while (currentIndex != 0) {
|
|
6
5
|
// Pick a remaining element.
|
|
7
6
|
randomIndex = Math.floor(Math.random() * currentIndex);
|
|
8
7
|
currentIndex--;
|
|
9
8
|
// And swap it with the current element.
|
|
10
|
-
|
|
9
|
+
[array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
|
|
11
10
|
}
|
|
12
11
|
return array;
|
|
13
12
|
}
|
package/dist/fn/object/sum.js
CHANGED
|
@@ -45,9 +45,9 @@ import filter from './filter.js';
|
|
|
45
45
|
* @returns {Number} The sum
|
|
46
46
|
*/
|
|
47
47
|
export default function sum(arr, numberProp, prop, val, operator) {
|
|
48
|
-
|
|
49
|
-
each(filter(arr, prop, val, operator),
|
|
50
|
-
|
|
48
|
+
let r = 0;
|
|
49
|
+
each(filter(arr, prop, val, operator), (a) => {
|
|
50
|
+
let tmp = typeof numberProp === 'function' ? numberProp(a) : a[numberProp];
|
|
51
51
|
if (tmp) {
|
|
52
52
|
r += parseFloat(tmp) || 0;
|
|
53
53
|
}
|
package/dist/fn/object/unique.js
CHANGED
package/dist/fn/phone/fphone.js
CHANGED
|
@@ -7,41 +7,41 @@ export default function fphone(st) {
|
|
|
7
7
|
st = st.toString();
|
|
8
8
|
}
|
|
9
9
|
if (isString(st)) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const phoneCodes = ((_a = bbn.var) === null || _a === void 0 ? void 0 : _a.phoneCodes) || [];
|
|
11
|
+
let res = '';
|
|
12
|
+
let prefix = '';
|
|
13
|
+
let mask = '';
|
|
14
14
|
if (phoneCodes.length) {
|
|
15
15
|
// Get phone prefix and mask
|
|
16
|
-
each(phoneCodes,
|
|
17
|
-
if (st.startsWith(c.prefix) && (c.prefix.length >
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
each(phoneCodes, c => {
|
|
17
|
+
if (st.startsWith(c.prefix) && (c.prefix.length > prefix.length)) {
|
|
18
|
+
prefix = c.prefix;
|
|
19
|
+
mask = c.mask || '';
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
if (!
|
|
23
|
+
if (!mask.length) {
|
|
24
24
|
if (st.startsWith('+')) {
|
|
25
|
-
if (!
|
|
26
|
-
|
|
25
|
+
if (!prefix.length) {
|
|
26
|
+
prefix = st.substr(0, 3);
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
for (
|
|
28
|
+
const tmpSt = st.slice(prefix.length);
|
|
29
|
+
for (let i = 0; i < tmpSt.length; i++) {
|
|
30
30
|
if (((i + 1) <= tmpSt.length) && ((i % 2) === 0)) {
|
|
31
|
-
|
|
31
|
+
mask += '0' + (tmpSt[i + 1] ? '0' : '') + ' ';
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
mask = mask.trim();
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
if (
|
|
38
|
-
if (
|
|
39
|
-
res =
|
|
40
|
-
st = st.slice(
|
|
37
|
+
if (mask.length) {
|
|
38
|
+
if (prefix.length) {
|
|
39
|
+
res = prefix + ' ';
|
|
40
|
+
st = st.slice(prefix.length);
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
res +=
|
|
44
|
-
return st[
|
|
42
|
+
let i = 0;
|
|
43
|
+
res += mask.replace(/[0-9]/g, () => {
|
|
44
|
+
return st[i++] || '';
|
|
45
45
|
});
|
|
46
46
|
return res;
|
|
47
47
|
}
|
|
@@ -24,12 +24,12 @@ import substr from './substr.js';
|
|
|
24
24
|
*/
|
|
25
25
|
export default function baseName(path, suffix) {
|
|
26
26
|
if (path && isString(path)) {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
let bits = path.split("/");
|
|
28
|
+
let res = bits.pop();
|
|
29
29
|
if (!suffix) {
|
|
30
30
|
return res;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
let len = suffix.length;
|
|
33
33
|
if (res && substr(res, -len) === suffix) {
|
|
34
34
|
return substr(res, 0, res.length - len);
|
|
35
35
|
}
|
package/dist/fn/string/crc32.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CRC32 implementation.
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
for (
|
|
6
|
-
|
|
7
|
-
for (
|
|
4
|
+
const crc32Table = [];
|
|
5
|
+
for (let i = 0; i < 256; i++) {
|
|
6
|
+
let c = i;
|
|
7
|
+
for (let j = 0; j < 8; j++) {
|
|
8
8
|
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
9
9
|
}
|
|
10
10
|
crc32Table.push(c);
|
|
11
11
|
}
|
|
12
12
|
export default function crc32(str) {
|
|
13
|
-
|
|
14
|
-
for (
|
|
15
|
-
|
|
13
|
+
let crc = 0 ^ -1;
|
|
14
|
+
for (let i = 0; i < str.length; i++) {
|
|
15
|
+
const charCode = str.charCodeAt(i);
|
|
16
16
|
crc = (crc >>> 8) ^ crc32Table[(crc ^ charCode) & 0xff];
|
|
17
17
|
}
|
|
18
18
|
return (crc ^ -1) >>> 0; // Make sure the result is a 32-bit positive integer
|
|
@@ -16,11 +16,10 @@ import isObject from '../type/isObject.js';
|
|
|
16
16
|
* @param {String} [clsName]
|
|
17
17
|
* @returns {String}
|
|
18
18
|
*/
|
|
19
|
-
export default function data2Html(data, clsName) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
for (var n in data) {
|
|
19
|
+
export default function data2Html(data, clsName = '') {
|
|
20
|
+
const isAssoc = !isArray(data);
|
|
21
|
+
let st = '<ul class="bbn-bottom-xspadding ' + (clsName || 'bbn-ul') + '">';
|
|
22
|
+
for (let n in data) {
|
|
24
23
|
st += '<li>';
|
|
25
24
|
if (isAssoc) {
|
|
26
25
|
st += '<em>' + n + '</em>: ';
|
|
@@ -20,7 +20,7 @@ export default function dirName(path) {
|
|
|
20
20
|
while (substr(path, path.length - 1) === "/") {
|
|
21
21
|
path = substr(path, 0, path.length - 1);
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
let pos = path.lastIndexOf("/");
|
|
24
24
|
if (pos > 0) {
|
|
25
25
|
return substr(path, 0, pos);
|
|
26
26
|
}
|
|
@@ -10,7 +10,7 @@ import isString from '../type/isString.js';
|
|
|
10
10
|
* @returns
|
|
11
11
|
*/
|
|
12
12
|
export default function escapeUrl(url, params) {
|
|
13
|
-
|
|
13
|
+
let st = "";
|
|
14
14
|
if (url.match("^(http|https)://")) {
|
|
15
15
|
st += "http";
|
|
16
16
|
url = url.substring(4);
|
|
@@ -21,14 +21,14 @@ export default function escapeUrl(url, params) {
|
|
|
21
21
|
st += "://";
|
|
22
22
|
url = url.substring(3);
|
|
23
23
|
}
|
|
24
|
-
each(dirName(url).split("/"),
|
|
24
|
+
each(dirName(url).split("/"), (a) => {
|
|
25
25
|
st += encodeURIComponent(a) + "/";
|
|
26
26
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
let base = baseName(url);
|
|
28
|
+
let sep = "?";
|
|
29
|
+
let existingParams = "";
|
|
30
30
|
if (base.indexOf(sep)) {
|
|
31
|
-
|
|
31
|
+
let tmp = base.split("?");
|
|
32
32
|
sep = "&";
|
|
33
33
|
existingParams = "?" + tmp[1];
|
|
34
34
|
base = tmp[0];
|
|
@@ -37,7 +37,7 @@ import isString from '../type/isString.js';
|
|
|
37
37
|
*/
|
|
38
38
|
export default function fileExt(filename) {
|
|
39
39
|
if (filename && isString(filename)) {
|
|
40
|
-
|
|
40
|
+
let bits = filename.split(".");
|
|
41
41
|
if (bits[0] && bits.length > 1) {
|
|
42
42
|
return bits[bits.length - 1].toLowerCase();
|
|
43
43
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* @returns {String}
|
|
5
5
|
*/
|
|
6
6
|
export default function firstVarElement(varName) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const firstBracket = varName.indexOf('[');
|
|
8
|
+
const firstDot = varName.indexOf('.');
|
|
9
9
|
if (firstBracket === -1 && firstDot === -1) {
|
|
10
10
|
return varName;
|
|
11
11
|
}
|
package/dist/fn/string/format.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import checkType from '../type/checkType.js';
|
|
2
2
|
export default function format(str) {
|
|
3
|
-
|
|
3
|
+
let args = Array.prototype.slice.call(arguments, 1);
|
|
4
4
|
if (args.length) {
|
|
5
|
-
|
|
6
|
-
return str.replace(/\%([d|s])/g,
|
|
7
|
-
|
|
5
|
+
let i = 0;
|
|
6
|
+
return str.replace(/\%([d|s])/g, (match, type) => {
|
|
7
|
+
let tmp = args[i++];
|
|
8
8
|
checkType(tmp, type === 'd' ? 'number' : 'string', bbn._("The value doesn't correspond to the format"));
|
|
9
9
|
return tmp;
|
|
10
10
|
});
|
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
* @memberof bbn.fn
|
|
11
11
|
* @returns {String}
|
|
12
12
|
*/
|
|
13
|
-
export default function formatBytes(bytes, decimals) {
|
|
14
|
-
if (decimals === void 0) { decimals = 2; }
|
|
13
|
+
export default function formatBytes(bytes, decimals = 2) {
|
|
15
14
|
if (!bytes) {
|
|
16
15
|
return '0 B';
|
|
17
16
|
}
|
|
18
|
-
|
|
17
|
+
const k = 1024, s = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
19
18
|
return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals < 0 ? 0 : decimals)) + ' ' + s[i];
|
|
20
19
|
}
|
|
21
20
|
;
|
package/dist/fn/string/hash.js
CHANGED
|
@@ -5,19 +5,15 @@ import treatForHash from './treatForHash.js';
|
|
|
5
5
|
* @param {[*]} args
|
|
6
6
|
* @returns {String}
|
|
7
7
|
*/
|
|
8
|
-
export default function hash() {
|
|
9
|
-
var args = [];
|
|
10
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
11
|
-
args[_i] = arguments[_i];
|
|
12
|
-
}
|
|
8
|
+
export default function hash(...args) {
|
|
13
9
|
//log(obj);
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
let st = "";
|
|
11
|
+
let depth = null;
|
|
16
12
|
if ((args.length === 2) && (typeof args[1] === 'number')) {
|
|
17
13
|
depth = args[1];
|
|
18
14
|
args = [args[0]];
|
|
19
15
|
}
|
|
20
|
-
for (
|
|
16
|
+
for (let i in args) {
|
|
21
17
|
st += treatForHash(args[i], depth, 0, null, treatForHash);
|
|
22
18
|
}
|
|
23
19
|
return simpleHash(st);
|
|
@@ -26,9 +26,9 @@ import randomInt from '../misc/randomInt.js';
|
|
|
26
26
|
* @returns {String}
|
|
27
27
|
*/
|
|
28
28
|
export default function randomString(min, max, types) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
let length;
|
|
30
|
+
let type;
|
|
31
|
+
let chars = {
|
|
32
32
|
n: "0123456789",
|
|
33
33
|
l: "abcdefghijklmnopqrstuvwxyz",
|
|
34
34
|
u: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
|
@@ -54,8 +54,8 @@ export default function randomString(min, max, types) {
|
|
|
54
54
|
else if (min) {
|
|
55
55
|
length = min;
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
for (
|
|
57
|
+
let result = "";
|
|
58
|
+
for (let i = 0; i < length; i++) {
|
|
59
59
|
// Not a number for the first char
|
|
60
60
|
if (i === 0) {
|
|
61
61
|
if (types !== "n") {
|
|
@@ -21,8 +21,7 @@ import escapeRegExp from './escapeRegExp.js';
|
|
|
21
21
|
* @param {String} flags
|
|
22
22
|
* @returns {String}
|
|
23
23
|
*/
|
|
24
|
-
export default function replaceAll(find, replace, str, flags) {
|
|
25
|
-
if (flags === void 0) { flags = ""; }
|
|
24
|
+
export default function replaceAll(find, replace, str, flags = "") {
|
|
26
25
|
return str
|
|
27
26
|
.toString()
|
|
28
27
|
.replace(isObject(find) ? find : new RegExp(escapeRegExp(find), "g" + flags), replace);
|
|
@@ -15,19 +15,18 @@ import trim from './trim.js';
|
|
|
15
15
|
* @memberof bbn.fn
|
|
16
16
|
* @returns {String} str
|
|
17
17
|
*/
|
|
18
|
-
export default function sanitize(str, separator) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
for (var i = 0; i < separator.length; i++) {
|
|
18
|
+
export default function sanitize(str, separator = "_") {
|
|
19
|
+
let escaped = ["[", "]", "{", "}", "(", ")", "-", "+", "*", "/"];
|
|
20
|
+
let exp = "[";
|
|
21
|
+
for (let i = 0; i < separator.length; i++) {
|
|
23
22
|
if (escaped.includes(separator[i])) {
|
|
24
23
|
exp += "\\";
|
|
25
24
|
}
|
|
26
25
|
exp += separator[i];
|
|
27
26
|
}
|
|
28
27
|
exp += "]+";
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
let re = new RegExp(exp, "g");
|
|
29
|
+
let res = removeAccents(str)
|
|
31
30
|
.replace(/[^a-z0-9]/gi, separator)
|
|
32
31
|
.replace(re, separator);
|
|
33
32
|
return trim(res, separator);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import simpleHash1 from './simpleHash1.js';
|
|
2
2
|
import simpleHash2 from './simpleHash2.js';
|
|
3
3
|
export default function simpleHash(str) {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const part1 = simpleHash1(str).padStart(8, '0');
|
|
5
|
+
const part2 = simpleHash2(str).padStart(8, '0');
|
|
6
6
|
return part1 + part2;
|
|
7
7
|
}
|
|
8
8
|
;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default function simpleHash1(str) {
|
|
2
|
-
|
|
3
|
-
for (
|
|
4
|
-
|
|
2
|
+
let hash = 0;
|
|
3
|
+
for (let i = 0; i < str.length; i++) {
|
|
4
|
+
const char = str.charCodeAt(i);
|
|
5
5
|
hash = (hash << 5) - hash + char;
|
|
6
6
|
hash |= 0; // Convert to 32-bit integer
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default function simpleHash2(str) {
|
|
2
|
-
|
|
3
|
-
for (
|
|
4
|
-
|
|
2
|
+
let hash = 0;
|
|
3
|
+
for (let i = 0; i < str.length; i++) {
|
|
4
|
+
const char = str.charCodeAt(i);
|
|
5
5
|
hash = char + (hash << 6) + (hash << 16) - hash;
|
|
6
6
|
hash |= 0; // Convert to 32-bit integer
|
|
7
7
|
}
|
|
@@ -10,11 +10,7 @@ import isCp from '../type/isCp.js';
|
|
|
10
10
|
* @param {WeakSet} [visited=null]
|
|
11
11
|
* @returns {String}
|
|
12
12
|
*/
|
|
13
|
-
export default function treatForHash(value, depth, level, visited, fn) {
|
|
14
|
-
if (depth === void 0) { depth = null; }
|
|
15
|
-
if (level === void 0) { level = 0; }
|
|
16
|
-
if (visited === void 0) { visited = null; }
|
|
17
|
-
if (fn === void 0) { fn = null; }
|
|
13
|
+
export default function treatForHash(value, depth = null, level = 0, visited = null, fn = null) {
|
|
18
14
|
if (!level && !visited) {
|
|
19
15
|
visited = new WeakSet();
|
|
20
16
|
}
|
|
@@ -65,8 +61,8 @@ export default function treatForHash(value, depth, level, visited, fn) {
|
|
|
65
61
|
}
|
|
66
62
|
else {
|
|
67
63
|
visited.add(value);
|
|
68
|
-
|
|
69
|
-
for (
|
|
64
|
+
let st = '';
|
|
65
|
+
for (let i = 0; i < value.length; i++) {
|
|
70
66
|
st += "__BBN_ITEM" + i.toString() + "__" + fn(value[i], depth, level + 1, visited, fn);
|
|
71
67
|
}
|
|
72
68
|
value = "__BBN_ARRAY__" + st;
|
|
@@ -78,9 +74,9 @@ export default function treatForHash(value, depth, level, visited, fn) {
|
|
|
78
74
|
}
|
|
79
75
|
else {
|
|
80
76
|
visited.add(value);
|
|
81
|
-
|
|
82
|
-
for (
|
|
83
|
-
|
|
77
|
+
let st = '';
|
|
78
|
+
for (let n in value) {
|
|
79
|
+
let idx = n;
|
|
84
80
|
if (typeof idx !== 'string') {
|
|
85
81
|
idx = fn(idx, fn, 1, 1);
|
|
86
82
|
}
|
package/dist/fn/string/trim.js
CHANGED
|
@@ -17,13 +17,9 @@ import md5 from './md5.js';
|
|
|
17
17
|
* @memberof bbn.fn
|
|
18
18
|
* @returns {String} The unique string in md5 format
|
|
19
19
|
*/
|
|
20
|
-
export default function uniqString() {
|
|
21
|
-
var args = [];
|
|
22
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
23
|
-
args[_i] = arguments[_i];
|
|
24
|
-
}
|
|
20
|
+
export default function uniqString(...args) {
|
|
25
21
|
var st = "";
|
|
26
|
-
var
|
|
22
|
+
for (var i = 0; i < args.length; i++) {
|
|
27
23
|
if (!args[i]) {
|
|
28
24
|
st += "__bbn_empty__";
|
|
29
25
|
}
|
|
@@ -33,12 +29,12 @@ export default function uniqString() {
|
|
|
33
29
|
}
|
|
34
30
|
else {
|
|
35
31
|
// An object with the same properties, even in different order, should produce the same answer
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
each(ks,
|
|
39
|
-
|
|
32
|
+
let tmp = {};
|
|
33
|
+
let ks = Object.keys(args[i]).sort();
|
|
34
|
+
each(ks, (k) => {
|
|
35
|
+
tmp[k] = args[i][k];
|
|
40
36
|
});
|
|
41
|
-
st += JSON.stringify(
|
|
37
|
+
st += JSON.stringify(tmp);
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
40
|
else if (typeof args[i] !== "string") {
|
|
@@ -47,9 +43,6 @@ export default function uniqString() {
|
|
|
47
43
|
else {
|
|
48
44
|
st += args[i];
|
|
49
45
|
}
|
|
50
|
-
};
|
|
51
|
-
for (var i = 0; i < args.length; i++) {
|
|
52
|
-
_loop_1();
|
|
53
46
|
}
|
|
54
47
|
return md5(st);
|
|
55
48
|
}
|