@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.
- package/coverage/clover.xml +75 -73
- package/coverage/coverage-final.json +3 -3
- package/coverage/lcov-report/index.html +22 -22
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/src/cache.ts.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/disposer.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +15 -15
- package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +1 -1
- package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +13 -13
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +7 -4
- package/coverage/lcov-report/src/validation/index.html +4 -4
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +54 -21
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +10 -10
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +122 -118
- package/lib/services/storage/web/sessionStorage.js +1 -1
- package/lib/services/storage/web/sessionStorage.js.map +1 -1
- package/lib/validation/helpers.d.ts +1 -1
- package/lib/validation/helpers.d.ts.map +1 -1
- package/lib/validation/helpers.js +2 -2
- package/lib/validation/helpers.js.map +1 -1
- package/lib/viewModels/SelectModel.d.ts +5 -4
- package/lib/viewModels/SelectModel.d.ts.map +1 -1
- package/lib/viewModels/SelectModel.js +14 -9
- package/lib/viewModels/SelectModel.js.map +1 -1
- package/package.json +1 -1
- package/src/services/storage/web/sessionStorage.ts +1 -1
- package/src/validation/helpers.ts +2 -1
- package/src/viewModels/SelectModel.ts +23 -12
package/coverage/lcov.info
CHANGED
|
@@ -1028,30 +1028,30 @@ FN:25,(anonymous_3)
|
|
|
1028
1028
|
FNF:4
|
|
1029
1029
|
FNH:4
|
|
1030
1030
|
FNDA:10,(anonymous_0)
|
|
1031
|
-
FNDA:
|
|
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,
|
|
1037
|
-
DA:12,
|
|
1038
|
-
DA:14,
|
|
1036
|
+
DA:11,111
|
|
1037
|
+
DA:12,10
|
|
1038
|
+
DA:14,101
|
|
1039
1039
|
DA:15,77
|
|
1040
|
-
DA:17,
|
|
1040
|
+
DA:17,24
|
|
1041
1041
|
DA:24,10
|
|
1042
1042
|
DA:25,10
|
|
1043
1043
|
LF:9
|
|
1044
|
-
LH:
|
|
1045
|
-
BRDA:11,0,0,
|
|
1046
|
-
BRDA:11,0,1,
|
|
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,
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
2969
|
+
DA:32,0
|
|
2971
2970
|
DA:35,0
|
|
2972
2971
|
DA:36,0
|
|
2973
|
-
DA:
|
|
2972
|
+
DA:37,0
|
|
2974
2973
|
DA:40,0
|
|
2975
2974
|
DA:41,0
|
|
2976
|
-
DA:
|
|
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:
|
|
2986
|
-
BRDA:
|
|
2987
|
-
BRDA:
|
|
2988
|
-
BRDA:
|
|
2989
|
-
BRDA:
|
|
2990
|
-
BRDA:
|
|
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
|
-
|
|
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:
|
|
3520
|
-
FN:
|
|
3521
|
-
FN:
|
|
3522
|
-
FN:
|
|
3523
|
-
FN:
|
|
3524
|
-
FN:
|
|
3525
|
-
FN:
|
|
3526
|
-
FN:
|
|
3527
|
-
FN:
|
|
3528
|
-
FN:
|
|
3529
|
-
FN:
|
|
3530
|
-
FN:
|
|
3531
|
-
FN:
|
|
3532
|
-
FN:
|
|
3533
|
-
FN:
|
|
3534
|
-
FN:
|
|
3535
|
-
FN:
|
|
3536
|
-
FN:
|
|
3537
|
-
FN:
|
|
3538
|
-
FN:
|
|
3539
|
-
FN:
|
|
3540
|
-
FN:
|
|
3541
|
-
FN:
|
|
3542
|
-
FN:
|
|
3543
|
-
FN:
|
|
3544
|
-
FN:
|
|
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:
|
|
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:
|
|
3579
|
-
DA:
|
|
3580
|
-
DA:
|
|
3581
|
-
DA:
|
|
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:
|
|
3585
|
+
DA:19,6
|
|
3585
3586
|
DA:21,6
|
|
3586
|
-
DA:24,6
|
|
3587
3587
|
DA:25,6
|
|
3588
|
-
DA:
|
|
3588
|
+
DA:28,6
|
|
3589
|
+
DA:30,6
|
|
3589
3590
|
DA:32,6
|
|
3590
|
-
DA:
|
|
3591
|
-
DA:
|
|
3592
|
-
DA:
|
|
3593
|
-
DA:
|
|
3594
|
-
DA:
|
|
3595
|
-
DA:
|
|
3596
|
-
DA:
|
|
3597
|
-
DA:
|
|
3598
|
-
DA:
|
|
3599
|
-
DA:
|
|
3600
|
-
DA:
|
|
3601
|
-
DA:
|
|
3602
|
-
DA:
|
|
3603
|
-
DA:
|
|
3604
|
-
DA:
|
|
3605
|
-
DA:
|
|
3606
|
-
DA:
|
|
3607
|
-
DA:82,
|
|
3608
|
-
DA:86,
|
|
3609
|
-
DA:
|
|
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:
|
|
3612
|
+
DA:97,6
|
|
3614
3613
|
DA:98,16
|
|
3615
|
-
DA:99,
|
|
3616
|
-
DA:
|
|
3617
|
-
DA:
|
|
3618
|
-
DA:105,
|
|
3619
|
-
DA:109,
|
|
3620
|
-
DA:110,
|
|
3621
|
-
DA:
|
|
3622
|
-
DA:
|
|
3623
|
-
DA:
|
|
3624
|
-
DA:
|
|
3625
|
-
DA:
|
|
3626
|
-
DA:
|
|
3627
|
-
DA:
|
|
3628
|
-
DA:
|
|
3629
|
-
DA:
|
|
3630
|
-
DA:
|
|
3631
|
-
DA:
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
BRDA:
|
|
3640
|
-
BRDA:
|
|
3641
|
-
BRDA:
|
|
3642
|
-
BRDA:
|
|
3643
|
-
BRDA:
|
|
3644
|
-
BRDA:
|
|
3645
|
-
BRDA:
|
|
3646
|
-
BRDA:
|
|
3647
|
-
BRDA:
|
|
3648
|
-
BRDA:
|
|
3649
|
-
BRDA:
|
|
3650
|
-
BRDA:
|
|
3651
|
-
BRDA:
|
|
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.
|
|
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,
|
|
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,
|
|
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;
|
|
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 '
|
|
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
|
|
9
|
+
private readonly _items;
|
|
10
10
|
private _indexLocked;
|
|
11
11
|
private _initialIndex;
|
|
12
12
|
private readonly _flags;
|
|
13
|
-
|
|
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,
|
|
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(
|
|
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.
|
|
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
|
-
|
|
80
|
+
const items = this.items;
|
|
81
|
+
return items.length ? items[this._index] : null;
|
|
77
82
|
}
|
|
78
83
|
set selectedItem(item) {
|
|
79
|
-
const index = this.
|
|
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.
|
|
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":";;;AAAA
|
|
1
|
+
{"version":3,"file":"SelectModel.js","sourceRoot":"","sources":["../../src/viewModels/SelectModel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ if (typeof window === undefined) {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
class WebSessionStorage extends WebStorage {
|
|
12
|
-
protected get storage() { return window.
|
|
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 '
|
|
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
|
-
|
|
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
|
-
|
|
24
|
+
items: Getter<readonly T[]>,
|
|
21
25
|
private readonly _accessor: (item: T) => string,
|
|
22
26
|
initialIndex: number = 0,
|
|
23
27
|
) {
|
|
24
28
|
super();
|
|
25
|
-
|
|
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.
|
|
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
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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),
|