@zajno/common 1.4.18 → 1.5.1

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.
Files changed (77) hide show
  1. package/coverage/clover.xml +75 -73
  2. package/coverage/coverage-final.json +3 -3
  3. package/coverage/lcov-report/index.html +22 -22
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
  9. package/coverage/lcov-report/src/cache.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.html +1 -1
  15. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  21. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  22. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  23. package/coverage/lcov-report/src/event.ts.html +1 -1
  24. package/coverage/lcov-report/src/fields/index.html +1 -1
  25. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  26. package/coverage/lcov-report/src/functions.ts.html +1 -1
  27. package/coverage/lcov-report/src/index.html +15 -15
  28. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/index.html +1 -1
  32. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  33. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  34. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  36. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  37. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  38. package/coverage/lcov-report/src/math/index.html +1 -1
  39. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  40. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  41. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  42. package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
  43. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  44. package/coverage/lcov-report/src/types.ts.html +13 -13
  45. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/helpers.ts.html +7 -4
  48. package/coverage/lcov-report/src/validation/index.html +4 -4
  49. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  51. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  52. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  53. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
  54. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  58. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +54 -21
  59. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
  60. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  61. package/coverage/lcov-report/src/viewModels/index.html +10 -10
  62. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  63. package/coverage/lcov.info +122 -118
  64. package/lib/services/storage/web/sessionStorage.js +1 -1
  65. package/lib/services/storage/web/sessionStorage.js.map +1 -1
  66. package/lib/validation/helpers.d.ts +1 -1
  67. package/lib/validation/helpers.d.ts.map +1 -1
  68. package/lib/validation/helpers.js +2 -2
  69. package/lib/validation/helpers.js.map +1 -1
  70. package/lib/viewModels/SelectModel.d.ts +5 -4
  71. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  72. package/lib/viewModels/SelectModel.js +14 -9
  73. package/lib/viewModels/SelectModel.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/services/storage/web/sessionStorage.ts +1 -1
  76. package/src/validation/helpers.ts +2 -1
  77. package/src/viewModels/SelectModel.ts +23 -12
@@ -1028,30 +1028,30 @@ FN:25,(anonymous_3)
1028
1028
  FNF:4
1029
1029
  FNH:4
1030
1030
  FNDA:10,(anonymous_0)
1031
- FNDA:86,getValue
1031
+ FNDA:111,getValue
1032
1032
  FNDA:10,(anonymous_2)
1033
1033
  FNDA:7,(anonymous_3)
1034
1034
  DA:9,10
1035
1035
  DA:10,10
1036
- DA:11,86
1037
- DA:12,9
1038
- DA:14,77
1036
+ DA:11,111
1037
+ DA:12,10
1038
+ DA:14,101
1039
1039
  DA:15,77
1040
- DA:17,0
1040
+ DA:17,24
1041
1041
  DA:24,10
1042
1042
  DA:25,10
1043
1043
  LF:9
1044
- LH:8
1045
- BRDA:11,0,0,9
1046
- BRDA:11,0,1,77
1044
+ LH:9
1045
+ BRDA:11,0,0,10
1046
+ BRDA:11,0,1,101
1047
1047
  BRDA:14,1,0,77
1048
- BRDA:14,1,1,0
1048
+ BRDA:14,1,1,24
1049
1049
  BRDA:9,2,0,10
1050
1050
  BRDA:9,2,1,10
1051
1051
  BRDA:24,3,0,10
1052
1052
  BRDA:24,3,1,10
1053
1053
  BRF:8
1054
- BRH:7
1054
+ BRH:8
1055
1055
  end_of_record
1056
1056
  TN:
1057
1057
  SF:src/__tests__/helpers/main.ts
@@ -2945,7 +2945,7 @@ FN:9,createShouldBeEqualTo
2945
2945
  FN:10,(anonymous_1)
2946
2946
  FN:13,throwNotOk
2947
2947
  FN:19,validateObject
2948
- FN:27,(anonymous_4)
2948
+ FN:28,(anonymous_4)
2949
2949
  FNF:5
2950
2950
  FNH:0
2951
2951
  FNDA:0,createShouldBeEqualTo
@@ -2961,19 +2961,19 @@ DA:13,5
2961
2961
  DA:14,0
2962
2962
  DA:15,0
