@kizmann/pico-js 2.1.4 → 2.1.5
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/pico-js.browser.js +1 -1
- package/dist/pico-js.browser.js.map +1 -1
- package/dist/pico-js.esm.js +1 -1
- package/dist/pico-js.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/dom/DomBuilder.ts +3 -1
- package/src/utils/Array.ts +24 -3
- package/src/utils/Locale.ts +3 -1
- package/types/utils/Array.d.ts +11 -0
package/package.json
CHANGED
package/src/dom/DomBuilder.ts
CHANGED
package/src/utils/Array.ts
CHANGED
|
@@ -406,7 +406,7 @@ export class PicoArray
|
|
|
406
406
|
* @param {any[]} [result] Initial result
|
|
407
407
|
* @returns {any} Cascade result
|
|
408
408
|
*/
|
|
409
|
-
static cascade(value : any, childs : string, cb: Function, cascade: any[] = [], result = []) : any
|
|
409
|
+
static cascade(value : any, childs : string, cb : Function, cascade : any[] = [], result = []) : any
|
|
410
410
|
{
|
|
411
411
|
let fn = (cas : any) => (val : any) => {
|
|
412
412
|
return this.cascade(val, childs, cb, cas, result);
|
|
@@ -439,6 +439,27 @@ export class PicoArray
|
|
|
439
439
|
return result;
|
|
440
440
|
}
|
|
441
441
|
|
|
442
|
+
/**
|
|
443
|
+
* Flatten nested array cascade
|
|
444
|
+
*
|
|
445
|
+
* @example Arr.cascadeFlatten([{n:1, children:[{n:2}]}]) // => [{n:1,...}, {n:2}]
|
|
446
|
+
*
|
|
447
|
+
* @param {any[]} items Input list
|
|
448
|
+
* @param {string} [key] Child key
|
|
449
|
+
* @param {any[]} [result] Initial result
|
|
450
|
+
* @returns {any[]} Flattened list
|
|
451
|
+
*/
|
|
452
|
+
static cascadeFlatten(items : any[], key : string = 'children', result : any[] = []) : any[]
|
|
453
|
+
{
|
|
454
|
+
let cb = (input : any) => {
|
|
455
|
+
result.push(input), Mix.isArr(input[key]) && input[key].forEach(cb);
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
items.forEach(cb);
|
|
459
|
+
|
|
460
|
+
return result;
|
|
461
|
+
}
|
|
462
|
+
|
|
442
463
|
/**
|
|
443
464
|
* Find item in cascade
|
|
444
465
|
*
|
|
@@ -457,11 +478,11 @@ export class PicoArray
|
|
|
457
478
|
|
|
458
479
|
let result = null
|
|
459
480
|
|
|
460
|
-
const fn = (val : any, cascade: any[]) => {
|
|
481
|
+
const fn = (val : any, cascade : any[]) => {
|
|
461
482
|
return cb(val, cascade) ? [...cascade, val] : null;
|
|
462
483
|
};
|
|
463
484
|
|
|
464
|
-
this.cascade(value, childs, (val:any, cascade : any[]) => {
|
|
485
|
+
this.cascade(value, childs, (val : any, cascade : any[]) => {
|
|
465
486
|
if ( result == null ) result = fn(val, cascade);
|
|
466
487
|
});
|
|
467
488
|
|
package/src/utils/Locale.ts
CHANGED
package/types/utils/Array.d.ts
CHANGED
|
@@ -200,6 +200,17 @@ export declare class PicoArray {
|
|
|
200
200
|
* @returns {any} Cascade result
|
|
201
201
|
*/
|
|
202
202
|
static cascade(value: any, childs: string, cb: Function, cascade?: any[], result?: any[]): any;
|
|
203
|
+
/**
|
|
204
|
+
* Flatten nested array cascade
|
|
205
|
+
*
|
|
206
|
+
* @example Arr.cascadeFlatten([{n:1, children:[{n:2}]}]) // => [{n:1,...}, {n:2}]
|
|
207
|
+
*
|
|
208
|
+
* @param {any[]} items Input list
|
|
209
|
+
* @param {string} [key] Child key
|
|
210
|
+
* @param {any[]} [result] Initial result
|
|
211
|
+
* @returns {any[]} Flattened list
|
|
212
|
+
*/
|
|
213
|
+
static cascadeFlatten(items: any[], key?: string, result?: any[]): any[];
|
|
203
214
|
/**
|
|
204
215
|
* Find item in cascade
|
|
205
216
|
*
|