@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kizmann/pico-js",
3
- "version": "2.1.4",
3
+ "version": "2.1.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "private": false,
@@ -32,7 +32,9 @@ export class PicoDomBuilder
32
32
  el = document.createElement(el);
33
33
  }
34
34
 
35
- el = Obj.assign(el, options);
35
+ if ( el != null ) {
36
+ el = Obj.assign(el, options);
37
+ }
36
38
 
37
39
  let ini = new Dom(el);
38
40
 
@@ -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
 
@@ -153,7 +153,9 @@ export class PicoLocale
153
153
  type: 'decimal'
154
154
  });
155
155
 
156
- return Locale.$number = [group, decimal];
156
+ return Locale.$number = [
157
+ group.value || ',', decimal.value || '.'
158
+ ];
157
159
  }
158
160
 
159
161
  /**
@@ -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
  *