2963
2963
  DA:19,5
2964
- DA:25,0
2965
- DA:27,0
2964
+ DA:26,0
2966
2965
  DA:28,0
2967
2966
  DA:29,0
2968
2967
  DA:30,0
2969
2968
  DA:31,0
2970
- DA:34,0
2969
+ DA:32,0
2971
2970
  DA:35,0
2972
2971
  DA:36,0
2973
- DA:39,0
2972
+ DA:37,0
2974
2973
  DA:40,0
2975
2974
  DA:41,0
2976
- DA:45,0
2975
+ DA:42,0
2976
+ DA:46,0
2977
2977
  LF:21
2978
2978
  LH:5
2979
2979
  BRDA:10,0,0,0
@@ -2982,15 +2982,17 @@ BRDA:13,1,0,0
2982
2982
  BRDA:14,2,0,0
2983
2983
  BRDA:14,2,1,0
2984
2984
  BRDA:22,3,0,0
2985
- BRDA:30,4,0,0
2986
- BRDA:30,4,1,0
2987
- BRDA:35,5,0,0
2988
- BRDA:35,5,1,0
2989
- BRDA:35,6,0,0
2990
- BRDA:35,6,1,0
2985
+ BRDA:31,4,0,0
2986
+ BRDA:31,4,1,0
2987
+ BRDA:36,5,0,0
2988
+ BRDA:36,5,1,0
2989
+ BRDA:36,6,0,0
2990
+ BRDA:36,6,1,0
2991
2991
  BRDA:40,7,0,0
2992
2992
  BRDA:40,7,1,0
2993
- BRF:14
2993
+ BRDA:41,8,0,0
2994
+ BRDA:41,8,1,0
2995
+ BRF:16
2994
2996
  BRH:0
2995
2997
  end_of_record
2996
2998
  TN:
@@ -3516,32 +3518,32 @@ BRH:3
3516
3518
  end_of_record
3517
3519
  TN:
3518
3520
  SF:src/viewModels/SelectModel.ts
3519
- FN:19,(anonymous_0)
3520
- FN:17,(anonymous_1)
3521
- FN:86,(anonymous_2)
3522
- FN:102,(anonymous_3)
3523
- FN:109,(anonymous_4)
3524
- FN:35,(anonymous_5)
3525
- FN:38,(anonymous_6)
3526
- FN:39,(anonymous_7)
3527
- FN:42,(anonymous_8)
3528
- FN:46,(anonymous_9)
3529
- FN:50,(anonymous_10)
3530
- FN:51,(anonymous_11)
3531
- FN:56,(anonymous_12)
3532
- FN:57,(anonymous_13)
3533
- FN:64,(anonymous_14)
3534
- FN:68,(anonymous_15)
3535
- FN:75,(anonymous_16)
3536
- FN:77,(anonymous_17)
3537
- FN:81,(anonymous_18)
3538
- FN:114,(anonymous_19)
3539
- FN:116,(anonymous_20)
3540
- FN:119,(anonymous_21)
3541
- FN:123,(anonymous_22)
3542
- FN:123,(anonymous_23)
3543
- FN:138,(anonymous_24)
3544
- FN:139,(anonymous_25)
3521
+ FN:23,(anonymous_0)
3522
+ FN:19,(anonymous_1)
3523
+ FN:97,(anonymous_2)
3524
+ FN:113,(anonymous_3)
3525
+ FN:120,(anonymous_4)
3526
+ FN:44,(anonymous_5)
3527
+ FN:47,(anonymous_6)
3528
+ FN:48,(anonymous_7)
3529
+ FN:51,(anonymous_8)
3530
+ FN:56,(anonymous_9)
3531
+ FN:60,(anonymous_10)
3532
+ FN:61,(anonymous_11)
3533
+ FN:66,(anonymous_12)
3534
+ FN:67,(anonymous_13)
3535
+ FN:74,(anonymous_14)
3536
+ FN:79,(anonymous_15)
3537
+ FN:86,(anonymous_16)
3538
+ FN:88,(anonymous_17)
3539
+ FN:92,(anonymous_18)
3540
+ FN:125,(anonymous_19)
3541
+ FN:127,(anonymous_20)
3542
+ FN:130,(anonymous_21)
3543
+ FN:134,(anonymous_22)
3544
+ FN:134,(anonymous_23)
3545
+ FN:149,(anonymous_24)
3546
+ FN:150,(anonymous_25)
3545
3547
  FNF:26
