@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.
- package/dist/_.js +7 -11
- package/dist/bbn.js +1 -1
- package/dist/bbn.js.map +1 -1
- package/dist/date.d.ts +39 -0
- package/dist/date.js +339 -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 -8
- 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
package/dist/fn/ajax/download.js
CHANGED
|
@@ -32,18 +32,16 @@ import downloadContent from './downloadContent.js';
|
|
|
32
32
|
*
|
|
33
33
|
* @returns {undefined}
|
|
34
34
|
*/
|
|
35
|
-
export default function download(url, filename, params) {
|
|
36
|
-
if (filename === void 0) { filename = ''; }
|
|
37
|
-
if (params === void 0) { params = null; }
|
|
35
|
+
export default function download(url, filename = '', params = null) {
|
|
38
36
|
// We can intervert the arguments
|
|
39
37
|
if (filename && typeof filename === "object") {
|
|
40
38
|
params = filename;
|
|
41
39
|
filename = "";
|
|
42
40
|
}
|
|
43
|
-
return ajax(url, "blob", params || { _bbn_download: 1 },
|
|
41
|
+
return ajax(url, "blob", params || { _bbn_download: 1 }, (d, headers) => {
|
|
44
42
|
if (!filename) {
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
let prop = "content-disposition";
|
|
44
|
+
let cd = "attachment; filename=";
|
|
47
45
|
if ((headers === null || headers === void 0 ? void 0 : headers[prop]) && headers[prop].indexOf(cd) === 0) {
|
|
48
46
|
filename = substr(headers[prop], cd.length + 1, headers[prop].length - cd.length - 2);
|
|
49
47
|
}
|
|
@@ -52,8 +50,8 @@ export default function download(url, filename, params) {
|
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
if (isBlob(d)) {
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
let extension = fileExt(filename);
|
|
54
|
+
let htmlExtensions = ["php", "html"];
|
|
57
55
|
if (typeof filename === "string" &&
|
|
58
56
|
(("type" in d && d.type !== "text/html") ||
|
|
59
57
|
htmlExtensions.includes(extension))) {
|
|
@@ -61,7 +59,7 @@ export default function download(url, filename, params) {
|
|
|
61
59
|
return;
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
|
-
},
|
|
62
|
+
}, (e) => {
|
|
65
63
|
bbn.fn.defaultAjaxErrorFunction(e);
|
|
66
64
|
});
|
|
67
65
|
}
|
|
@@ -28,12 +28,11 @@ import log from '../browser/log.js';
|
|
|
28
28
|
*
|
|
29
29
|
* @returns {undefined}
|
|
30
30
|
*/
|
|
31
|
-
export default function downloadContent(filename, content, type) {
|
|
32
|
-
if (type === void 0) { type = null; }
|
|
31
|
+
export default function downloadContent(filename, content, type = null) {
|
|
33
32
|
if (isCanvas(content)) {
|
|
34
|
-
content.toBlob(
|
|
33
|
+
content.toBlob((blob) => {
|
|
35
34
|
// blob ready, download it
|
|
36
|
-
|
|
35
|
+
let a = document.createElement('a');
|
|
37
36
|
a.download = filename;
|
|
38
37
|
a.href = window.URL.createObjectURL(blob);
|
|
39
38
|
a.className = 'bbn-no';
|
|
@@ -49,9 +48,9 @@ export default function downloadContent(filename, content, type) {
|
|
|
49
48
|
else if (type.indexOf('/') === -1) {
|
|
50
49
|
type = 'text/' + type;
|
|
51
50
|
}
|
|
52
|
-
|
|
51
|
+
let a = window.document.createElement('a');
|
|
53
52
|
a.className = 'bbn-no';
|
|
54
|
-
|
|
53
|
+
let src = null;
|
|
55
54
|
if (isString(content)) {
|
|
56
55
|
src = new Blob([content], { type: type });
|
|
57
56
|
}
|
|
@@ -35,7 +35,7 @@ import search from '../object/search.js';
|
|
|
35
35
|
* @returns {null|Object} The corresponding loader Object if it exists, false otherwise
|
|
36
36
|
*/
|
|
37
37
|
export default function getLoader(requestId) {
|
|
38
|
-
|
|
38
|
+
let idx = search(bbn.env.loaders, { key: requestId });
|
|
39
39
|
if (idx > -1) {
|
|
40
40
|
return bbn.env.loaders[idx];
|
|
41
41
|
}
|
|
@@ -49,9 +49,9 @@ import md5 from '../string/md5.js';
|
|
|
49
49
|
* @returns {String} The unique ID
|
|
50
50
|
*/
|
|
51
51
|
export default function getRequestId(url, data, datatype) {
|
|
52
|
-
|
|
52
|
+
let d = {};
|
|
53
53
|
if (data) {
|
|
54
|
-
iterate(data,
|
|
54
|
+
iterate(data, (a, n) => {
|
|
55
55
|
if (n.indexOf('_bbn') === -1) {
|
|
56
56
|
d[n] = a;
|
|
57
57
|
}
|
package/dist/fn/ajax/link.js
CHANGED
|
@@ -30,13 +30,9 @@ import setNavigationVars from './setNavigationVars.js';
|
|
|
30
30
|
*
|
|
31
31
|
* @returns
|
|
32
32
|
*/
|
|
33
|
-
export default function link() {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
args[_i] = arguments[_i];
|
|
37
|
-
}
|
|
38
|
-
var cfg = treatAjaxArguments(args);
|
|
39
|
-
var ok = 1;
|
|
33
|
+
export default function link(...args) {
|
|
34
|
+
let cfg = treatAjaxArguments(args);
|
|
35
|
+
let ok = 1;
|
|
40
36
|
if (cfg === true) {
|
|
41
37
|
return true;
|
|
42
38
|
}
|
|
@@ -67,7 +63,7 @@ export default function link() {
|
|
|
67
63
|
/* Mail link */
|
|
68
64
|
bbn.env.ignoreUnload = true;
|
|
69
65
|
window.location.href = cfg.url;
|
|
70
|
-
setTimeout(
|
|
66
|
+
setTimeout(() => {
|
|
71
67
|
bbn.env.ignoreUnload = false;
|
|
72
68
|
}, 0);
|
|
73
69
|
return false;
|
|
@@ -91,7 +87,7 @@ export default function link() {
|
|
|
91
87
|
ok = cfg.successFn(cfg.url);
|
|
92
88
|
}
|
|
93
89
|
else if (bbn.fn.defaultPreLinkFunction) {
|
|
94
|
-
|
|
90
|
+
let tmp = bbn.fn.defaultPreLinkFunction(cfg.url, cfg.force, cfg.ele);
|
|
95
91
|
if (tmp.data !== undefined) {
|
|
96
92
|
extend(cfg.obj, tmp.data);
|
|
97
93
|
ok = 1;
|
|
@@ -105,15 +101,15 @@ export default function link() {
|
|
|
105
101
|
cfg.url = ok;
|
|
106
102
|
}
|
|
107
103
|
/** todo Do we keep obj in the unique string or do we make that only one concurrent connection to the same address can occur at the same time? */
|
|
108
|
-
|
|
109
|
-
return ajax(cfg.url, cfg.datatype, cfg.obj,
|
|
104
|
+
let errSt = bbn._('The Ajax call to') + ' ' + cfg.url + ' ';
|
|
105
|
+
return ajax(cfg.url, cfg.datatype, cfg.obj, res => {
|
|
110
106
|
if (!res) {
|
|
111
|
-
log(
|
|
107
|
+
log(errSt + bbn._('returned no answer'));
|
|
112
108
|
}
|
|
113
109
|
if (isObject(res)) {
|
|
114
110
|
// If there's nothing in the result, just an empty object, the callback stops here and the URL is not changed
|
|
115
111
|
if (Object.keys(res).length === 0) {
|
|
116
|
-
log(
|
|
112
|
+
log(errSt + bbn._('returned an empty object'));
|
|
117
113
|
}
|
|
118
114
|
if (res.new_url) {
|
|
119
115
|
res.old_path = cfg.url;
|
package/dist/fn/ajax/post.js
CHANGED
|
@@ -34,14 +34,10 @@ import callback from './callback.js';
|
|
|
34
34
|
*
|
|
35
35
|
* @returns {undefined|Promise}
|
|
36
36
|
*/
|
|
37
|
-
export default function post() {
|
|
38
|
-
|
|
39
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
40
|
-
args[_i] = arguments[_i];
|
|
41
|
-
}
|
|
42
|
-
var cfg = treatAjaxArguments(args);
|
|
37
|
+
export default function post(...args) {
|
|
38
|
+
let cfg = treatAjaxArguments(args);
|
|
43
39
|
if (cfg.url) {
|
|
44
|
-
return ajax(cfg.url, cfg.datatype, cfg.obj,
|
|
40
|
+
return ajax(cfg.url, cfg.datatype, cfg.obj, (res) => {
|
|
45
41
|
callback(cfg.url, res, cfg.successFn, cfg.errorFn, cfg.ele);
|
|
46
42
|
}, cfg.errorFn, cfg.abortFn);
|
|
47
43
|
}
|
package/dist/fn/ajax/postOut.js
CHANGED
|
@@ -20,10 +20,8 @@ import setProperty from '../object/setProperty.js';
|
|
|
20
20
|
*
|
|
21
21
|
* @returns {void}
|
|
22
22
|
*/
|
|
23
|
-
export default function postOut(url, data, success, target) {
|
|
24
|
-
|
|
25
|
-
if (target === void 0) { target = ""; }
|
|
26
|
-
var form = document.body.querySelector("form#bbn-form_out");
|
|
23
|
+
export default function postOut(url, data, success = null, target = "") {
|
|
24
|
+
let form = document.body.querySelector("form#bbn-form_out");
|
|
27
25
|
if (!form) {
|
|
28
26
|
form = document.createElement("form");
|
|
29
27
|
form.classList.add("bbn-no");
|
|
@@ -24,9 +24,7 @@ import html2text from '../html/html2text.js';
|
|
|
24
24
|
*
|
|
25
25
|
* @returns {void}
|
|
26
26
|
*/
|
|
27
|
-
export default function setNavigationVars(url, title, data, repl) {
|
|
28
|
-
if (data === void 0) { data = null; }
|
|
29
|
-
if (repl === void 0) { repl = false; }
|
|
27
|
+
export default function setNavigationVars(url, title, data = null, repl = false) {
|
|
30
28
|
// Current path becomes old path
|
|
31
29
|
bbn.env.old_path = bbn.env.path;
|
|
32
30
|
// URL includes the domain
|
|
@@ -34,14 +32,14 @@ export default function setNavigationVars(url, title, data, repl) {
|
|
|
34
32
|
// Path does not
|
|
35
33
|
bbn.env.path = substr(bbn.env.url, bbn.env.root.length);
|
|
36
34
|
// Params will include each part of the URL
|
|
37
|
-
bbn.env.params = bbn.env.path.split('/').filter(
|
|
35
|
+
bbn.env.params = bbn.env.path.split('/').filter(v => v !== '');
|
|
38
36
|
// Managing history
|
|
39
|
-
|
|
37
|
+
let h = window.history;
|
|
40
38
|
if (h) {
|
|
41
39
|
// Current state
|
|
42
|
-
|
|
40
|
+
let state = h.state;
|
|
43
41
|
// Future state
|
|
44
|
-
|
|
42
|
+
let obj = {
|
|
45
43
|
url: bbn.env.path,
|
|
46
44
|
old_path: bbn.env.old_path || null,
|
|
47
45
|
data: data || {},
|
package/dist/fn/ajax/stream.js
CHANGED
|
@@ -22,10 +22,10 @@ import arrayBuffer2String from '../convert/arrayBuffer2String.js';
|
|
|
22
22
|
*
|
|
23
23
|
* @returns {Promise} The Promise created by the generated XHR.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
const boundary = '\n';
|
|
26
26
|
export default function stream(url, success, data, failure, abort, finished) {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const requestId = getRequestId(url, data, 'json');
|
|
28
|
+
const loaderObj = getLoader(requestId);
|
|
29
29
|
//log("IN AJAX", loaderObj? loaderObj.loader : "NO LOADER")
|
|
30
30
|
if (loaderObj === null || loaderObj === void 0 ? void 0 : loaderObj.loader) {
|
|
31
31
|
return loaderObj.loader;
|
|
@@ -36,9 +36,9 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
36
36
|
if (bbn.env.token) {
|
|
37
37
|
data._bbn_token = bbn.env.token;
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const aborter = new AbortController();
|
|
40
|
+
let json = '';
|
|
41
|
+
const treatJSON = (json) => {
|
|
42
42
|
if (json.length) {
|
|
43
43
|
if (json.indexOf(boundary) > -1) {
|
|
44
44
|
json = bbn.fn.removeEmpty(json.split(boundary));
|
|
@@ -46,7 +46,7 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
46
46
|
else {
|
|
47
47
|
json = [json];
|
|
48
48
|
}
|
|
49
|
-
for (
|
|
49
|
+
for (let i in json) {
|
|
50
50
|
try {
|
|
51
51
|
success(JSON.parse(json[i]));
|
|
52
52
|
}
|
|
@@ -56,8 +56,8 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
const chrono = bbn.fn.startChrono();
|
|
60
|
+
const loader = fetch(url, {
|
|
61
61
|
method: 'POST', // *GET, POST, PUT, DELETE, etc.
|
|
62
62
|
mode: 'cors', // no-cors, *cors, same-origin
|
|
63
63
|
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
|
|
@@ -71,13 +71,12 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
71
71
|
signal: aborter.signal,
|
|
72
72
|
body: JSON.stringify(data || {}) // body data type must match "Content-Type" header
|
|
73
73
|
})
|
|
74
|
-
.then(
|
|
74
|
+
.then(response => {
|
|
75
75
|
bbn.fn.log("RESPONSE IN " + bbn.fn.stopChrono(chrono, true) + " SECS");
|
|
76
76
|
if (response.body) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
var done = _a.done, value = _a.value;
|
|
77
|
+
const reader = response.body.getReader();
|
|
78
|
+
const isFn = isFunction(success);
|
|
79
|
+
reader.read().then(function pump({ done, value }) {
|
|
81
80
|
if (done) {
|
|
82
81
|
// Do something with last chunk of data then exit reader
|
|
83
82
|
_deleteLoader(requestId, data);
|
|
@@ -89,7 +88,7 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
89
88
|
}
|
|
90
89
|
return;
|
|
91
90
|
}
|
|
92
|
-
if (
|
|
91
|
+
if (isFn) {
|
|
93
92
|
json += arrayBuffer2String(value).trim();
|
|
94
93
|
bbn.fn.log(["STREAM RESULT", json.length, json]);
|
|
95
94
|
if (json) {
|
|
@@ -104,19 +103,19 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
104
103
|
}
|
|
105
104
|
}
|
|
106
105
|
else {
|
|
107
|
-
bbn.fn.log(["STREAM SUCCESS IS FN? " +
|
|
106
|
+
bbn.fn.log(["STREAM SUCCESS IS FN? " + isFn]);
|
|
108
107
|
}
|
|
109
108
|
// Read some more, and call this function again
|
|
110
|
-
return
|
|
109
|
+
return reader.read().then(pump);
|
|
111
110
|
});
|
|
112
111
|
}
|
|
113
112
|
})
|
|
114
|
-
.catch(
|
|
115
|
-
|
|
113
|
+
.catch((err) => {
|
|
114
|
+
let isAbort = axios.isCancel(err);
|
|
116
115
|
_deleteLoader(requestId, data, isAbort);
|
|
117
116
|
defaultEndLoadingFunction(url, tst, data, err);
|
|
118
117
|
if (isAbort) {
|
|
119
|
-
|
|
118
|
+
let ok = 1;
|
|
120
119
|
if (isFunction(abort)) {
|
|
121
120
|
ok = abort(err.message, url);
|
|
122
121
|
}
|
|
@@ -125,7 +124,7 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
125
124
|
}
|
|
126
125
|
}
|
|
127
126
|
else {
|
|
128
|
-
|
|
127
|
+
let ok = 1;
|
|
129
128
|
if (isFunction(failure)) {
|
|
130
129
|
ok = failure(err.request, err);
|
|
131
130
|
}
|
|
@@ -134,7 +133,7 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
134
133
|
}
|
|
135
134
|
}
|
|
136
135
|
});
|
|
137
|
-
|
|
136
|
+
let tst = _addLoader(requestId, loader, aborter);
|
|
138
137
|
defaultStartLoadingFunction(url, tst, data, requestId);
|
|
139
138
|
return loader;
|
|
140
139
|
}
|
|
@@ -54,9 +54,9 @@ import numProperties from '../object/numProperties.js';
|
|
|
54
54
|
* @returns {Object} The configuration object
|
|
55
55
|
*/
|
|
56
56
|
export default function treatAjaxArguments(args) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
let cfg = {};
|
|
58
|
+
let t;
|
|
59
|
+
let i;
|
|
60
60
|
if (isObject(args[0]) && args.length === 1) {
|
|
61
61
|
return args[0];
|
|
62
62
|
}
|
package/dist/fn/ajax/upload.js
CHANGED
|
@@ -16,18 +16,15 @@ import log from '../browser/log.js';
|
|
|
16
16
|
*
|
|
17
17
|
* @returns {Promise}
|
|
18
18
|
*/
|
|
19
|
-
export default function upload(url, file, success, failure, progress) {
|
|
20
|
-
|
|
21
|
-
if (failure === void 0) { failure = null; }
|
|
22
|
-
if (progress === void 0) { progress = null; }
|
|
23
|
-
var fn = function () {
|
|
19
|
+
export default function upload(url, file, success = null, failure = null, progress = null) {
|
|
20
|
+
let fn = () => {
|
|
24
21
|
return axios.post(url || bbn.env.path, objectToFormData(file), {
|
|
25
22
|
headers: {
|
|
26
23
|
'Content-Type': 'multipart/form-data',
|
|
27
24
|
},
|
|
28
|
-
onUploadProgress
|
|
25
|
+
onUploadProgress(progressEvent) {
|
|
29
26
|
if (progress) {
|
|
30
|
-
|
|
27
|
+
let percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
|
|
31
28
|
progress(percentCompleted, progressEvent.loaded, progressEvent.total);
|
|
32
29
|
}
|
|
33
30
|
},
|
|
@@ -38,13 +35,13 @@ export default function upload(url, file, success, failure, progress) {
|
|
|
38
35
|
}
|
|
39
36
|
else {
|
|
40
37
|
return fn()
|
|
41
|
-
.then(
|
|
38
|
+
.then((res) => {
|
|
42
39
|
if (success) {
|
|
43
40
|
log('SUCCESS', res);
|
|
44
41
|
success(res);
|
|
45
42
|
}
|
|
46
43
|
})
|
|
47
|
-
.catch(
|
|
44
|
+
.catch((err) => {
|
|
48
45
|
if (failure) {
|
|
49
46
|
log('ERROR', err);
|
|
50
47
|
failure(err);
|
package/dist/fn/browser/copy.js
CHANGED
|
@@ -13,11 +13,10 @@ import isFunction from '../type/isFunction.js';
|
|
|
13
13
|
* @param {String} st The string to copy.
|
|
14
14
|
* @returns
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var transfer = new DataTransfer();
|
|
16
|
+
const fire = (st, type = 'text/plain') => {
|
|
17
|
+
const transfer = new DataTransfer();
|
|
19
18
|
transfer.setData(type, st);
|
|
20
|
-
|
|
19
|
+
const copyEvent = new ClipboardEvent('copy', {
|
|
21
20
|
bubbles: true,
|
|
22
21
|
cancelable: true,
|
|
23
22
|
clipboardData: transfer
|
|
@@ -25,12 +24,11 @@ var fire = function (st, type) {
|
|
|
25
24
|
document.dispatchEvent(copyEvent);
|
|
26
25
|
};
|
|
27
26
|
export default function copy(st, noDispatch) {
|
|
28
|
-
return new Promise(
|
|
29
|
-
var _a;
|
|
27
|
+
return new Promise((resolve) => {
|
|
30
28
|
if (st) {
|
|
31
29
|
if (navigator && navigator.clipboard) {
|
|
32
30
|
if (st instanceof Blob) {
|
|
33
|
-
navigator.clipboard.write([new ClipboardItem(
|
|
31
|
+
navigator.clipboard.write([new ClipboardItem({ [st.type.toString()]: st })]).then(() => {
|
|
34
32
|
resolve(true);
|
|
35
33
|
});
|
|
36
34
|
if (!noDispatch) {
|
|
@@ -38,10 +36,9 @@ export default function copy(st, noDispatch) {
|
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
38
|
else if (isObject(st) && isFunction(st.toBlob)) {
|
|
41
|
-
st.toBlob(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
navigator.clipboard.write([item]).then(function () {
|
|
39
|
+
st.toBlob((blob) => {
|
|
40
|
+
const item = new ClipboardItem({ [blob.type.toString()]: blob });
|
|
41
|
+
navigator.clipboard.write([item]).then(() => {
|
|
45
42
|
if (!noDispatch) {
|
|
46
43
|
fire(st, blob.type.toString());
|
|
47
44
|
}
|
|
@@ -58,7 +55,7 @@ export default function copy(st, noDispatch) {
|
|
|
58
55
|
}
|
|
59
56
|
return;
|
|
60
57
|
}
|
|
61
|
-
|
|
58
|
+
let input = document.createElement('textarea');
|
|
62
59
|
input.style.opacity = '0';
|
|
63
60
|
input.value = st;
|
|
64
61
|
document.body.appendChild(input);
|
package/dist/fn/browser/error.js
CHANGED
|
@@ -13,8 +13,8 @@ import log from './log.js';
|
|
|
13
13
|
*/
|
|
14
14
|
export default function error(errorMsg) {
|
|
15
15
|
if (arguments.length > 1) {
|
|
16
|
-
|
|
17
|
-
for (
|
|
16
|
+
const args = [];
|
|
17
|
+
for (let i = 1; i < arguments.length; i++) {
|
|
18
18
|
args.push(arguments[i]);
|
|
19
19
|
}
|
|
20
20
|
args.unshift({
|
|
@@ -7,33 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
10
|
import yieldToBrowser from './yieldToBrowser.js';
|
|
38
11
|
/**
|
|
39
12
|
* Executes a function on each element of an array slowly, yielding to the browser in between.
|
|
@@ -42,34 +15,17 @@ import yieldToBrowser from './yieldToBrowser.js';
|
|
|
42
15
|
* @returns A promise that resolves to true if the iteration completed, or false if it was stopped early.
|
|
43
16
|
*/
|
|
44
17
|
export default function executeSlowly(arr, fn) {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return [4 /*yield*/, yieldToBrowser()];
|
|
55
|
-
case 2:
|
|
56
|
-
_a.sent();
|
|
57
|
-
res = fn(arr[i], i);
|
|
58
|
-
if (!(res instanceof Promise)) return [3 /*break*/, 4];
|
|
59
|
-
return [4 /*yield*/, res];
|
|
60
|
-
case 3:
|
|
61
|
-
res = _a.sent();
|
|
62
|
-
_a.label = 4;
|
|
63
|
-
case 4:
|
|
64
|
-
if (res === false) {
|
|
65
|
-
return [2 /*return*/, false];
|
|
66
|
-
}
|
|
67
|
-
_a.label = 5;
|
|
68
|
-
case 5:
|
|
69
|
-
i++;
|
|
70
|
-
return [3 /*break*/, 1];
|
|
71
|
-
case 6: return [2 /*return*/, true];
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
for (let i = 0; i < arr.length; i++) {
|
|
20
|
+
yield yieldToBrowser();
|
|
21
|
+
let res = fn(arr[i], i);
|
|
22
|
+
if (res instanceof Promise) {
|
|
23
|
+
res = yield res;
|
|
24
|
+
}
|
|
25
|
+
if (res === false) {
|
|
26
|
+
return false;
|
|
72
27
|
}
|
|
73
|
-
}
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
74
30
|
});
|
|
75
31
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @returns {String}
|
|
7
7
|
*/
|
|
8
8
|
export default function getBrowserName() {
|
|
9
|
-
|
|
9
|
+
const userAgent = navigator.userAgent.toLowerCase();
|
|
10
10
|
switch (true) {
|
|
11
11
|
case userAgent.includes('edge'):
|
|
12
12
|
case userAgent.includes('edg/'):
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @returns {String}
|
|
7
7
|
*/
|
|
8
8
|
export default function getBrowserVersion() {
|
|
9
|
-
|
|
9
|
+
const userAgent = navigator.userAgent.toLowerCase();
|
|
10
10
|
switch (true) {
|
|
11
11
|
case userAgent.includes('edge/'):
|
|
12
12
|
return userAgent.split('edge/')[1].split(' ')[0];
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
* @returns
|
|
14
14
|
*/
|
|
15
15
|
export default function getCookie(name) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
for (
|
|
19
|
-
|
|
16
|
+
let nameEqual = name + '=';
|
|
17
|
+
let ca = document.cookie.split(';');
|
|
18
|
+
for (let i = 0; i < ca.length; i++) {
|
|
19
|
+
let c = ca[i];
|
|
20
20
|
while (c.charAt(0) == ' ') {
|
|
21
21
|
c = c.substring(1, c.length);
|
|
22
22
|
}
|
|
23
23
|
if (c.indexOf(nameEqual) == 0) {
|
|
24
|
-
|
|
24
|
+
let st = c.substring(nameEqual.length, c.length);
|
|
25
25
|
if (st) {
|
|
26
26
|
return JSON.parse(unescape(st)).value;
|
|
27
27
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @returns {String}
|
|
12
12
|
*/
|
|
13
13
|
export default function getDeviceType() {
|
|
14
|
-
|
|
14
|
+
const userAgent = navigator.userAgent.toLowerCase();
|
|
15
15
|
if (/iPhone|Android/i.test(navigator.userAgent)) {
|
|
16
16
|
return 'mobile';
|
|
17
17
|
}
|