@zajno/common 1.4.17 → 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 (87) hide show
  1. package/coverage/clover.xml +85 -81
  2. package/coverage/coverage-final.json +4 -4
  3. package/coverage/lcov-report/index.html +28 -28
  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 +32 -38
  48. package/coverage/lcov-report/src/validation/index.html +14 -14
  49. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/types.ts.html +13 -4
  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 +146 -137
  64. package/lib/logger/file.d.ts +9 -8
  65. package/lib/logger/file.d.ts.map +1 -1
  66. package/lib/logger/file.js +44 -22
  67. package/lib/logger/file.js.map +1 -1
  68. package/lib/services/storage/web/sessionStorage.js +1 -1
  69. package/lib/services/storage/web/sessionStorage.js.map +1 -1
  70. package/lib/validation/helpers.d.ts +2 -6
  71. package/lib/validation/helpers.d.ts.map +1 -1
  72. package/lib/validation/helpers.js +6 -11
  73. package/lib/validation/helpers.js.map +1 -1
  74. package/lib/validation/types.d.ts +8 -2
  75. package/lib/validation/types.d.ts.map +1 -1
  76. package/lib/validation/types.js.map +1 -1
  77. package/lib/validation/wrappers.d.ts +3 -3
  78. package/lib/viewModels/SelectModel.d.ts +5 -4
  79. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  80. package/lib/viewModels/SelectModel.js +14 -9
  81. package/lib/viewModels/SelectModel.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/logger/file.ts +46 -26
  84. package/src/services/storage/web/sessionStorage.ts +1 -1
  85. package/src/validation/helpers.ts +16 -18
  86. package/src/validation/types.ts +5 -2
  87. package/src/viewModels/SelectModel.ts +23 -12
@@ -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),