3546
3548
  FNH:22
3547
3549
  FNDA:6,(anonymous_0)
@@ -3553,7 +3555,7 @@ FNDA:0,(anonymous_5)
3553
3555
  FNDA:14,(anonymous_6)
3554
3556
  FNDA:34,(anonymous_7)
3555
3557
  FNDA:8,(anonymous_8)
3556
- FNDA:1,(anonymous_9)
3558
+ FNDA:25,(anonymous_9)
3557
3559
  FNDA:0,(anonymous_10)
3558
3560
  FNDA:6,(anonymous_11)
3559
3561
  FNDA:0,(anonymous_12)
@@ -3575,80 +3577,82 @@ DA:2,2
3575
3577
  DA:3,2
3576
3578
  DA:4,2
3577
3579
  DA:6,2
3578
- DA:9,2
3579
- DA:11,6
3580
- DA:13,6
3581
- DA:14,6
3582
- DA:15,6
3580
+ DA:8,2
3581
+ DA:10,2
3582
+ DA:12,6
3583
+ DA:16,6
3583
3584
  DA:17,6
3584
- DA:20,6
3585
+ DA:19,6
3585
3586
  DA:21,6
3586
- DA:24,6
3587
3587
  DA:25,6
3588
- DA:31,6
3588
+ DA:28,6
3589
+ DA:30,6
3589
3590
  DA:32,6
3590
- DA:35,0
3591
- DA:39,34
3592
- DA:43,8
3593
- DA:47,1
3594
- DA:50,0
3595
- DA:52,6
3596
- DA:53,6
3597
- DA:56,0
3598
- DA:58,4
3599
- DA:59,4
3600
- DA:60,3
3601
- DA:65,4
3602
- DA:69,5
3603
- DA:70,5
3604
- DA:71,4
3605
- DA:75,0
3606
- DA:78,11
3607
- DA:82,16
3608
- DA:86,6
3609
- DA:87,16
3610
- DA:88,0
3611
- DA:91,16
3591
+ DA:40,6
3592
+ DA:41,6
3593
+ DA:44,0
3594
+ DA:48,34
3595
+ DA:52,8
3596
+ DA:57,25
3597
+ DA:60,0
3598
+ DA:62,6
3599
+ DA:63,6
3600
+ DA:66,0
3601
+ DA:68,4
3602
+ DA:69,4
3603
+ DA:70,3
3604
+ DA:75,4
3605
+ DA:76,4
3606
+ DA:80,5
3607
+ DA:81,5
3608
+ DA:82,4
3609
+ DA:86,0
3610
+ DA:89,11
3612
3611
  DA:93,16
3613
- DA:94,0
3612
+ DA:97,6
3614
3613
  DA:98,16
