@bbn/bbn 1.0.485 → 1.0.487
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/bbn.js +1 -1
- package/dist/bbn.js.map +1 -1
- package/dist/date.d.ts +2 -2
- package/dist/date.js +115 -6
- package/dist/fn/ajax/getLoader.d.ts +1 -1
- package/dist/fn/ajax/getLoader.js +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -3
- package/package.json +1 -2
package/dist/date.d.ts
CHANGED
|
@@ -33,8 +33,7 @@ declare class bbnDateTool {
|
|
|
33
33
|
get daysInMonth(): number;
|
|
34
34
|
valueOf(): number;
|
|
35
35
|
add(value: number, unit?: string): bbnDateTool | null;
|
|
36
|
-
|
|
37
|
-
subtract(value: number, unit: string | null): bbnDateTool;
|
|
36
|
+
subtract(value: number, unit?: string): bbnDateTool;
|
|
38
37
|
dateFromFormat(value: string, unit: string | null): Date;
|
|
39
38
|
date(): string;
|
|
40
39
|
datetime(): string;
|
|
@@ -82,6 +81,7 @@ declare class bbnDateTool {
|
|
|
82
81
|
* Units: year, month, week, day, hour, minute, second
|
|
83
82
|
*/
|
|
84
83
|
endOf(unit?: string): bbnDateTool;
|
|
84
|
+
duration(num: number, unit?: string): any;
|
|
85
85
|
}
|
|
86
86
|
declare function generatorFunction(value: any, inputFormat?: null | String): bbnDateTool;
|
|
87
87
|
export default generatorFunction;
|
package/dist/date.js
CHANGED
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _bbnDateTool_value, _bbnDateTool_daysInMonth;
|
|
12
|
+
var _bbnDateDuration_instances, _bbnDateDuration_durationMs, _bbnDateDuration_unit, _bbnDateDuration_getUnitRowByName, _bbnDateDuration_getUnitValue, _bbnDateTool_value, _bbnDateTool_daysInMonth, _bbnDateTool_isDuration;
|
|
13
13
|
import _ from './_.js';
|
|
14
14
|
import each from './fn/loop/each.js';
|
|
15
15
|
import substr from './fn/string/substr.js';
|
|
@@ -204,18 +204,127 @@ const unitsCorrespondence = {
|
|
|
204
204
|
'W': 'w',
|
|
205
205
|
'w': 'w'
|
|
206
206
|
};
|
|
207
|
+
class bbnDateDuration {
|
|
208
|
+
constructor(len, unit, fromMs = false) {
|
|
209
|
+
_bbnDateDuration_instances.add(this);
|
|
210
|
+
_bbnDateDuration_durationMs.set(this, 0);
|
|
211
|
+
_bbnDateDuration_unit.set(this, '');
|
|
212
|
+
const realUnit = unitsCorrespondence[unit] || unit;
|
|
213
|
+
if (!realUnit) {
|
|
214
|
+
throw new Error('Invalid unit for duration: ' + unit);
|
|
215
|
+
}
|
|
216
|
+
__classPrivateFieldSet(this, _bbnDateDuration_unit, realUnit, "f");
|
|
217
|
+
const row = bbn.fn.getRow(units, d => d[0] === realUnit);
|
|
218
|
+
if (!row) {
|
|
219
|
+
throw new Error('Invalid unit for duration: ' + realUnit);
|
|
220
|
+
}
|
|
221
|
+
const msPerUnit = row[2];
|
|
222
|
+
__classPrivateFieldSet(this, _bbnDateDuration_durationMs, fromMs ? len : len * msPerUnit, "f");
|
|
223
|
+
}
|
|
224
|
+
// -----------------------
|
|
225
|
+
// Public getters
|
|
226
|
+
// -----------------------
|
|
227
|
+
years(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'year', remaining); }
|
|
228
|
+
months(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'month', remaining); }
|
|
229
|
+
weeks(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'week', remaining); }
|
|
230
|
+
days(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'day', remaining); }
|
|
231
|
+
hours(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'hour', remaining); }
|
|
232
|
+
minutes(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'minute', remaining); }
|
|
233
|
+
seconds(remaining = false) { return __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitValue).call(this, 'second', remaining); }
|
|
234
|
+
// -----------------------
|
|
235
|
+
// Day.js style
|
|
236
|
+
// "asX" conversions
|
|
237
|
+
// -----------------------
|
|
238
|
+
/**
|
|
239
|
+
* Returns the full duration expressed as X (float), like Day.js.
|
|
240
|
+
*/
|
|
241
|
+
asYears() {
|
|
242
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'year');
|
|
243
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
244
|
+
}
|
|
245
|
+
asMonths() {
|
|
246
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'month');
|
|
247
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
248
|
+
}
|
|
249
|
+
asWeeks() {
|
|
250
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'week');
|
|
251
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
252
|
+
}
|
|
253
|
+
asDays() {
|
|
254
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'day');
|
|
255
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
256
|
+
}
|
|
257
|
+
asHours() {
|
|
258
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'hour');
|
|
259
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
260
|
+
}
|
|
261
|
+
asMinutes() {
|
|
262
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'minute');
|
|
263
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
264
|
+
}
|
|
265
|
+
asSeconds() {
|
|
266
|
+
const [, , ms] = __classPrivateFieldGet(this, _bbnDateDuration_instances, "m", _bbnDateDuration_getUnitRowByName).call(this, 'second');
|
|
267
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / ms;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Add any unit (or instance default).
|
|
271
|
+
*/
|
|
272
|
+
add(value, unit) {
|
|
273
|
+
const targetUnit = unit
|
|
274
|
+
? (unitsCorrespondence[unit] || unit)
|
|
275
|
+
: __classPrivateFieldGet(this, _bbnDateDuration_unit, "f");
|
|
276
|
+
const row = bbn.fn.getRow(units, d => d[0] === targetUnit);
|
|
277
|
+
if (!row) {
|
|
278
|
+
throw new Error('Invalid unit for duration: ' + (unit !== null && unit !== void 0 ? unit : targetUnit));
|
|
279
|
+
}
|
|
280
|
+
return new bbnDateDuration(__classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") + value * row[2], __classPrivateFieldGet(this, _bbnDateDuration_unit, "f"), true);
|
|
281
|
+
}
|
|
282
|
+
subtract(value, unit) {
|
|
283
|
+
return this.add(-value, unit);
|
|
284
|
+
}
|
|
285
|
+
toMilliseconds() {
|
|
286
|
+
return __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f");
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
_bbnDateDuration_durationMs = new WeakMap(), _bbnDateDuration_unit = new WeakMap(), _bbnDateDuration_instances = new WeakSet(), _bbnDateDuration_getUnitRowByName = function _bbnDateDuration_getUnitRowByName(name) {
|
|
290
|
+
const row = bbn.fn.getRow(units, d => d[1] === name);
|
|
291
|
+
if (!row) {
|
|
292
|
+
throw new Error('Unit name not found: ' + name);
|
|
293
|
+
}
|
|
294
|
+
return row;
|
|
295
|
+
}, _bbnDateDuration_getUnitValue = function _bbnDateDuration_getUnitValue(name, remaining) {
|
|
296
|
+
const index = units.findIndex(([, n]) => n === name);
|
|
297
|
+
if (index === -1) {
|
|
298
|
+
throw new Error('Unit not found: ' + name);
|
|
299
|
+
}
|
|
300
|
+
const unitMs = units[index][2];
|
|
301
|
+
// Total units
|
|
302
|
+
if (!remaining) {
|
|
303
|
+
return Math.floor(__classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f") / unitMs);
|
|
304
|
+
}
|
|
305
|
+
// Remaining units
|
|
306
|
+
let remainingMs = __classPrivateFieldGet(this, _bbnDateDuration_durationMs, "f");
|
|
307
|
+
for (let i = 0; i < index; i++) {
|
|
308
|
+
const [, , msHigher] = units[i];
|
|
309
|
+
const amount = Math.floor(remainingMs / msHigher);
|
|
310
|
+
remainingMs -= amount * msHigher;
|
|
311
|
+
}
|
|
312
|
+
return Math.floor(remainingMs / unitMs);
|
|
313
|
+
};
|
|
207
314
|
class bbnDateTool {
|
|
208
315
|
constructor(value, inputFormat = null) {
|
|
209
316
|
_bbnDateTool_value.set(this, void 0);
|
|
210
317
|
_bbnDateTool_daysInMonth.set(this, 0);
|
|
318
|
+
_bbnDateTool_isDuration.set(this, false);
|
|
319
|
+
let t = typeof value;
|
|
211
320
|
if (!value) {
|
|
212
321
|
__classPrivateFieldSet(this, _bbnDateTool_value, new Date(), "f");
|
|
213
322
|
}
|
|
214
323
|
else if (inputFormat) {
|
|
324
|
+
/** @todo read the date from the input format */
|
|
215
325
|
__classPrivateFieldSet(this, _bbnDateTool_value, new Date(), "f");
|
|
216
326
|
}
|
|
217
327
|
else {
|
|
218
|
-
let t = typeof value;
|
|
219
328
|
if (t === 'number' || (isNumber(value) && value !== '')) {
|
|
220
329
|
if ((value < 5000) && isNumber(inputFormat)) {
|
|
221
330
|
value = Array.from(arguments);
|
|
@@ -430,9 +539,6 @@ class bbnDateTool {
|
|
|
430
539
|
}
|
|
431
540
|
return null;
|
|
432
541
|
}
|
|
433
|
-
sub(value, unit) {
|
|
434
|
-
return this.add(-value, unit);
|
|
435
|
-
}
|
|
436
542
|
subtract(value, unit) {
|
|
437
543
|
return this.add(-value, unit);
|
|
438
544
|
}
|
|
@@ -814,8 +920,11 @@ class bbnDateTool {
|
|
|
814
920
|
}
|
|
815
921
|
return new bbnDateTool(d);
|
|
816
922
|
}
|
|
923
|
+
duration(num, unit = 's') {
|
|
924
|
+
return new bbnDateDuration(num, unit);
|
|
925
|
+
}
|
|
817
926
|
}
|
|
818
|
-
_bbnDateTool_value = new WeakMap(), _bbnDateTool_daysInMonth = new WeakMap();
|
|
927
|
+
_bbnDateTool_value = new WeakMap(), _bbnDateTool_daysInMonth = new WeakMap(), _bbnDateTool_isDuration = new WeakMap();
|
|
819
928
|
function generatorFunction(value, inputFormat = null) {
|
|
820
929
|
if (value instanceof bbnDateTool) {
|
|
821
930
|
return value;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The loader is an object representing an Ajax request, with the following properties:
|
|
5
5
|
* * _key_ is the unique ID (_requestId_) of the loader
|
|
6
6
|
* * _url_ is the URL called by the request
|
|
7
|
-
* * _loader_ is the Promise from the
|
|
7
|
+
* * _loader_ is the Promise from the XHR
|
|
8
8
|
* * _source_ is the source object for aborting the request
|
|
9
9
|
* * _start_ is the timestamp of the moment the request was sent
|
|
10
10
|
*
|
|
@@ -5,7 +5,7 @@ import search from '../object/search.js';
|
|
|
5
5
|
* The loader is an object representing an Ajax request, with the following properties:
|
|
6
6
|
* * _key_ is the unique ID (_requestId_) of the loader
|
|
7
7
|
* * _url_ is the URL called by the request
|
|
8
|
-
* * _loader_ is the Promise from the
|
|
8
|
+
* * _loader_ is the Promise from the XHR
|
|
9
9
|
* * _source_ is the source object for aborting the request
|
|
10
10
|
* * _start_ is the timestamp of the moment the request was sent
|
|
11
11
|
*
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
1
|
import dayjs from 'dayjs';
|
|
3
2
|
import calendar from 'dayjs/plugin/calendar.js';
|
|
4
3
|
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
|
|
@@ -128,8 +127,7 @@ const bbn = {
|
|
|
128
127
|
]
|
|
129
128
|
};
|
|
130
129
|
if ('undefined' !== typeof window) {
|
|
131
|
-
window.axios = axios;
|
|
132
130
|
window.dayjs = dayjs;
|
|
133
131
|
window.bbn = bbn;
|
|
134
132
|
}
|
|
135
|
-
export { bbn as default, bbn, dayjs
|
|
133
|
+
export { bbn as default, bbn, dayjs };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bbn/bbn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.487",
|
|
4
4
|
"description": "Javascript toolkit",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -44,7 +44,6 @@
|
|
|
44
44
|
"@rollup/plugin-replace": "^6.0.2",
|
|
45
45
|
"@rollup/plugin-terser": "^0.4.4",
|
|
46
46
|
"@rollup/plugin-typescript": "^12.1.4",
|
|
47
|
-
"axios": "^1.11.0",
|
|
48
47
|
"dayjs": "^1.11.13",
|
|
49
48
|
"rollup": "^4.46.1",
|
|
50
49
|
"tslib": "^2.8.1"
|