@zajno/common 1.3.1 → 1.3.2

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 (152) hide show
  1. package/coverage/clover.xml +429 -370
  2. package/coverage/coverage-final.json +39 -38
  3. package/coverage/lcov-report/NumberModel.ts.html +188 -0
  4. package/coverage/lcov-report/arrays.ts.html +602 -0
  5. package/coverage/lcov-report/calc.ts.html +278 -0
  6. package/coverage/lcov-report/enumHelper.ts.html +449 -0
  7. package/coverage/lcov-report/index.html +43 -43
  8. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  9. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +2 -2
  10. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  11. package/coverage/lcov-report/src/async/index.html +1 -1
  12. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/index.html +1 -1
  17. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  23. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  24. package/coverage/lcov-report/src/event.ts.html +3 -3
  25. package/coverage/lcov-report/src/index.html +21 -21
  26. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/batch.ts.html +107 -0
  28. package/coverage/lcov-report/src/logger/console.ts.html +10 -25
  29. package/coverage/lcov-report/src/logger/index.html +54 -39
  30. package/coverage/lcov-report/src/logger/index.ts.html +88 -61
  31. package/coverage/lcov-report/src/logger/named.ts.html +31 -31
  32. package/coverage/lcov-report/src/logger/proxy.ts.html +13 -13
  33. package/coverage/lcov-report/src/math/arrays.ts.html +269 -32
  34. package/coverage/lcov-report/src/math/calc.ts.html +11 -11
  35. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  36. package/coverage/lcov-report/src/math/index.html +11 -11
  37. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  38. package/coverage/lcov-report/src/transitionObserver.ts.html +5 -5
  39. package/coverage/lcov-report/src/types.ts.html +33 -18
  40. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.html +1 -1
  44. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +16 -13
  49. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +17 -26
  50. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +34 -13
  51. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +19 -10
  52. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +19 -10
  53. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +17 -14
  54. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/index.html +42 -42
  56. package/coverage/lcov-report/src/viewModels/labeled.ts.html +128 -0
  57. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +3 -15
  58. package/coverage/lcov-report/transitionObserver.ts.html +41 -77
  59. package/coverage/lcov.info +785 -654
  60. package/lib/event.d.ts.map +1 -1
  61. package/lib/event.js +1 -1
  62. package/lib/event.js.map +1 -1
  63. package/lib/logger/batch.d.ts +3 -0
  64. package/lib/logger/batch.d.ts.map +1 -0
  65. package/lib/logger/batch.js +12 -0
  66. package/lib/logger/batch.js.map +1 -0
  67. package/lib/logger/console.d.ts +0 -1
  68. package/lib/logger/console.d.ts.map +1 -1
  69. package/lib/logger/console.js +0 -3
  70. package/lib/logger/console.js.map +1 -1
  71. package/lib/logger/file.d.ts +15 -0
  72. package/lib/logger/file.d.ts.map +1 -0
  73. package/lib/logger/file.js +43 -0
  74. package/lib/logger/file.js.map +1 -0
  75. package/lib/logger/index.d.ts +7 -6
  76. package/lib/logger/index.d.ts.map +1 -1
  77. package/lib/logger/index.js +34 -21
  78. package/lib/logger/index.js.map +1 -1
  79. package/lib/logger/named.js +3 -3
  80. package/lib/logger/named.js.map +1 -1
  81. package/lib/logger/proxy.d.ts +1 -1
  82. package/lib/logger/proxy.d.ts.map +1 -1
  83. package/lib/logger/proxy.js +2 -2
  84. package/lib/logger/proxy.js.map +1 -1
  85. package/lib/math/arrays.d.ts +15 -0
  86. package/lib/math/arrays.d.ts.map +1 -1
  87. package/lib/math/arrays.js +69 -1
  88. package/lib/math/arrays.js.map +1 -1
  89. package/lib/transitionObserver.d.ts.map +1 -1
  90. package/lib/transitionObserver.js +2 -2
  91. package/lib/transitionObserver.js.map +1 -1
  92. package/lib/types.d.ts +4 -0
  93. package/lib/types.d.ts.map +1 -1
  94. package/lib/types.js +6 -2
  95. package/lib/types.js.map +1 -1
  96. package/lib/viewModels/FlagModel.d.ts +4 -4
  97. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  98. package/lib/viewModels/FlagModel.js +1 -0
  99. package/lib/viewModels/FlagModel.js.map +1 -1
  100. package/lib/viewModels/MultiSelectModel.d.ts +6 -2
  101. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  102. package/lib/viewModels/MultiSelectModel.js +10 -1
  103. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  104. package/lib/viewModels/NumberModel.d.ts +4 -2
  105. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  106. package/lib/viewModels/NumberModel.js +1 -0
  107. package/lib/viewModels/NumberModel.js.map +1 -1
  108. package/lib/viewModels/SelectModel.d.ts +4 -2
  109. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  110. package/lib/viewModels/SelectModel.js +1 -0
  111. package/lib/viewModels/SelectModel.js.map +1 -1
  112. package/lib/viewModels/TextModel.d.ts +4 -3
  113. package/lib/viewModels/TextModel.d.ts.map +1 -1
  114. package/lib/viewModels/TextModel.js +5 -5
  115. package/lib/viewModels/TextModel.js.map +1 -1
  116. package/lib/viewModels/ValuesCollector.d.ts +1 -3
  117. package/lib/viewModels/ValuesCollector.d.ts.map +1 -1
  118. package/lib/viewModels/ValuesCollector.js.map +1 -1
  119. package/lib/viewModels/index.d.ts +1 -0
  120. package/lib/viewModels/index.d.ts.map +1 -1
  121. package/lib/viewModels/index.js +1 -0
  122. package/lib/viewModels/index.js.map +1 -1
  123. package/lib/viewModels/types.d.ts +16 -0
  124. package/lib/viewModels/types.d.ts.map +1 -0
  125. package/lib/viewModels/types.js +3 -0
  126. package/lib/viewModels/types.js.map +1 -0
  127. package/lib/viewModels/wrappers.d.ts +1 -4
  128. package/lib/viewModels/wrappers.d.ts.map +1 -1
  129. package/lib/viewModels/wrappers.js.map +1 -1
  130. package/package.json +1 -1
  131. package/src/event.ts +2 -2
  132. package/src/logger/__tests__/{index.test.ts → logger.test.ts} +97 -41
  133. package/src/logger/batch.ts +9 -0
  134. package/src/logger/console.ts +0 -5
  135. package/src/logger/file.ts +46 -0
  136. package/src/logger/index.ts +37 -28
  137. package/src/logger/named.ts +3 -3
  138. package/src/logger/proxy.ts +2 -2
  139. package/src/math/__tests__/arrays.test.ts +53 -0
  140. package/src/math/arrays.ts +79 -0
  141. package/src/transitionObserver.ts +2 -2
  142. package/src/types.ts +6 -1
  143. package/src/viewModels/FlagModel.ts +5 -4
  144. package/src/viewModels/MultiSelectModel.ts +10 -3
  145. package/src/viewModels/NumberModel.ts +5 -2
  146. package/src/viewModels/SelectModel.ts +5 -2
  147. package/src/viewModels/TextModel.ts +5 -4
  148. package/src/viewModels/ValuesCollector.ts +1 -4
  149. package/src/viewModels/index.ts +1 -0
  150. package/src/viewModels/types.ts +19 -0
  151. package/src/viewModels/wrappers.ts +1 -5
  152. package/yarn-error.log +0 -3709