3615
- DA:99,16
3616
- DA:101,16
3617
- DA:102,45
3618
- DA:105,16
3619
- DA:109,6
3620
- DA:110,1
3621
- DA:111,1
3622
- DA:115,1
3623
- DA:117,3
3624
- DA:119,9
3625
- DA:123,18
3626
- DA:124,15
3627
- DA:125,7
3628
- DA:129,3
3629
- DA:132,1
3630
- DA:137,2
3631
- DA:139,3
3632
- LF:59
3633
- LH:53
3634
- BRDA:22,0,0,3
3635
- BRDA:87,1,0,0
3636
- BRDA:87,1,1,16
3637
- BRDA:93,2,0,0
3638
- BRDA:93,2,1,16
3639
- BRDA:101,3,0,15
3640
- BRDA:101,3,1,1
3641
- BRDA:53,4,0,5
3642
- BRDA:53,4,1,1
3643
- BRDA:59,5,0,3
3644
- BRDA:59,5,1,1
3645
- BRDA:65,6,0,4
3646
- BRDA:65,6,1,0
3647
- BRDA:70,7,0,4
3648
- BRDA:70,7,1,1
3649
- BRDA:124,8,0,7
3650
- BRDA:124,8,1,8
3651
- BRDA:138,9,0,2
3614
+ DA:99,0
3615
+ DA:102,16
3616
+ DA:104,16
3617
+ DA:105,0
3618
+ DA:109,16
3619
+ DA:110,16
3620
+ DA:112,16
3621
+ DA:113,45
3622
+ DA:116,16
3623
+ DA:120,6
3624
+ DA:121,1
3625
+ DA:122,1
3626
+ DA:126,1
3627
+ DA:128,3
3628
+ DA:130,9
3629
+ DA:134,18
3630
+ DA:135,15
3631
+ DA:136,7
3632
+ DA:140,3
3633
+ DA:143,1
3634
+ DA:148,2
3635
+ DA:150,3
3636
+ LF:61
3637
+ LH:55
3638
+ BRDA:26,0,0,3
3639
+ BRDA:98,1,0,0
3640
+ BRDA:98,1,1,16
3641
+ BRDA:104,2,0,0
3642
+ BRDA:104,2,1,16
3643
+ BRDA:112,3,0,15
3644
+ BRDA:112,3,1,1
3645
+ BRDA:63,4,0,5
3646
+ BRDA:63,4,1,1
3647
+ BRDA:69,5,0,3
3648
+ BRDA:69,5,1,1
3649
+ BRDA:76,6,0,4
3650
+ BRDA:76,6,1,0
3651
+ BRDA:81,7,0,4
3652
+ BRDA:81,7,1,1
3653
+ BRDA:135,8,0,7
3654
+ BRDA:135,8,1,8
3655
+ BRDA:149,9,0,2
3652
3656
  BRF:18
3653
3657
  BRH:15
3654
3658
  end_of_record
@@ -8,7 +8,7 @@ if (typeof window === undefined) {
8
8
  throw new Error("Can't use web/Storage module outside browser environment!");
9
9
  }
10
10
  class WebSessionStorage extends webStorage_1.WebStorage {
11
- get storage() { return window.localStorage; }
11
+ get storage() { return window.sessionStorage; }
12
12
  }
13
13
  exports.SessionStorage = new WebSessionStorage();
14
14
  exports.SessionStorageAsync = new __1.StorageAsyncWrapper(exports.SessionStorage);
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStorage.js","sourceRoot":"","sources":["../../../../src/services/storage/web/sessionStorage.ts"],"names":[],"mappings":";;;AAAA,0BAA0E;AAE1E,6CAA0C;AAE1C,mBAAmB;AAEnB,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;IAC7B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;CAChF;AAED,MAAM,iBAAkB,SAAQ,uBAAU;IACtC,IAAc,OAAO,KAAK,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1D;AAEY,QAAA,cAAc,GAAiB,IAAI,iBAAiB,EAAE,CAAC;AAEvD,QAAA,mBAAmB,GAAa,IAAI,uBAAmB,CAAC,sBAAc,CAAC,CAAC;AAErF,MAAa,iBAAkB,SAAQ,cAAU;IAC7C,YAAqB,GAAW;QAC5B,KAAK,CAAC,sBAAc,EAAE,GAAG,CAAC,CAAC;QADV,QAAG,GAAH,GAAG,CAAQ;IAEhC,CAAC;CACJ;AAJD,8CAIC;AAED,MAAa,0BAA8B,SAAQ,uBAAsB;IACrE,YACI,GAAW,EACX,KAAwB,EACxB,MAAyB;QAEzB,KAAK,CAAC,sBAAc,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;CACJ;AARD,gEAQC;AAED,kBAAe,sBAAc,CAAC"}
1
+ {"version":3,"file":"sessionStorage.js","sourceRoot":"","sources":["../../../../src/services/storage/web/sessionStorage.ts"],"names":[],"mappings":";;;AAAA,0BAA0E;AAE1E,6CAA0C;AAE1C,mBAAmB;AAEnB,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;IAC7B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;CAChF;AAED,MAAM,iBAAkB,SAAQ,uBAAU;IACtC,IAAc,OAAO,KAAK,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;CAC5D;AAEY,QAAA,cAAc,GAAiB,IAAI,iBAAiB,EAAE,CAAC;AAEvD,QAAA,mBAAmB,GAAa,IAAI,uBAAmB,CAAC,sBAAc,CAAC,CAAC;AAErF,MAAa,iBAAkB,SAAQ,cAAU;IAC7C,YAAqB,GAAW;QAC5B,KAAK,CAAC,sBAAc,EAAE,GAAG,CAAC,CAAC;QADV,QAAG,GAAH,GAAG,CAAQ;IAEhC,CAAC;CACJ;AAJD,8CAIC;AAED,MAAa,0BAA8B,SAAQ,uBAAsB;IACrE,YACI,GAAW,EACX,KAAwB,EACxB,MAAyB;QAEzB,KAAK,CAAC,sBAAc,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;CACJ;AARD,gEAQC;AAED,kBAAe,sBAAc,CAAC"}
@@ -2,5 +2,5 @@ import { ValidationErrors } from './ValidationErrors';
2
2
  import { ValidationConfig, ValidationResults, ValidatorFunction } from './types';
