@bbn/bbn 2.0.237 → 2.0.238
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 +1 -1
- package/dist/bbn.js +3 -3
- package/dist/bbn.js.map +1 -1
- package/dist/bbn.sw.js +3 -3
- package/dist/bbn.sw.js.map +1 -1
- package/dist/com.js +13 -21
- package/dist/{vars.d.ts → data.d.ts} +1 -0
- package/dist/{vars.js → data.js} +1 -0
- package/dist/db/classes/Object.d.ts +3 -0
- package/dist/db/classes/Object.js +458 -0
- package/dist/db/classes/ObjectProxy.d.ts +18 -0
- package/dist/db/classes/ObjectProxy.js +77 -0
- package/dist/db/classes/Proxy.d.ts +17 -0
- package/dist/db/classes/Proxy.js +66 -0
- package/dist/db/functions/fieldsFromFilter.d.ts +1 -0
- package/dist/db/functions/fieldsFromFilter.js +33 -0
- package/dist/db/functions/getPrimaryKey.d.ts +2 -0
- package/dist/db/functions/getPrimaryKey.js +8 -0
- package/dist/db/functions/requestToPromise.d.ts +1 -0
- package/dist/db/functions/requestToPromise.js +6 -0
- package/dist/db/functions/transactionDone.d.ts +1 -0
- package/dist/db/functions/transactionDone.js +7 -0
- package/dist/db/functions/transformResult.d.ts +1 -0
- package/dist/db/functions/transformResult.js +16 -0
- package/dist/db/types.d.ts +54 -0
- package/dist/db/types.js +1 -0
- package/dist/db.d.ts +1 -65
- package/dist/db.js +1 -557
- package/dist/dt/classes/{date.d.ts → Date.d.ts} +1 -1
- package/dist/dt/classes/{date.js → Date.js} +8 -3
- package/dist/dt/classes/{dateTime.d.ts → DateTime.d.ts} +1 -1
- package/dist/dt/classes/{dateTime.js → DateTime.js} +9 -3
- package/dist/dt/classes/{dt.d.ts → Dt.d.ts} +1 -1
- package/dist/dt/classes/{dt.js → Dt.js} +36 -48
- package/dist/dt/classes/Duration.js +193 -0
- package/dist/dt/classes/{monthDay.d.ts → MonthDay.d.ts} +1 -1
- package/dist/dt/classes/{monthDay.js → MonthDay.js} +2 -2
- package/dist/dt/classes/{time.d.ts → Time.d.ts} +1 -1
- package/dist/dt/classes/{time.js → Time.js} +2 -2
- package/dist/dt/classes/{yearMonth.d.ts → YearMonth.d.ts} +1 -1
- package/dist/dt/classes/{yearMonth.js → YearMonth.js} +2 -2
- package/dist/dt/classes/{zoned.d.ts → Zoned.d.ts} +1 -1
- package/dist/dt/classes/{zoned.js → Zoned.js} +9 -3
- package/dist/dt/functions/buildLocaleFromIntl.js +1 -1
- package/dist/dt/functions/guessFormat.js +1 -1
- package/dist/dt/functions/intl-weekinfo-polyfill.js +11 -4
- package/dist/dt/functions/parse.js +20 -22
- package/dist/dt/functions/setupIntl.js +33 -44
- package/dist/dt.d.ts +1 -1
- package/dist/dt.js +9 -7
- package/dist/env.d.ts +1 -1
- package/dist/env.js +6 -7
- package/dist/fn/ajax/abort.js +1 -1
- package/dist/fn/ajax/ajax.d.ts +1 -1
- package/dist/fn/ajax/ajax.js +2 -2
- package/dist/fn/ajax/download.js +1 -1
- package/dist/fn/ajax/getFileContent.js +2 -3
- package/dist/fn/ajax/link.js +2 -2
- package/dist/fn/ajax/stream.js +2 -2
- package/dist/fn/browser/executeSlowly.js +11 -22
- package/dist/fn/browser/log.js +2 -3
- package/dist/fn/browser/yieldToBrowser.js +7 -19
- package/dist/fn/html/makeReactive.js +2 -2
- package/dist/fn/init.d.ts +1 -1
- package/dist/fn/init.js +4 -5
- package/dist/fn/object/_filter.js +1 -1
- package/dist/fn/phone/fphone.js +1 -2
- package/dist/fn/string/cast.js +1 -2
- package/dist/fn/string/shorten.js +1 -1
- package/dist/fn/string/treatForHash.js +1 -1
- package/dist/fn/style/addColors.d.ts +1 -1
- package/dist/fn/style/addColors.js +4 -4
- package/dist/fn/type/checkType.js +1 -2
- package/dist/fn/type/isCp.js +1 -2
- package/dist/fn/type/isHostname.js +1 -1
- package/dist/fn/type/isIP.js +1 -1
- package/dist/fn/type/isSame.js +2 -2
- package/dist/fn/type/isURL.js +1 -1
- package/dist/index-no-dep.js +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/dist/dt/classes/duration.js +0 -199
- /package/dist/dt/classes/{duration.d.ts → Duration.d.ts} +0 -0
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
// setup-intl.ts
|
|
11
2
|
import { ensureIntlWeekInfoPolyfill } from './intl-weekinfo-polyfill.js';
|
|
12
3
|
// ------------------------------
|
|
@@ -29,7 +20,7 @@ function needsDateTimeStylePolyfill() {
|
|
|
29
20
|
new Intl.DateTimeFormat('en', { dateStyle: 'medium' });
|
|
30
21
|
return false;
|
|
31
22
|
}
|
|
32
|
-
catch
|
|
23
|
+
catch {
|
|
33
24
|
// Old Safari, old Firefox, old Chrome, etc.
|
|
34
25
|
return true;
|
|
35
26
|
}
|
|
@@ -44,38 +35,36 @@ function needsDateTimeStylePolyfill() {
|
|
|
44
35
|
* import { setupIntl } from './setup-intl';
|
|
45
36
|
* await setupIntl();
|
|
46
37
|
*/
|
|
47
|
-
export default function setupIntl() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
ensureIntlWeekInfoPolyfill();
|
|
80
|
-
});
|
|
38
|
+
export default async function setupIntl() {
|
|
39
|
+
const tasks = [];
|
|
40
|
+
// Polyfill RelativeTimeFormat only if missing (old Safari, old Firefox, etc.)
|
|
41
|
+
if (needsRelativeTimeFormatPolyfill()) {
|
|
42
|
+
tasks.push((async () => {
|
|
43
|
+
const rtModule = await import('@formatjs/intl-relativetimeformat/polyfill.js');
|
|
44
|
+
// Ensure module is evaluated (rtModule is unused but import side-effect matters)
|
|
45
|
+
void rtModule;
|
|
46
|
+
// Add the locales you actually use:
|
|
47
|
+
await import('@formatjs/intl-relativetimeformat/locale-data/en.js');
|
|
48
|
+
// await import('@formatjs/intl-relativetimeformat/locale-data/it');
|
|
49
|
+
// ...more locales if needed
|
|
50
|
+
})());
|
|
51
|
+
}
|
|
52
|
+
// Polyfill DateTimeFormat only when style formats are not supported
|
|
53
|
+
if (needsDateTimeStylePolyfill()) {
|
|
54
|
+
tasks.push((async () => {
|
|
55
|
+
const dtModule = await import('@formatjs/intl-datetimeformat/polyfill.js');
|
|
56
|
+
void dtModule;
|
|
57
|
+
// Optional but common: locale data
|
|
58
|
+
await import('@formatjs/intl-datetimeformat/locale-data/en.js');
|
|
59
|
+
// await import('@formatjs/intl-datetimeformat/locale-data/it');
|
|
60
|
+
// If you need full timezone data (heavy!):
|
|
61
|
+
// await import('@formatjs/intl-datetimeformat/add-all-tz');
|
|
62
|
+
})());
|
|
63
|
+
}
|
|
64
|
+
// Wait for all FormatJS polyfills that are actually needed
|
|
65
|
+
if (tasks.length > 0) {
|
|
66
|
+
await Promise.all(tasks);
|
|
67
|
+
}
|
|
68
|
+
// Finally, always patch weekInfo (Intl.Locale) – Firefox, Chrome, etc.
|
|
69
|
+
ensureIntlWeekInfoPolyfill();
|
|
81
70
|
}
|
package/dist/dt.d.ts
CHANGED
package/dist/dt.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Temporal } from 'temporal-polyfill';
|
|
2
|
-
import bbnDtDateTime from './dt/classes/
|
|
3
|
-
import bbnDtDate from './dt/classes/
|
|
4
|
-
import bbnDtTime from './dt/classes/
|
|
5
|
-
import bbnDtYearMonth from './dt/classes/
|
|
6
|
-
import bbnDtMonthDay from './dt/classes/
|
|
7
|
-
import bbnDtZoned from './dt/classes/
|
|
8
|
-
import bbnDtDuration from './dt/classes/
|
|
2
|
+
import bbnDtDateTime from './dt/classes/DateTime.js';
|
|
3
|
+
import bbnDtDate from './dt/classes/Date.js';
|
|
4
|
+
import bbnDtTime from './dt/classes/Zoned.js';
|
|
5
|
+
import bbnDtYearMonth from './dt/classes/YearMonth.js';
|
|
6
|
+
import bbnDtMonthDay from './dt/classes/MonthDay.js';
|
|
7
|
+
import bbnDtZoned from './dt/classes/Zoned.js';
|
|
8
|
+
import bbnDtDuration from './dt/classes/Duration.js';
|
|
9
9
|
import _ from './_.js';
|
|
10
10
|
import parse from './dt/functions/parse.js';
|
|
11
11
|
import guessFormat from './dt/functions/guessFormat.js';
|
|
12
|
+
import buildLocaleFromIntl from './dt/functions/buildLocaleFromIntl.js';
|
|
12
13
|
const patterns = [
|
|
13
14
|
// MariaDB DATETIME "YYYY-MM-DD HH:MM:SS"
|
|
14
15
|
{
|
|
@@ -232,6 +233,7 @@ const dt = (value, inputFormat = null, cls = 'auto') => {
|
|
|
232
233
|
//throw new Error(_('Invalid date value: %s', value));
|
|
233
234
|
};
|
|
234
235
|
dt.locales = Object.create(null);
|
|
236
|
+
buildLocaleFromIntl();
|
|
235
237
|
dt.parse = parse;
|
|
236
238
|
dt.guessFormat = guessFormat;
|
|
237
239
|
dt.time = () => { };
|
package/dist/env.d.ts
CHANGED
package/dist/env.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
var _a, _b, _c, _d, _e, _f;
|
|
2
1
|
export default {
|
|
3
|
-
siteTitle:
|
|
2
|
+
siteTitle: globalThis.document?.title,
|
|
4
3
|
/* This variable should be set to true in debugging mode only */
|
|
5
4
|
logging: false,
|
|
6
5
|
/* Address of the CDN (where this file should be hosted) */
|
|
7
6
|
cdn: '',
|
|
8
7
|
/* Default language */
|
|
9
8
|
lang: 'en',
|
|
10
|
-
host:
|
|
11
|
-
url:
|
|
12
|
-
|
|
9
|
+
host: globalThis.location?.protocol + '//' + globalThis.location?.hostname,
|
|
10
|
+
url: globalThis.location?.href,
|
|
11
|
+
root: '',
|
|
13
12
|
getParameters: {},
|
|
14
13
|
/* True when non asynchronous Ajax loads */
|
|
15
14
|
loading: false,
|
|
@@ -41,11 +40,11 @@ export default {
|
|
|
41
40
|
params: [],
|
|
42
41
|
isInit: false,
|
|
43
42
|
isFocused: false,
|
|
44
|
-
isVisible: !
|
|
43
|
+
isVisible: !globalThis.document?.hidden,
|
|
45
44
|
timeoff: Math.round((new Date()).getTime() / 1000),
|
|
46
45
|
loggingLevel: 5,
|
|
47
46
|
ignoreUnload: false,
|
|
48
47
|
historyDisabled: false,
|
|
49
48
|
nav: 'ajax',
|
|
50
|
-
online:
|
|
49
|
+
online: globalThis.navigator?.onLine
|
|
51
50
|
};
|
package/dist/fn/ajax/abort.js
CHANGED
|
@@ -23,7 +23,7 @@ import getLoader from './getLoader.js';
|
|
|
23
23
|
*/
|
|
24
24
|
export default function abort(requestId) {
|
|
25
25
|
let loader = getLoader(requestId);
|
|
26
|
-
if (loader
|
|
26
|
+
if (loader?.aborter) {
|
|
27
27
|
loader.aborter.abort('Operation canceled by the user.');
|
|
28
28
|
}
|
|
29
29
|
/*
|
package/dist/fn/ajax/ajax.d.ts
CHANGED
|
@@ -54,4 +54,4 @@
|
|
|
54
54
|
*
|
|
55
55
|
* @returns {Promise} The Promise created by the generated XHR.
|
|
56
56
|
*/
|
|
57
|
-
export default function ajax(url: any, datatype?:
|
|
57
|
+
export default function ajax(url: any, datatype?: string, data?: any, success?: Function, failure?: Function, abort?: Function): any;
|
package/dist/fn/ajax/ajax.js
CHANGED
|
@@ -64,7 +64,7 @@ import com from '../../com.js';
|
|
|
64
64
|
*
|
|
65
65
|
* @returns {Promise} The Promise created by the generated XHR.
|
|
66
66
|
*/
|
|
67
|
-
export default function ajax(url, datatype
|
|
67
|
+
export default function ajax(url, datatype, data, success, failure, abort) {
|
|
68
68
|
if ((datatype === null) && url && (typeof url === "object") && url.url) {
|
|
69
69
|
if (url.abort) {
|
|
70
70
|
abort = url.abort;
|
|
@@ -96,7 +96,7 @@ export default function ajax(url, datatype = null, data = null, success = null,
|
|
|
96
96
|
}
|
|
97
97
|
let requestId = getRequestId(url, data, datatype);
|
|
98
98
|
let loaderObj = getLoader(requestId);
|
|
99
|
-
if (loaderObj
|
|
99
|
+
if (loaderObj?.loader) {
|
|
100
100
|
return loaderObj.loader;
|
|
101
101
|
}
|
|
102
102
|
if (bbn.env.token) {
|
package/dist/fn/ajax/download.js
CHANGED
|
@@ -42,7 +42,7 @@ export default function download(url, filename = '', params = null) {
|
|
|
42
42
|
if (!filename) {
|
|
43
43
|
let prop = "content-disposition";
|
|
44
44
|
let cd = "attachment; filename=";
|
|
45
|
-
if (
|
|
45
|
+
if (headers?.[prop] && headers[prop].indexOf(cd) === 0) {
|
|
46
46
|
filename = substr(headers[prop], cd.length + 1, headers[prop].length - cd.length - 2);
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
@@ -44,8 +44,7 @@ export default function getFileContent() {
|
|
|
44
44
|
input.setAttribute("accept", type);
|
|
45
45
|
}
|
|
46
46
|
input.onchange = function (event) {
|
|
47
|
-
|
|
48
|
-
const file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
47
|
+
const file = input.files?.[0];
|
|
49
48
|
if (!file)
|
|
50
49
|
return;
|
|
51
50
|
const reader = new FileReader();
|
|
@@ -57,7 +56,7 @@ export default function getFileContent() {
|
|
|
57
56
|
}
|
|
58
57
|
reader.onload = function ({ target }) {
|
|
59
58
|
if (success) {
|
|
60
|
-
success(target
|
|
59
|
+
success(target?.result);
|
|
61
60
|
}
|
|
62
61
|
};
|
|
63
62
|
reader.onerror = function () {
|
package/dist/fn/ajax/link.js
CHANGED
|
@@ -97,7 +97,7 @@ export default function link(...args) {
|
|
|
97
97
|
}
|
|
98
98
|
/** 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? */
|
|
99
99
|
let errSt = bbn._('The Ajax call to') + ' ' + cfg.url + ' ';
|
|
100
|
-
return ajax(cfg.url, cfg.datatype, cfg.obj, res => {
|
|
100
|
+
return ajax(cfg.url, cfg.datatype, cfg.obj, (res) => {
|
|
101
101
|
if (!res) {
|
|
102
102
|
log(errSt + bbn._('returned no answer'));
|
|
103
103
|
}
|
|
@@ -116,7 +116,7 @@ export default function link(...args) {
|
|
|
116
116
|
}
|
|
117
117
|
if (callback(cfg.url, res, cfg.successFn, null, cfg.ele) && res.noNav === undefined) {
|
|
118
118
|
// This solution is not very clean (we can't shorten a URL)
|
|
119
|
-
if (bbn.env
|
|
119
|
+
if ((bbn.env?.path || '').indexOf(cfg.url) !== 0) {
|
|
120
120
|
setNavigationVars(cfg.url, (res.title ? res.title + ' - ' : '') + bbn.env.siteTitle);
|
|
121
121
|
}
|
|
122
122
|
}
|
package/dist/fn/ajax/stream.js
CHANGED
|
@@ -30,7 +30,7 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
30
30
|
const requestId = getRequestId(url, data, 'json');
|
|
31
31
|
const loaderObj = getLoader(requestId);
|
|
32
32
|
//log("IN AJAX", loaderObj? loaderObj.loader : "NO LOADER")
|
|
33
|
-
if (loaderObj
|
|
33
|
+
if (loaderObj?.loader) {
|
|
34
34
|
return loaderObj.loader;
|
|
35
35
|
}
|
|
36
36
|
if (!data) {
|
|
@@ -52,7 +52,7 @@ export default function stream(url, success, data, failure, abort, finished) {
|
|
|
52
52
|
for (let i in json) {
|
|
53
53
|
try {
|
|
54
54
|
const parsed = JSON.parse(json[i]);
|
|
55
|
-
if (!
|
|
55
|
+
if (!parsed?.__bbn_stream_ping__) {
|
|
56
56
|
success(parsed);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import yieldToBrowser from './yieldToBrowser.js';
|
|
11
2
|
/**
|
|
12
3
|
* Executes a function on each element of an array slowly, yielding to the browser in between.
|
|
@@ -14,18 +5,16 @@ import yieldToBrowser from './yieldToBrowser.js';
|
|
|
14
5
|
* @param fn The function to execute on each element. If the function returns false, the iteration stops.
|
|
15
6
|
* @returns A promise that resolves to true if the iteration completed, or false if it was stopped early.
|
|
16
7
|
*/
|
|
17
|
-
export default function executeSlowly(arr, fn) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
res = yield res;
|
|
24
|
-
}
|
|
25
|
-
if (res === false) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
8
|
+
export default async function executeSlowly(arr, fn) {
|
|
9
|
+
for (let i = 0; i < arr.length; i++) {
|
|
10
|
+
await yieldToBrowser();
|
|
11
|
+
let res = fn(arr[i], i);
|
|
12
|
+
if (res instanceof Promise) {
|
|
13
|
+
res = await res;
|
|
28
14
|
}
|
|
29
|
-
|
|
30
|
-
|
|
15
|
+
if (res === false) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
31
20
|
}
|
package/dist/fn/browser/log.js
CHANGED
|
@@ -13,8 +13,7 @@ import isFunction from '../type/isFunction.js';
|
|
|
13
13
|
* @returns
|
|
14
14
|
*/
|
|
15
15
|
export default function log(...args) {
|
|
16
|
-
|
|
17
|
-
if (((_b = (_a = globalThis.bbn) === null || _a === void 0 ? void 0 : _a.env) === null || _b === void 0 ? void 0 : _b.logging) && (globalThis.console !== undefined)) {
|
|
16
|
+
if (globalThis.bbn?.env?.logging && (globalThis.console !== undefined)) {
|
|
18
17
|
let cfg;
|
|
19
18
|
let level = 5;
|
|
20
19
|
let fn = 'log';
|
|
@@ -29,7 +28,7 @@ export default function log(...args) {
|
|
|
29
28
|
args.shift();
|
|
30
29
|
}
|
|
31
30
|
const exec = globalThis.console[fn];
|
|
32
|
-
if (
|
|
31
|
+
if (globalThis.bbn?.env?.loggingLevel >= level) {
|
|
33
32
|
let i = 0;
|
|
34
33
|
while (i < args.length) {
|
|
35
34
|
let t = typeof args[i];
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
/**
|
|
11
2
|
* Yields execution to the browser to allow it to process pending UI updates.
|
|
12
3
|
* Uses `window.scheduler.yield()` if available, otherwise falls back to `requestAnimationFrame`.
|
|
@@ -19,15 +10,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
10
|
* @memberof bbn.fn
|
|
20
11
|
* @returns {Promise}
|
|
21
12
|
*/
|
|
22
|
-
export default function yieldToBrowser() {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
yield new Promise(requestAnimationFrame);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
13
|
+
export default async function yieldToBrowser() {
|
|
14
|
+
if (window.scheduler?.yield) {
|
|
15
|
+
await window.scheduler.yield(); // cooperative yield
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
await new Promise(requestAnimationFrame);
|
|
19
|
+
}
|
|
32
20
|
}
|
|
33
21
|
;
|
|
@@ -7,7 +7,7 @@ import warning from '../browser/warning.js';
|
|
|
7
7
|
import isFunction from '../type/isFunction.js';
|
|
8
8
|
import isSame from '../type/isSame.js';
|
|
9
9
|
export default function makeReactive(obj, onSet, parent, parentProp) {
|
|
10
|
-
const parentString =
|
|
10
|
+
const parentString = parent?.$cid || '';
|
|
11
11
|
const prefix = '__bbn_' + (parentString ? parentString + '_' : '');
|
|
12
12
|
if (obj && typeof obj === 'object' && [undefined, Object, Array].includes(obj.constructor)) {
|
|
13
13
|
if (obj.__bbnIsProxy && obj.__bbnParent === parent) {
|
|
@@ -48,7 +48,7 @@ export default function makeReactive(obj, onSet, parent, parentProp) {
|
|
|
48
48
|
}
|
|
49
49
|
if (key === '__bbnRoot') {
|
|
50
50
|
let root = obj;
|
|
51
|
-
while (root &&
|
|
51
|
+
while (root && root?.__bbnTarget) {
|
|
52
52
|
root = root.__bbnTarget;
|
|
53
53
|
}
|
|
54
54
|
return root;
|
package/dist/fn/init.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Initializes the library bbn basing on the given configuration object.
|
|
3
3
|
* - Gives to the environment the dimension of the window.innerWidth and window.innerHeight
|
|
4
4
|
* - Defines the server's path (difference between the host and the current dir)
|
|
5
|
-
* - Adds the colors contained in bbn.
|
|
5
|
+
* - Adds the colors contained in bbn.data.colors to define the css classes for background and colors.
|
|
6
6
|
* - Adds the event listener to the document
|
|
7
7
|
* - Activates the history
|
|
8
8
|
* @method init
|
package/dist/fn/init.js
CHANGED
|
@@ -45,7 +45,7 @@ const onActivity = (e) => {
|
|
|
45
45
|
* Initializes the library bbn basing on the given configuration object.
|
|
46
46
|
* - Gives to the environment the dimension of the window.innerWidth and window.innerHeight
|
|
47
47
|
* - Defines the server's path (difference between the host and the current dir)
|
|
48
|
-
* - Adds the colors contained in bbn.
|
|
48
|
+
* - Adds the colors contained in bbn.data.colors to define the css classes for background and colors.
|
|
49
49
|
* - Adds the event listener to the document
|
|
50
50
|
* - Activates the history
|
|
51
51
|
* @method init
|
|
@@ -55,9 +55,8 @@ const onActivity = (e) => {
|
|
|
55
55
|
* @returns
|
|
56
56
|
*/
|
|
57
57
|
export default function init(cfg, force) {
|
|
58
|
-
var _a, _b;
|
|
59
58
|
if (!bbn.env.isInit) {
|
|
60
|
-
bbn.env.root =
|
|
59
|
+
bbn.env.root = globalThis.document?.baseURI?.length ? globalThis.document.baseURI : bbn.env.host;
|
|
61
60
|
if (bbn.env.root.length && substr(bbn.env.root, -1) !== "/") {
|
|
62
61
|
bbn.env.root += "/";
|
|
63
62
|
}
|
|
@@ -77,8 +76,8 @@ export default function init(cfg, force) {
|
|
|
77
76
|
bbn.env.params = bbn.env.path.split('/').filter(v => v !== '');
|
|
78
77
|
setupIntl();
|
|
79
78
|
if (globalThis.document) {
|
|
80
|
-
if (bbn.
|
|
81
|
-
addColors(bbn.
|
|
79
|
+
if (bbn.data.colors) {
|
|
80
|
+
addColors(bbn.data.colors);
|
|
82
81
|
}
|
|
83
82
|
document.addEventListener("visibilitychange", () => {
|
|
84
83
|
if (document.hidden) {
|
|
@@ -52,7 +52,7 @@ export default function _filter(arr, prop, val = null, operator = '=', limit = 0
|
|
|
52
52
|
try {
|
|
53
53
|
arr = Array.from(arr);
|
|
54
54
|
}
|
|
55
|
-
catch
|
|
55
|
+
catch {
|
|
56
56
|
bbn.fn.log("NOT ARRAY", arr);
|
|
57
57
|
throw new Error('Error in filter: The first argument must be an array');
|
|
58
58
|
}
|
package/dist/fn/phone/fphone.js
CHANGED
|
@@ -2,12 +2,11 @@ import isNumber from '../type/isNumber.js';
|
|
|
2
2
|
import isString from '../type/isString.js';
|
|
3
3
|
import each from '../loop/each.js';
|
|
4
4
|
export default function fphone(st) {
|
|
5
|
-
var _a;
|
|
6
5
|
if (isNumber(st)) {
|
|
7
6
|
st = st.toString();
|
|
8
7
|
}
|
|
9
8
|
if (isString(st)) {
|
|
10
|
-
const phoneCodes =
|
|
9
|
+
const phoneCodes = bbn.data?.phoneCodes || [];
|
|
11
10
|
let res = '';
|
|
12
11
|
let prefix = '';
|
|
13
12
|
let mask = '';
|
package/dist/fn/string/cast.js
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* @returns {String}
|
|
15
15
|
*/
|
|
16
16
|
export default function cast(st) {
|
|
17
|
-
var _a;
|
|
18
17
|
if (!st) {
|
|
19
18
|
return '';
|
|
20
19
|
}
|
|
@@ -22,7 +21,7 @@ export default function cast(st) {
|
|
|
22
21
|
if (bbn.fn.isArray(st)) {
|
|
23
22
|
return 'Array (' + st.length + ')';
|
|
24
23
|
}
|
|
25
|
-
return
|
|
24
|
+
return st.constructor?.name || '{}';
|
|
26
25
|
}
|
|
27
26
|
if (st.toString) {
|
|
28
27
|
return st.toString();
|
|
@@ -28,7 +28,7 @@ import substr from './substr.js';
|
|
|
28
28
|
export default function shorten(st, len, adj) {
|
|
29
29
|
if (typeof st.toLowerCase() === "string") {
|
|
30
30
|
if (!len) {
|
|
31
|
-
len = bbn.
|
|
31
|
+
len = bbn.data.shortenLen;
|
|
32
32
|
}
|
|
33
33
|
if (adj === undefined || !isString(adj)) {
|
|
34
34
|
adj = "...";
|
|
@@ -38,7 +38,7 @@ export default function treatForHash(value, depth = null, level = 0, visited = n
|
|
|
38
38
|
else if (typeof value === 'boolean') {
|
|
39
39
|
value = "__BBN_BOOLEAN__" + value.toString();
|
|
40
40
|
}
|
|
41
|
-
else if (![undefined, Object, Array, null].includes(value
|
|
41
|
+
else if (![undefined, Object, Array, null].includes(value?.constructor)) {
|
|
42
42
|
if (isDom(value)) {
|
|
43
43
|
if (isCp(value)) {
|
|
44
44
|
value = "__BBN_CP__" + value.$cid;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Adds the given color to the object bbn.
|
|
2
|
+
* Adds the given color to the object bbn.data.colors in order to be able to use
|
|
3
3
|
* the css classes bbn-bg-myColor for the background and bbn-myColor for the text color.
|
|
4
4
|
*
|
|
5
5
|
* @method addColors
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import numProperties from '../object/numProperties.js';
|
|
2
2
|
import iterate from '../loop/iterate.js';
|
|
3
3
|
/**
|
|
4
|
-
* Adds the given color to the object bbn.
|
|
4
|
+
* Adds the given color to the object bbn.data.colors in order to be able to use
|
|
5
5
|
* the css classes bbn-bg-myColor for the background and bbn-myColor for the text color.
|
|
6
6
|
*
|
|
7
7
|
* @method addColors
|
|
@@ -17,8 +17,8 @@ import iterate from '../loop/iterate.js';
|
|
|
17
17
|
*/
|
|
18
18
|
export default function addColors(colors) {
|
|
19
19
|
if (numProperties(colors)) {
|
|
20
|
-
if (!bbn.
|
|
21
|
-
bbn.
|
|
20
|
+
if (!bbn.data.colors) {
|
|
21
|
+
bbn.data.colors = {};
|
|
22
22
|
}
|
|
23
23
|
let element = document.createElement("style");
|
|
24
24
|
document.head.appendChild(element);
|
|
@@ -26,7 +26,7 @@ export default function addColors(colors) {
|
|
|
26
26
|
// Append style element to head
|
|
27
27
|
let i = 0;
|
|
28
28
|
iterate(colors, (v, n) => {
|
|
29
|
-
bbn.
|
|
29
|
+
bbn.data.colors[n] = v;
|
|
30
30
|
sheet.insertRule(".bbn-" +
|
|
31
31
|
n +
|
|
32
32
|
", .bbn-color-text-" +
|
|
@@ -12,7 +12,6 @@ export default function checkType(value, type, msg, ...logs) {
|
|
|
12
12
|
}
|
|
13
13
|
const typesList = [];
|
|
14
14
|
each(type, (t) => {
|
|
15
|
-
var _a;
|
|
16
15
|
if (t === String) {
|
|
17
16
|
t = 'string';
|
|
18
17
|
}
|
|
@@ -32,7 +31,7 @@ export default function checkType(value, type, msg, ...logs) {
|
|
|
32
31
|
t = 'function';
|
|
33
32
|
}
|
|
34
33
|
if (isFunction(t)) {
|
|
35
|
-
typesList.push(t.name ||
|
|
34
|
+
typesList.push(t.name || t.constructor?.name || t.toString());
|
|
36
35
|
if (value instanceof t) {
|
|
37
36
|
ok = true;
|
|
38
37
|
return false;
|
package/dist/fn/type/isCp.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import isDom from './isDom.js';
|
|
2
2
|
export default function isCp(...args) {
|
|
3
|
-
var _a;
|
|
4
3
|
if (!args.length) {
|
|
5
4
|
return false;
|
|
6
5
|
}
|
|
@@ -9,7 +8,7 @@ export default function isCp(...args) {
|
|
|
9
8
|
}
|
|
10
9
|
for (let a of args) {
|
|
11
10
|
let res = bbn.cp.isComponent(a);
|
|
12
|
-
if (!res || isDom(a) || !
|
|
11
|
+
if (!res || isDom(a) || !a.$el?.bbnCid) {
|
|
13
12
|
return false;
|
|
14
13
|
}
|
|
15
14
|
}
|
package/dist/fn/type/isIP.js
CHANGED
package/dist/fn/type/isSame.js
CHANGED
|
@@ -48,8 +48,8 @@ export default function isSame(obj1, obj2, done) {
|
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
50
50
|
if (obj1 && obj2 && typeof obj1 === 'object' && typeof obj2 === 'object') {
|
|
51
|
-
if (![undefined, Object, Array, null].includes(obj1
|
|
52
|
-
|| ![undefined, Object, Array, null].includes(obj2
|
|
51
|
+
if (![undefined, Object, Array, null].includes(obj1?.constructor)
|
|
52
|
+
|| ![undefined, Object, Array, null].includes(obj2?.constructor)) {
|
|
53
53
|
return false;
|
|
54
54
|
}
|
|
55
55
|
let tmp1 = Object.keys(obj1).sort(), tmp2 = Object.keys(obj2).sort();
|
package/dist/fn/type/isURL.js
CHANGED
package/dist/index-no-dep.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from './_.js';
|
|
2
2
|
import $ from './$.js';
|
|
3
3
|
import lng from './lng.js';
|
|
4
|
-
import
|
|
4
|
+
import data from './data.js';
|
|
5
5
|
import env from './env.js';
|
|
6
6
|
import com from './com.js';
|
|
7
7
|
import db from './db.js';
|
|
@@ -16,7 +16,7 @@ const bbn = {
|
|
|
16
16
|
_,
|
|
17
17
|
$,
|
|
18
18
|
lng,
|
|
19
|
-
|
|
19
|
+
data,
|
|
20
20
|
dt,
|
|
21
21
|
com,
|
|
22
22
|
env,
|