@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
|
@@ -15,23 +15,21 @@ import isObject from '../type/isObject.js';
|
|
|
15
15
|
*
|
|
16
16
|
* @returns {Boolean} True if the loader was found
|
|
17
17
|
*/
|
|
18
|
-
export default function _deleteLoader(requestId, res, isAbort) {
|
|
19
|
-
|
|
20
|
-
if (isAbort === void 0) { isAbort = false; }
|
|
21
|
-
var idx = search(bbn.env.loaders, { key: requestId });
|
|
18
|
+
export default function _deleteLoader(requestId, res = null, isAbort = false) {
|
|
19
|
+
let idx = search(bbn.env.loaders, { key: requestId });
|
|
22
20
|
if (idx > -1) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
let loader = bbn.env.loaders.splice(idx, 1)[0];
|
|
22
|
+
let history = getRow(bbn.env.loadersHistory, { key: requestId, start: loader.start });
|
|
23
|
+
if (history) {
|
|
24
|
+
history.loading = false;
|
|
25
|
+
history.duration = new Date().getTime() - loader.start;
|
|
28
26
|
if (typeof res === 'string') {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
history.errorMessage = res;
|
|
28
|
+
history.error = !isAbort;
|
|
29
|
+
history.abort = isAbort;
|
|
32
30
|
}
|
|
33
31
|
else if (isObject(res)) {
|
|
34
|
-
|
|
32
|
+
history.success = true;
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
return true;
|
package/dist/fn/ajax/abort.js
CHANGED
|
@@ -22,7 +22,7 @@ import getLoader from './getLoader.js';
|
|
|
22
22
|
* @returns {undefined}
|
|
23
23
|
*/
|
|
24
24
|
export default function abort(requestId) {
|
|
25
|
-
|
|
25
|
+
let loader = getLoader(requestId);
|
|
26
26
|
if (loader === null || loader === void 0 ? void 0 : loader.aborter) {
|
|
27
27
|
loader.aborter.abort('Operation canceled by the user.');
|
|
28
28
|
}
|
package/dist/fn/ajax/abortURL.js
CHANGED
|
@@ -21,7 +21,7 @@ import _filter from '../object/_filter.js';
|
|
|
21
21
|
* @returns {undefined}
|
|
22
22
|
*/
|
|
23
23
|
export default function abortURL(url) {
|
|
24
|
-
each(_filter(bbn.env.loaders, { url: url }),
|
|
24
|
+
each(_filter(bbn.env.loaders, { url: url }), (a) => {
|
|
25
25
|
if (a && a.source) {
|
|
26
26
|
a.source.cancel('Operation canceled by the user.');
|
|
27
27
|
}
|
package/dist/fn/ajax/ajax.js
CHANGED
|
@@ -62,12 +62,7 @@ import _addLoader from './_addLoader.js';
|
|
|
62
62
|
*
|
|
63
63
|
* @returns {Promise} The Promise created by the generated XHR.
|
|
64
64
|
*/
|
|
65
|
-
export default function ajax(url, datatype, data, success, failure, abort) {
|
|
66
|
-
if (datatype === void 0) { datatype = null; }
|
|
67
|
-
if (data === void 0) { data = null; }
|
|
68
|
-
if (success === void 0) { success = null; }
|
|
69
|
-
if (failure === void 0) { failure = null; }
|
|
70
|
-
if (abort === void 0) { abort = null; }
|
|
65
|
+
export default function ajax(url, datatype = null, data = null, success = null, failure = null, abort = null) {
|
|
71
66
|
if ((datatype === null) && url && (typeof url === "object") && url.url) {
|
|
72
67
|
if (url.abort) {
|
|
73
68
|
abort = url.abort;
|
|
@@ -97,16 +92,16 @@ export default function ajax(url, datatype, data, success, failure, abort) {
|
|
|
97
92
|
if (!datatype) {
|
|
98
93
|
datatype = "json";
|
|
99
94
|
}
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
let requestId = getRequestId(url, data, datatype);
|
|
96
|
+
let loaderObj = getLoader(requestId);
|
|
102
97
|
if (loaderObj === null || loaderObj === void 0 ? void 0 : loaderObj.loader) {
|
|
103
98
|
return loaderObj.loader;
|
|
104
99
|
}
|
|
105
100
|
if (bbn.env.token) {
|
|
106
101
|
extend(data || {}, { _bbn_token: bbn.env.token });
|
|
107
102
|
}
|
|
108
|
-
|
|
109
|
-
|
|
103
|
+
const aborter = new AbortController();
|
|
104
|
+
let options = {
|
|
110
105
|
responseType: datatype,
|
|
111
106
|
signal: aborter.signal
|
|
112
107
|
};
|
|
@@ -116,17 +111,17 @@ export default function ajax(url, datatype, data, success, failure, abort) {
|
|
|
116
111
|
"Content-Type": "text/javascript",
|
|
117
112
|
};
|
|
118
113
|
}
|
|
119
|
-
|
|
114
|
+
let args = [url];
|
|
120
115
|
if (isObject(data)) {
|
|
121
116
|
args.push(data);
|
|
122
117
|
}
|
|
123
118
|
args.push(options);
|
|
124
|
-
|
|
125
|
-
|
|
119
|
+
const axiosMethod = args.length === 2 ? "get" : "post";
|
|
120
|
+
let loader = axios[axiosMethod]
|
|
126
121
|
.apply(null, args)
|
|
127
|
-
.then(
|
|
128
|
-
_deleteLoader(
|
|
129
|
-
bbn.fn.defaultEndLoadingFunction(url,
|
|
122
|
+
.then(res => {
|
|
123
|
+
_deleteLoader(requestId, res);
|
|
124
|
+
bbn.fn.defaultEndLoadingFunction(url, tst, data, res);
|
|
130
125
|
switch (res.status) {
|
|
131
126
|
case 200:
|
|
132
127
|
if (isFunction(success)) {
|
|
@@ -135,22 +130,22 @@ export default function ajax(url, datatype, data, success, failure, abort) {
|
|
|
135
130
|
}
|
|
136
131
|
break;
|
|
137
132
|
default:
|
|
138
|
-
|
|
133
|
+
let ok = 1;
|
|
139
134
|
if (isFunction(failure)) {
|
|
140
|
-
ok = failure(
|
|
135
|
+
ok = failure(loader, res.message, res);
|
|
141
136
|
}
|
|
142
137
|
if (ok) {
|
|
143
|
-
bbn.fn.defaultAjaxErrorFunction(
|
|
138
|
+
bbn.fn.defaultAjaxErrorFunction(loader, res.message, res);
|
|
144
139
|
}
|
|
145
140
|
}
|
|
146
141
|
return res;
|
|
147
142
|
})
|
|
148
|
-
.catch(
|
|
149
|
-
|
|
150
|
-
_deleteLoader(
|
|
151
|
-
bbn.fn.defaultEndLoadingFunction(url,
|
|
143
|
+
.catch((err) => {
|
|
144
|
+
let isAbort = axios.isCancel(err);
|
|
145
|
+
_deleteLoader(requestId, err.message || err.response.data, isAbort);
|
|
146
|
+
bbn.fn.defaultEndLoadingFunction(url, tst, data, err);
|
|
152
147
|
if (isAbort) {
|
|
153
|
-
|
|
148
|
+
let ok = 1;
|
|
154
149
|
if (isFunction(abort)) {
|
|
155
150
|
ok = abort(err.message, url);
|
|
156
151
|
}
|
|
@@ -159,19 +154,19 @@ export default function ajax(url, datatype, data, success, failure, abort) {
|
|
|
159
154
|
}
|
|
160
155
|
}
|
|
161
156
|
else {
|
|
162
|
-
|
|
157
|
+
let ok = 1;
|
|
163
158
|
if (isFunction(failure)) {
|
|
164
|
-
ok = failure(
|
|
159
|
+
ok = failure(loader, err.message, err);
|
|
165
160
|
}
|
|
166
161
|
if (ok) {
|
|
167
|
-
bbn.fn.defaultAjaxErrorFunction(
|
|
162
|
+
bbn.fn.defaultAjaxErrorFunction(loader, err.message, err.response);
|
|
168
163
|
}
|
|
169
164
|
}
|
|
170
165
|
return err.response;
|
|
171
166
|
});
|
|
172
|
-
|
|
173
|
-
bbn.fn.defaultStartLoadingFunction(url,
|
|
174
|
-
return
|
|
167
|
+
let tst = _addLoader(requestId, loader, aborter);
|
|
168
|
+
bbn.fn.defaultStartLoadingFunction(url, tst, data, requestId);
|
|
169
|
+
return loader;
|
|
175
170
|
}
|
|
176
171
|
}
|
|
177
172
|
;
|
package/dist/fn/ajax/callback.js
CHANGED
|
@@ -36,21 +36,17 @@ import log from '../browser/log.js';
|
|
|
36
36
|
*
|
|
37
37
|
* @returns {*} The result of the main callback function: res.script, fn, or bbn.fn.defaultLinkFunction
|
|
38
38
|
*/
|
|
39
|
-
export default function callback(url, res, fn, fn2, ele) {
|
|
40
|
-
|
|
41
|
-
if (fn === void 0) { fn = null; }
|
|
42
|
-
if (fn2 === void 0) { fn2 = null; }
|
|
43
|
-
if (ele === void 0) { ele = null; }
|
|
44
|
-
var tmp = false;
|
|
39
|
+
export default function callback(url, res = null, fn = null, fn2 = null, ele = null) {
|
|
40
|
+
let tmp = false;
|
|
45
41
|
if (res) {
|
|
46
42
|
tmp = true;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
let t = typeof res;
|
|
44
|
+
let isObj = t.toLowerCase() === 'object';
|
|
45
|
+
let errTitle;
|
|
50
46
|
if (isObj && res.prescript) {
|
|
51
47
|
/* var ok can be changed to false in prescript execution */
|
|
52
48
|
try {
|
|
53
|
-
|
|
49
|
+
const preFn = new Function(res.prescript);
|
|
54
50
|
preFn();
|
|
55
51
|
}
|
|
56
52
|
catch (e) {
|
|
@@ -80,10 +76,10 @@ export default function callback(url, res, fn, fn2, ele) {
|
|
|
80
76
|
tmp = res.script(res.data ? res.data : {}, ele || null);
|
|
81
77
|
}
|
|
82
78
|
else {
|
|
83
|
-
tmp = (
|
|
84
|
-
|
|
79
|
+
tmp = ((data, ele) => {
|
|
80
|
+
let r = null;
|
|
85
81
|
try {
|
|
86
|
-
|
|
82
|
+
let fnScript = new Function(res.script);
|
|
87
83
|
r = fnScript();
|
|
88
84
|
if (isFunction(r)) {
|
|
89
85
|
r = r(data, ele);
|
|
@@ -105,7 +101,7 @@ export default function callback(url, res, fn, fn2, ele) {
|
|
|
105
101
|
bbn.fn.defaultPostLinkFunction(res, ele);
|
|
106
102
|
}
|
|
107
103
|
if (tmp && isObj && res.postscript) {
|
|
108
|
-
|
|
104
|
+
let fnPost = new Function(res.postscript);
|
|
109
105
|
fnPost(res.postscript);
|
|
110
106
|
}
|
|
111
107
|
if (isObj && res.error) {
|
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);
|