3
3
  export declare function createShouldBeEqualTo<T = string>(getter: () => T): ValidatorFunction<T>;
4
4
  export declare function throwNotOk(result: ValidationErrors, message?: string): void;
5
- export declare function validateObject<T, TErrors = ValidationErrors>(obj: T, validators: ValidationConfig<T, TErrors>, onlyTruethy?: boolean): ValidationResults<T, TErrors>;
5
+ export declare function validateObject<T, TErrors = ValidationErrors>(obj: T, validators: ValidationConfig<T, TErrors>, onlyTruethy?: boolean, context?: T): ValidationResults<T, TErrors>;
6
6
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,gBAAgB,EAEhB,iBAAiB,EACjB,iBAAiB,EACpB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAEvF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,SAAqB,QAIhF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,EACxD,GAAG,EAAE,CAAC,EACN,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,EACxC,WAAW,UAAQ,GACpB,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAuB/B"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,gBAAgB,EAEhB,iBAAiB,EACjB,iBAAiB,EACpB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAEvF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,SAAqB,QAIhF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,EACxD,GAAG,EAAE,CAAC,EACN,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,EACxC,WAAW,UAAQ,EACnB,OAAO,CAAC,EAAE,CAAC,GACZ,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAuB/B"}
@@ -13,7 +13,7 @@ function throwNotOk(result, message = 'Validation error') {
13
13
  }
14
14
  }
15
15
  exports.throwNotOk = throwNotOk;