@@ -2,10 +2,12 @@ import { createLazy } from '../lazy.light';
2
2
  import { action, computed, makeObservable, observable, reaction } from 'mobx';
3
3
  import { FlagModel, ILabeledFlagModel } from './FlagModel';
4
4
  import { ValidatableModel } from './Validatable';
5
- import { IValueModel } from './ValuesCollector';
5
+ import { IValueModel } from './types';
6
6
  import { withLabel } from './wrappers';
7
+ import { ICountableModel, IResetableModel } from 'viewModels';
8
+ import { arraysCompareDistinct } from '../math';
7
9
 
8
- export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArray<T>> implements IValueModel<readonly string[]> {
10
+ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArray<T>> implements IValueModel<readonly string[]>, IResetableModel, ICountableModel {
9
11
 
10
12
  @observable
11
13
  private readonly _indexes = new Set<number>();
@@ -56,7 +58,12 @@ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArray<T>> imp
56
58
  isIndexSelected(index: number) { return this._indexes.has(index); }
57
59
  isValueSelected(value: string) { return this.values.includes(value); }
58
60
 
59
- get isEmpty() { return this._indexes.size === 0; }
61
+ get count() { return this._items.length; }
62
+ get selectedCount() { return this._indexes.size; }
63
+ get isEmpty() { return this.selectedCount === 0; }
64
+
65
+ @computed
66
+ get isDefault() { return arraysCompareDistinct(this.selectedIndexes, this._initial)?.diff === 0; }
60
67
 
61
68
  protected get valueToValidate() { return this.selectedItems; }
62
69
 
@@ -1,7 +1,8 @@
1
1
  import { action, makeObservable, observable } from 'mobx';
2
- import { IValueModel } from './ValuesCollector';
2
+ import { IResetableModel } from 'viewModels';
3
+ import { IValueModel } from './types';
3
4
 
4
- export interface INumberModel {
5
+ export interface INumberModel extends IResetableModel {
5
6
  value: number;
6
7
  }
7
8
 
@@ -21,6 +22,8 @@ export class NumberModel implements INumberModel, IValueModel<number> {
21
22
  get value() { return this._value; }
22
23
  set value(v: number) { this._value = v; }
23
24
 
25
+ get isDefault() { return this._value === this._initial; }
26
+
24
27
  @action
25
28
  reset = () => {
26
29
  this._value = this._initial;
@@ -2,10 +2,11 @@ import { createLazy } from '../lazy.light';
2
2
  import { observable, computed, makeObservable, reaction } from 'mobx';
3
3
  import { FlagModel, ILabeledFlagModel } from './FlagModel';
4
4
  import { ValidatableModel } from './Validatable';
5
- import { IValueModel } from './ValuesCollector';
5
+ import { IValueModel } from './types';
6
6
  import { withLabel } from './wrappers';
7
+ import { IResetableModel } from 'viewModels';
7
8
 
8
- export class Select<T = any> extends ValidatableModel<T> implements IValueModel<string> {
9
+ export class Select<T = any> extends ValidatableModel<T> implements IValueModel<string>, IResetableModel {
9
10
  @observable
10
11
  private _index: number = undefined;
11
12
 
@@ -67,6 +68,8 @@ export class Select<T = any> extends ValidatableModel<T> implements IValueModel<
67
68
  }
68
69
  }
69
70
 
71
+ get isDefault() { return this._index === this._initialIndex; }
72
+
70
73
  get index() {
71
74
  return this._index;
72
75
  }
@@ -1,8 +1,9 @@
1
1
  import { observable, computed, makeObservable, reaction } from 'mobx';
2
2
  import { Getter } from '../types';
3
+ import { IValueModel } from './types';
3
4
  import logger from '../logger';
4
5
  import { ValidatableModel, ValidationConfig } from './Validatable';
5
- import { IValueModel } from './ValuesCollector';
6
+ import { IResetableModel } from 'viewModels';
6
7
 
7
8
  export type TextInputConfig = {
8
9
  name?: Getter<string>;
@@ -39,7 +40,7 @@ export class Text {
39
40
  get value() { return this._value; }
40
41
  }
41
42
 
42
- export class TextInputVM extends ValidatableModel implements IValueModel<string> {
43
+ export class TextInputVM extends ValidatableModel implements IValueModel<string>, IResetableModel {
43
44
  @observable
44
45
  private _value = '';
45
46
 
@@ -103,10 +104,10 @@ export class TextInputVM extends ValidatableModel implements IValueModel<string>
103
104
  this.validate();
104
105
  }
105
106
 
106
- reset() {
107
+ reset = () => {
107
108
  this._value = '';
108
109
  this._focused = false;
109
110
  super.reset();
110
- }
111
+ };
111
112
 
112
113
  }
@@ -1,7 +1,4 @@
1
-
2
- export interface IValueModel<TValue> {
3
- value: TValue;
4
- }
1
+ import { IValueModel } from './types';
5
2
 
6
3
  export interface IValueCollector<TSource, TValue> {
7
4
  getValue(source: TSource): TValue;
@@ -1,3 +1,4 @@
1
+ export * from './types';
1
2
  export * from './Validatable';
2
3
  export * from './TextModel';
3
4
  export * from './FlagModel';
@@ -0,0 +1,19 @@
1
+
2
+ export interface IValueModel<TValue> {
3
+ value: TValue;
4
+ }
5
+
6
+ export interface ILabel<T> {
7
+ readonly label: T;
8
+ }
9
+
10
+ export interface IResetableModel {
11
+ readonly reset: () => void;
12
+ readonly isDefault?: boolean;
13
+ }
14
+
15
+ export interface ICountableModel {
16
+ readonly count: number;
17
+ readonly selectedCount?: number;
18
+ readonly isEmpty: boolean;
19
+ }
@@ -1,9 +1,5 @@
1
1
  import { Getter } from '../types';
2
- import { IValueModel } from './ValuesCollector';
3
-
4
- export interface ILabel<T> {
5
- readonly label: T;
6
- }
2
+ import { ILabel, IValueModel } from './types';
7
3
 
8
4
  export function withLabel<T, TModel extends IValueModel<T>, TLabel = string>(model: TModel, label: Getter<TLabel>) {
9
5
  const _label = label;