@zajno/common 1.4.19 → 1.5.0

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 (69) hide show
  1. package/coverage/clover.xml +63 -61
  2. package/coverage/coverage-final.json +2 -2
  3. package/coverage/lcov-report/index.html +20 -20
  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 +1 -1
  48. package/coverage/lcov-report/src/validation/index.html +1 -1
  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 +107 -105
  64. package/lib/viewModels/SelectModel.d.ts +5 -4
  65. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  66. package/lib/viewModels/SelectModel.js +14 -9
  67. package/lib/viewModels/SelectModel.js.map +1 -1
  68. package/package.json +1 -1
  69. 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
@@ -3516,32 +3516,32 @@ BRH:3
3516
3516
  end_of_record
3517
3517
  TN:
3518
3518
  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)
3519
+ FN:23,(anonymous_0)
3520
+ FN:19,(anonymous_1)
3521
+ FN:97,(anonymous_2)
3522
+ FN:113,(anonymous_3)
3523
+ FN:120,(anonymous_4)
3524
+ FN:44,(anonymous_5)
3525
+ FN:47,(anonymous_6)
3526
+ FN:48,(anonymous_7)
3527
+ FN:51,(anonymous_8)
3528
+ FN:56,(anonymous_9)
3529
+ FN:60,(anonymous_10)
3530
+ FN:61,(anonymous_11)
3531
+ FN:66,(anonymous_12)
3532
+ FN:67,(anonymous_13)
3533
+ FN:74,(anonymous_14)
3534
+ FN:79,(anonymous_15)
3535
+ FN:86,(anonymous_16)
3536
+ FN:88,(anonymous_17)
3537
+ FN:92,(anonymous_18)
3538
+ FN:125,(anonymous_19)
3539
+ FN:127,(anonymous_20)
3540
+ FN:130,(anonymous_21)
3541
+ FN:134,(anonymous_22)
3542
+ FN:134,(anonymous_23)
3543
+ FN:149,(anonymous_24)
3544
+ FN:150,(anonymous_25)
3545
3545
  FNF:26
3546
3546
  FNH:22
3547
3547
  FNDA:6,(anonymous_0)
@@ -3553,7 +3553,7 @@ FNDA:0,(anonymous_5)
3553
3553
  FNDA:14,(anonymous_6)
3554
3554
  FNDA:34,(anonymous_7)
3555
3555
  FNDA:8,(anonymous_8)
3556
- FNDA:1,(anonymous_9)
3556
+ FNDA:25,(anonymous_9)
3557
3557
  FNDA:0,(anonymous_10)
3558
3558
  FNDA:6,(anonymous_11)
3559
3559
  FNDA:0,(anonymous_12)
@@ -3575,80 +3575,82 @@ DA:2,2
3575
3575
  DA:3,2
3576
3576
  DA:4,2
3577
3577
  DA:6,2
3578
- DA:9,2
3579
- DA:11,6
3580
- DA:13,6
3581
- DA:14,6
3582
- DA:15,6
3578
+ DA:8,2
3579
+ DA:10,2
3580
+ DA:12,6
3581
+ DA:16,6
3583
3582
  DA:17,6
3584
- DA:20,6
3583
+ DA:19,6
3585
3584
  DA:21,6
3586
- DA:24,6
3587
3585
  DA:25,6
3588
- DA:31,6
3586
+ DA:28,6
3587
+ DA:30,6
3589
3588
  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
3589
+ DA:40,6
3590
+ DA:41,6
3591
+ DA:44,0
3592
+ DA:48,34
3593
+ DA:52,8
3594
+ DA:57,25
3595
+ DA:60,0
3596
+ DA:62,6
3597
+ DA:63,6
3598
+ DA:66,0
3599
+ DA:68,4
3600
+ DA:69,4
3601
+ DA:70,3
3602
+ DA:75,4
3603
+ DA:76,4
3604
+ DA:80,5
3605
+ DA:81,5
3606
+ DA:82,4
3607
+ DA:86,0
3608
+ DA:89,11
3612
3609
  DA:93,16
3613
- DA:94,0
3610
+ DA:97,6
3614
3611
  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
3612
+ DA:99,0
3613
+ DA:102,16
3614
+ DA:104,16
3615
+ DA:105,0
3616
+ DA:109,16
3617
+ DA:110,16
3618
+ DA:112,16
3619
+ DA:113,45
3620
+ DA:116,16
3621
+ DA:120,6
3622
+ DA:121,1
3623
+ DA:122,1
3624
+ DA:126,1
3625
+ DA:128,3
3626
+ DA:130,9
3627
+ DA:134,18
3628
+ DA:135,15
3629
+ DA:136,7
3630
+ DA:140,3
3631
+ DA:143,1
3632
+ DA:148,2
3633
+ DA:150,3
3634
+ LF:61
3635
+ LH:55
3636
+ BRDA:26,0,0,3
3637
+ BRDA:98,1,0,0
3638
+ BRDA:98,1,1,16
3639
+ BRDA:104,2,0,0
3640
+ BRDA:104,2,1,16
3641
+ BRDA:112,3,0,15
3642
+ BRDA:112,3,1,1
3643
+ BRDA:63,4,0,5
3644
+ BRDA:63,4,1,1
3645
+ BRDA:69,5,0,3
3646
+ BRDA:69,5,1,1
3647
+ BRDA:76,6,0,4
3648
+ BRDA:76,6,1,0
3649
+ BRDA:81,7,0,4
3650
+ BRDA:81,7,1,1
3651
+ BRDA:135,8,0,7
3652
+ BRDA:135,8,1,8
3653
+ BRDA:149,9,0,2
3652
3654
  BRF:18
3653
3655
  BRH:15
3654
3656
  end_of_record
@@ -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.19",
3
+ "version": "1.5.0",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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),