16
- function validateObject(obj, validators, onlyTruethy = false) {
16
+ function validateObject(obj, validators, onlyTruethy = false, context) {
17
17
  const res = {};
18
18
  Object.keys(obj).forEach(k => {
19
19
  const kk = k;
@@ -25,7 +25,7 @@ function validateObject(obj, validators, onlyTruethy = false) {
25
25
  if (onlyTruethy && !v) {
26
26
  return;
27
27
  }
28
- const err = validator(v, obj);
28
+ const err = validator(v, context || obj);
29
29
  if (err) {
30
30
  res[kk] = err;
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,mCAKiB;AAEjB,SAAgB,qBAAqB,CAAa,MAAe;IAC7D,OAAO,CAAC,GAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,eAAe,CAAC;AACnG,CAAC;AAFD,sDAEC;AAED,SAAgB,UAAU,CAAC,MAAwB,EAAE,OAAO,GAAG,kBAAkB;IAC7E,IAAI,MAAM,EAAE;QACR,MAAM,IAAI,uBAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAC9C;AACL,CAAC;AAJD,gCAIC;AAED,SAAgB,cAAc,CAC1B,GAAM,EACN,UAAwC,EACxC,WAAW,GAAG,KAAK;IAGnB,MAAM,GAAG,GAAkC,EAAG,CAAC;IAE/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACzB,MAAM,EAAE,GAAG,CAAY,CAAC;QACxB,MAAM,SAAS,GAAgD,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO;SACV;QAED,MAAM,CAAC,GAAG,GAAG,CAAC,CAAY,CAAC,CAAC;QAC5B,IAAI,WAAW,IAAI,CAAC,CAAC,EAAE;YACnB,OAAO;SACV;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;SACjB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACf,CAAC;AA3BD,wCA2BC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,mCAKiB;AAEjB,SAAgB,qBAAqB,CAAa,MAAe;IAC7D,OAAO,CAAC,GAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,eAAe,CAAC;AACnG,CAAC;AAFD,sDAEC;AAED,SAAgB,UAAU,CAAC,MAAwB,EAAE,OAAO,GAAG,kBAAkB;IAC7E,IAAI,MAAM,EAAE;QACR,MAAM,IAAI,uBAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAC9C;AACL,CAAC;AAJD,gCAIC;AAED,SAAgB,cAAc,CAC1B,GAAM,EACN,UAAwC,EACxC,WAAW,GAAG,KAAK,EACnB,OAAW;IAGX,MAAM,GAAG,GAAkC,EAAG,CAAC;IAE/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACzB,MAAM,EAAE,GAAG,CAAY,CAAC;QACxB,MAAM,SAAS,GAAgD,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO;SACV;QAED,MAAM,CAAC,GAAG,GAAG,CAAC,CAAY,CAAC,CAAC;QAC5B,IAAI,WAAW,IAAI,CAAC,CAAC,EAAE;YACnB,OAAO;SACV;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;QACzC,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;SACjB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACf,CAAC;AA5BD,wCA4BC"}
@@ -1,16 +1,17 @@
1
1
  import { FlagModel, ILabeledFlagModel } from './FlagModel';
2
2
  import { ValidatableModel } from './Validatable';
3
3
  import { IValueModel } from './types';
4
- import { IResetableModel } from 'viewModels';
4
+ import { IResetableModel } from './types';
5
+ import { Getter } from '../types';
5
6
  export declare class Select<T = any> extends ValidatableModel<T> implements IValueModel<string>, IResetableModel {
6
- private readonly _items;
7
7
  private readonly _accessor;
8
8
  private _index;
9
- readonly opened: FlagModel;
9
+ private readonly _items;
10
10
  private _indexLocked;
11
11
  private _initialIndex;
12
12
  private readonly _flags;
13
- constructor(_items: readonly T[], _accessor: (item: T) => string, initialIndex?: number);
13
+ readonly opened: FlagModel;
14
+ constructor(items: Getter<readonly T[]>, _accessor: (item: T) => string, initialIndex?: number);
14
15
  protected get valueToValidate(): T;
15
16
  get values(): readonly string[];
16
17
  get flags(): readonly ILabeledFlagModel[];
@@ -1 +1 @@
1
- {"version":3,"file":"SelectModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/SelectModel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,qBAAa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe;IAWhG,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAV9B,OAAO,CAAC,MAAM,CAAqB;IAEnC,SAAgB,MAAM,YAAmB;IACzC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG1C,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC/C,YAAY,GAAE,MAAU;IAa5B,SAAS,KAAK,eAAe,MAAgC;IAG7D,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED,IAAI,KAAK,iCAER;IAED,IAAI,KAAK,iBAER;IAED,IAAI,KAAK,IAMI,MAAM,CANuB;IAC1C,IAAI,aAAa,IAMQ,MAAM,CAH9B;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAA6B;IAChD,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAK9B;IAED,IAAI,YAAY,IAAI,CAAC,CAEpB;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,EAKvB;IAED,IAAI,SAAS,YAAiD;IAE9D,IAAI,KAAK,IAIM,MAAM,CAFpB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAGM,QAAQ,QAAS,MAAM,UAqB5B;IAEF,KAAK,aAGH;IAEF,OAAO,CAAC,WAAW;CAoBtB;AAGD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;gBACtD,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,GAAE,MAAU;CAG5D"}
1
+ {"version":3,"file":"SelectModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/SelectModel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe;IAehG,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb9B,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D,SAAgB,MAAM,YAAmB;gBAGrC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC/C,YAAY,GAAE,MAAU;IAkB5B,SAAS,KAAK,eAAe,MAAgC;IAG7D,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED,IAAI,KAAK,iCAER;IAGD,IAAI,KAAK,IAAI,SAAS,CAAC,EAAE,CAExB;IAED,IAAI,KAAK,IAMI,MAAM,CANuB;IAC1C,IAAI,aAAa,IAMQ,MAAM,CAH9B;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAA6B;IAChD,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAK9B;IAED,IAAI,YAAY,IAAI,CAAC,CAGpB;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,EAKvB;IAED,IAAI,SAAS,YAAiD;IAE9D,IAAI,KAAK,IAIM,MAAM,CAFpB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAGM,QAAQ,QAAS,MAAM,UAqB5B;IAEK,KAAK,aAGV;IAEF,OAAO,CAAC,WAAW;CAoBtB;AAGD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;gBACtD,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,GAAE,MAAU;CAG5D"}
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SelectString = exports.Select = void 0;
4
- const lazy_light_1 = require("../lazy.light");
5
4
  const mobx_1 = require("mobx");
5
+ const lazy_light_1 = require("../lazy.light");
6
6
  const FlagModel_1 = require("./FlagModel");
7
7
  const Validatable_1 = require("./Validatable");
8
8
  const wrappers_1 = require("./wrappers");
9
+ const types_1 = require("../types");
9
10
  class Select extends Validatable_1.ValidatableModel {
10
- constructor(_items, _accessor, initialIndex = 0) {
11
+ constructor(items, _accessor, initialIndex = 0) {
11
12
  super();
12
- this._items = _items;
13
13
  this._accessor = _accessor;
14
14
  // @observable
15
15
  this._index = undefined;
16
- this.opened = new FlagModel_1.FlagModel();
17
16
  this._indexLocked = false;
18
17
  this._initialIndex = null;
19
18
  this._flags = lazy_light_1.createLazy(() => this.createFlags());
19
+ this.opened = new FlagModel_1.FlagModel();
20
20
  // @action
21
21
  this.setIndex = (val) => {
22
22
  if (this._indexLocked) {
@@ -41,9 +41,12 @@ class Select extends Validatable_1.ValidatableModel {
41
41
  super.reset();
42
42
  this.index = this._initialIndex;
43
43
  };
44
+ this._items = items;
44
45
  mobx_1.makeObservable(this, {
45
46
  '_index': mobx_1.observable,
47
+ '_items': mobx_1.observable.ref,
46
48
  values: mobx_1.computed,
49
+ items: mobx_1.computed,
47
50
  setIndex: mobx_1.action,
48
51
  });
49
52
  this._initialIndex = initialIndex;
@@ -52,13 +55,14 @@ class Select extends Validatable_1.ValidatableModel {
52
55
  get valueToValidate() { return this.selectedItem; }
53
56
  // @computed
54
57
  get values() {
55
- return this._items.map(i => this._accessor(i));
58
+ return this.items.map(i => this._accessor(i));
56
59
  }
57
60
  get flags() {
58
61
  return this._flags.value;
59
62
  }
63
+ // @computed
60
64
  get items() {
61
- return this._items;
65
+ return types_1.Getter.getValue(this._items);
62
66
  }
63
67
  get value() { return this.selectedValue; }
64
68
  get selectedValue() {
@@ -73,10 +77,11 @@ class Select extends Validatable_1.ValidatableModel {
73
77
  }
74
78
  }
75
79
  get selectedItem() {
76
- return this._items.length ? this._items[this._index] : null;
80
+ const items = this.items;
81
+ return items.length ? items[this._index] : null;
77
82
  }
78
83
  set selectedItem(item) {
79
- const index = this._items.indexOf(item);
84
+ const index = this.items.indexOf(item);
80
85
  if (index >= 0) {
81
86
  this.index = index;
82
87
  }
@@ -89,7 +94,7 @@ class Select extends Validatable_1.ValidatableModel {
89
94
  this.setIndex(val);
90
95
  }
91
96
  createFlags() {
92
- const flags = this._items
97
+ const flags = this.items
93
98
  .map((item, index) => {
94
99
  const flag = wrappers_1.withLabel(new FlagModel_1.FlagModel(index === this.index), () => this._accessor(item));
95
100
  // react on every flag is changed directly
@@ -1 +1 @@
1
- {"version":3,"file":"SelectModel.js","sourceRoot":"","sources":["../../src/viewModels/SelectModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectModel.js","sourceRoot":"","sources":["../../src/viewModels/SelectModel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "1.4.18",
3
+ "version": "1.5.1",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,7 +9,7 @@ if (typeof window === undefined) {
9
9
  }
10
10
 
11
11
  class WebSessionStorage extends WebStorage {
12
- protected get storage() { return window.localStorage; }
12
+ protected get storage() { return window.sessionStorage; }
13
13
  }
14
14
 
15
15
  export const SessionStorage: IStorageSync = new WebSessionStorage();
@@ -20,6 +20,7 @@ export function validateObject<T, TErrors = ValidationErrors>(
20
20
  obj: T,
21
21
  validators: ValidationConfig<T, TErrors>,
22
22
  onlyTruethy = false,
23
+ context?: T,
23
24
  ): ValidationResults<T, TErrors> {
24
25
 
25
26
  const res: ValidationResults<T, TErrors> = { };
@@ -36,7 +37,7 @@ export function validateObject<T, TErrors = ValidationErrors>(
36
37
  return;
37
38
  }
38
39
 
39
- const err = validator(v, obj);
40
+ const err = validator(v, context || obj);
40
41
  if (err) {
41
42
  res[kk] = err;
42
43
  }
@@ -1,30 +1,39 @@
1
- import { createLazy } from '../lazy.light';
2
1
  import { observable, computed, makeObservable, reaction, action } from 'mobx';
2
+ import { createLazy } from '../lazy.light';
3
3
  import { FlagModel, ILabeledFlagModel } from './FlagModel';
4
4
  import { ValidatableModel } from './Validatable';
5
5
  import { IValueModel } from './types';
6
6
  import { withLabel } from './wrappers';
7
- import { IResetableModel } from 'viewModels';
7
+ import { IResetableModel } from './types';
8
+ import { Getter } from '../types';
8
9
 
9
10
  export class Select<T = any> extends ValidatableModel<T> implements IValueModel<string>, IResetableModel {
10
11
  // @observable
11
12
  private _index: number = undefined;
12
13
 
13
- public readonly opened = new FlagModel();
14
+ private readonly _items: Getter<readonly T[]>;
15
+
14
16
  private _indexLocked = false;
15
17
  private _initialIndex: number = null;
16
18
 
17
19
  private readonly _flags = createLazy(() => this.createFlags());
18
20
 
21
+ public readonly opened = new FlagModel();
22
+
19
23
  constructor(
20
- private readonly _items: readonly T[],
24
+ items: Getter<readonly T[]>,
21
25
  private readonly _accessor: (item: T) => string,
22
26
  initialIndex: number = 0,
23
27
  ) {
24
28
  super();
25
- makeObservable<Select<T>, '_index'>(this, {
29
+
30
+ this._items = items;
31
+
32
+ makeObservable<Select<T>, '_index' | '_items'>(this, {
26
33
  '_index': observable,
34
+ '_items': observable.ref,
27
35
  values: computed,
36
+ items: computed,
28
37
  setIndex: action,
29
38
  });
30
39
 
@@ -36,15 +45,16 @@ export class Select<T = any> extends ValidatableModel<T> implements IValueModel<
36
45
 
37
46
  // @computed
38
47
  get values(): readonly string[] {
39
- return this._items.map(i => this._accessor(i));
48
+ return this.items.map(i => this._accessor(i));
40
49
  }
41
50
 
42
51
  get flags() {
43
52
  return this._flags.value;
44
53
  }
45
54
 
46
- get items() {
47
- return this._items;
55
+ // @computed
56
+ get items(): readonly T[] {
57
+ return Getter.getValue(this._items);
48
58
  }
49
59
 
50
60
  get value() { return this.selectedValue; }
@@ -62,11 +72,12 @@ export class Select<T = any> extends ValidatableModel<T> implements IValueModel<
62
72
  }
63
73
 
64
74
  get selectedItem(): T {
65
- return this._items.length ? this._items[this._index] : null;
75
+ const items = this.items;
76
+ return items.length ? items[this._index] : null;
66
77
  }
67
78
 
68
79
  set selectedItem(item: T) {
69
- const index = this._items.indexOf(item);
80
+ const index = this.items.indexOf(item);
70
81
  if (index >= 0) {
71
82
  this.index = index;
72
83
  }
@@ -106,13 +117,13 @@ export class Select<T = any> extends ValidatableModel<T> implements IValueModel<
106
117
  }
107
118
  };
108
119
 
109
- reset = () => {
120
+ public reset = () => {
110
121
  super.reset();
111
122
  this.index = this._initialIndex;
112
123
  };
113
124
 
114
125
  private createFlags() {
115
- const flags: ReadonlyArray<ILabeledFlagModel> = this._items
126
+ const flags: ReadonlyArray<ILabeledFlagModel> = this.items
116
127
  .map((item, index) => {
117
128
  const flag: ILabeledFlagModel = withLabel(
118
129
  new FlagModel(index === this.index),