@zajno/common 1.3.13 → 1.4.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 (111) hide show
  1. package/coverage/clover.xml +66 -58
  2. package/coverage/coverage-final.json +6 -6
  3. package/coverage/lcov-report/index.html +26 -26
  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/dates/calc.ts.html +1 -1
  9. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/index.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  19. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/fields/index.html +1 -1
  22. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  23. package/coverage/lcov-report/src/functions.ts.html +1 -1
  24. package/coverage/lcov-report/src/index.html +15 -15
  25. package/coverage/lcov-report/src/lazy.light.ts.html +33 -21
  26. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/index.html +1 -1
  29. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  34. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/index.html +1 -1
  36. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  37. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  38. package/coverage/lcov-report/src/types.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/types.ts.html +6 -6
  45. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  47. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +24 -9
  48. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +24 -9
  50. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +10 -10
  51. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +56 -50
  52. package/coverage/lcov-report/src/viewModels/index.html +44 -44
  53. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  54. package/coverage/lcov.info +137 -121
  55. package/lib/disposer.d.ts.map +1 -1
  56. package/lib/disposer.js +3 -1
  57. package/lib/disposer.js.map +1 -1
  58. package/lib/lazy.d.ts +6 -2
  59. package/lib/lazy.d.ts.map +1 -1
  60. package/lib/lazy.js +22 -12
  61. package/lib/lazy.js.map +1 -1
  62. package/lib/lazy.light.d.ts +2 -1
  63. package/lib/lazy.light.d.ts.map +1 -1
  64. package/lib/lazy.light.js +11 -9
  65. package/lib/lazy.light.js.map +1 -1
  66. package/lib/pool.d.ts +12 -4
  67. package/lib/pool.d.ts.map +1 -1
  68. package/lib/pool.js +28 -5
  69. package/lib/pool.js.map +1 -1
  70. package/lib/validation/types.d.ts +5 -5
  71. package/lib/validation/types.d.ts.map +1 -1
  72. package/lib/validation/types.js.map +1 -1
  73. package/lib/validation/wrappers.d.ts +4 -3
  74. package/lib/validation/wrappers.d.ts.map +1 -1
  75. package/lib/viewModels/CommonModel.d.ts +14 -0
  76. package/lib/viewModels/CommonModel.d.ts.map +1 -0
  77. package/lib/viewModels/CommonModel.js +48 -0
  78. package/lib/viewModels/CommonModel.js.map +1 -0
  79. package/lib/viewModels/FlagModel.d.ts +1 -0
  80. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  81. package/lib/viewModels/FlagModel.js +8 -1
  82. package/lib/viewModels/FlagModel.js.map +1 -1
  83. package/lib/viewModels/NumberModel.d.ts +1 -0
  84. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  85. package/lib/viewModels/NumberModel.js +8 -1
  86. package/lib/viewModels/NumberModel.js.map +1 -1
  87. package/lib/viewModels/TextModel.d.ts +4 -3
  88. package/lib/viewModels/TextModel.d.ts.map +1 -1
  89. package/lib/viewModels/TextModel.js +25 -24
  90. package/lib/viewModels/TextModel.js.map +1 -1
  91. package/lib/viewModels/Validatable.d.ts +8 -10
  92. package/lib/viewModels/Validatable.d.ts.map +1 -1
  93. package/lib/viewModels/Validatable.js +14 -13
  94. package/lib/viewModels/Validatable.js.map +1 -1
  95. package/lib/viewModels/index.d.ts +1 -0
  96. package/lib/viewModels/index.d.ts.map +1 -1
  97. package/lib/viewModels/index.js +1 -0
  98. package/lib/viewModels/index.js.map +1 -1
  99. package/package.json +1 -1
  100. package/src/disposer.ts +4 -1
  101. package/src/lazy.light.ts +15 -11
  102. package/src/lazy.ts +22 -15
  103. package/src/pool.ts +31 -8
  104. package/src/validation/types.ts +5 -5
  105. package/src/viewModels/CommonModel.ts +46 -0
  106. package/src/viewModels/FlagModel.ts +6 -1
  107. package/src/viewModels/NumberModel.ts +6 -1
  108. package/src/viewModels/TextModel.ts +20 -15
  109. package/src/viewModels/Validatable.ts +23 -21
  110. package/src/viewModels/index.ts +1 -0
  111. package/yarn.lock +1 -1
package/lib/lazy.js CHANGED
@@ -7,6 +7,7 @@ class Lazy {
7
7
  constructor(_factory) {
8
8
  this._factory = _factory;
9
9
  this._instance = null;
10
+ this.dispose = () => this.reset();
10
11
  mobx_1.makeObservable(this);
11
12
  }
12
13
  get hasValue() { return this._instance != null; }
@@ -35,6 +36,13 @@ class LazyPromise {
35
36
  this._instance = null;
36
37
  this._busy = false;
37
38
  this._loaded = false;
39
+ this.setInstance = (res) => {
40
+ const wasBusy = this._busy;
41
+ this._busy = false;
42
+ this._loaded = wasBusy;
43
+ this._instance = wasBusy ? res : null;
44
+ };
45
+ this.dispose = () => this.reset();
38
46
  mobx_1.makeObservable(this);
39
47
  this._instance = initial;
40
48
  }
@@ -42,22 +50,14 @@ class LazyPromise {
42
50
  get() {
43
51
  if (!this._loaded && !this._busy) {
44
52
  this._busy = true;
45
- this._factory().then(res => {
46
- mobx_1.transaction(() => {
47
- this._busy = false;
48
- this._loaded = true;
49
- this._instance = res;
50
- });
51
- });
53
+ this._factory().then(this.setInstance);
52
54
  }
53
55
  return this._instance;
54
56
  }
55
57
  reset() {
56
- mobx_1.transaction(() => {
57
- this._busy = false;
58
- this._instance = this.initial;
59
- this._loaded = false;
60
- });
58
+ this._busy = false;
59
+ this._instance = this.initial;
60
+ this._loaded = false;
61
61
  }
62
62
  }
63
63
  tslib_1.__decorate([
@@ -68,5 +68,15 @@ tslib_1.__decorate([
68
68
  mobx_1.observable,
69
69
  tslib_1.__metadata("design:type", Object)
70
70
  ], LazyPromise.prototype, "_busy", void 0);
71
+ tslib_1.__decorate([
72
+ mobx_1.action,
73
+ tslib_1.__metadata("design:type", Object)
74
+ ], LazyPromise.prototype, "setInstance", void 0);
75
+ tslib_1.__decorate([
76
+ mobx_1.action,
77
+ tslib_1.__metadata("design:type", Function),
78
+ tslib_1.__metadata("design:paramtypes", []),
79
+ tslib_1.__metadata("design:returntype", void 0)
80
+ ], LazyPromise.prototype, "reset", null);
71
81
  exports.LazyPromise = LazyPromise;
72
82
  //# sourceMappingURL=lazy.js.map
package/lib/lazy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;;;AAAA,+BAA+D;AAE/D,MAAqB,IAAI;IAKrB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAF/B,cAAS,GAAM,IAAI,CAAC;QAGxB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;CACJ;AAtBG;IADC,iBAAU,CAAC,GAAG;;uCACa;AAHhC,uBAyBC;AAED,MAAa,WAAW;IAUpB,YACqB,QAA0B,EAC1B,UAAa,IAAI;QADjB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAU;QAT9B,cAAS,GAAM,IAAI,CAAC;QAGpB,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAMpB,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACvB,kBAAW,CAAC,GAAG,EAAE;oBACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACzB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK;QACD,kBAAW,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvCG;IADC,iBAAU,CAAC,GAAG;;8CACa;AAG5B;IADC,iBAAU;;0CACW;AAN1B,kCA0CC"}
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;;;AACA,+BAA0D;AAE1D,MAAqB,IAAI;IAKrB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAF/B,cAAS,GAAM,IAAI,CAAC;QAuB5B,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QApBzB,qBAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;CAGJ;AAxBG;IADC,iBAAU,CAAC,GAAG;;uCACa;AAHhC,uBA2BC;AAED,MAAa,WAAW;IAUpB,YACqB,QAA0B,EAC1B,UAAa,IAAI;QADjB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAU;QAT9B,cAAS,GAAM,IAAI,CAAC;QAGpB,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAsBhB,gBAAW,GAAG,CAAC,GAAM,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC;QASF,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QA/BzB,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAYD,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;CAGJ;AA3CG;IADC,iBAAU,CAAC,GAAG;;8CACa;AAG5B;IADC,iBAAU;;0CACW;AAwBtB;IADC,aAAM;;gDAOL;AAGF;IADC,aAAM;;;;wCAKN;AA3CL,kCA8CC"}
@@ -1,4 +1,5 @@
1
- export declare type LazyLight<T> = {
1
+ import type { IDisposable } from './disposer';
2
+ export declare type LazyLight<T> = IDisposable & {
2
3
  readonly value: T;
3
4
  readonly hasValue: boolean;
4
5
  reset(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.light.d.ts","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":"AACA,oBAAY,SAAS,CAAC,CAAC,IAAI;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,KAAK,IAAI,IAAI,CAAC;CACjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAgB7C"}
1
+ {"version":3,"file":"lazy.light.d.ts","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,oBAAY,SAAS,CAAC,CAAC,IAAI,WAAW,GAAG;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,KAAK,IAAI,IAAI,CAAC;CACjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAmB7C"}
package/lib/lazy.light.js CHANGED
@@ -2,20 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLazy = void 0;
4
4
  function createLazy(factory) {
5
- return {
6
- _factory: factory,
7
- _instance: undefined,
5
+ const _factory = factory;
6
+ let _instance = undefined;
7
+ const res = {
8
8
  get value() {
9
- if (this._instance === undefined) {
10
- this._instance = this._factory();
9
+ if (_instance === undefined) {
10
+ _instance = _factory();
11
11
  }
12
- return this._instance;
12
+ return _instance;
13
13
  },
14
- get hasValue() { return this._instance !== undefined; },
15
- reset() {
16
- this._instance = undefined;
14
+ get hasValue() { return _instance !== undefined; },
15
+ reset: () => {
16
+ _instance = undefined;
17
17
  },
18
+ dispose: () => res.reset(),
18
19
  };
20
+ return res;
19
21
  }
20
22
  exports.createLazy = createLazy;
21
23
  //# sourceMappingURL=lazy.light.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.light.js","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":";;;AAQA,SAAgB,UAAU,CAAI,OAAgB;IAC1C,OAAO;QACH,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,SAAc;QACzB,IAAI,KAAK;YACL,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;aACpC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;QACvD,KAAK;YACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;KAEY,CAAC;AACtB,CAAC;AAhBD,gCAgBC"}
1
+ {"version":3,"file":"lazy.light.js","sourceRoot":"","sources":["../src/lazy.light.ts"],"names":[],"mappings":";;;AASA,SAAgB,UAAU,CAAI,OAAgB;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,SAAS,GAAM,SAAS,CAAC;IAE7B,MAAM,GAAG,GAAiB;QACtB,IAAI,KAAK;YACL,IAAI,SAAS,KAAK,SAAS,EAAE;gBACzB,SAAS,GAAG,QAAQ,EAAE,CAAC;aAC1B;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;QAClD,KAAK,EAAE,GAAG,EAAE;YACR,SAAS,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE;KAC7B,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC;AAnBD,gCAmBC"}
package/lib/pool.d.ts CHANGED
@@ -1,7 +1,15 @@
1
+ import type { IDisposable } from './disposer';
1
2
  export declare class Pool<T> {
2
- private _container;
3
- get(factory: () => T): T;
4
- release(e: T): void;
5
- release(e: T[]): void;
3
+ readonly factory: () => T;
4
+ private readonly _container;
5
+ constructor(factory: () => T);
6
+ get(): T;
7
+ release(e: T | T[]): void;
8
+ }
9
+ export declare class PoolDisposable<T extends IDisposable> extends Pool<T> {
10
+ readonly initializer: (item: T) => void;
11
+ constructor(factory: () => T, initializer?: (item: T) => void);
12
+ get(): T;
13
+ release(e: T | T[]): void;
6
14
  }
7
15
  //# sourceMappingURL=pool.d.ts.map
package/lib/pool.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AACA,qBAAa,IAAI,CAAC,CAAC;IAEf,OAAO,CAAC,UAAU,CAAW;IAE7B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IAQxB,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;IACnB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI;CASxB"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qBAAa,IAAI,CAAC,CAAC;IAIH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAFrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAEjB,OAAO,EAAE,MAAM,CAAC;IAE9B,GAAG,IAAI,CAAC;IAQR,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;CAOnC;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAEhC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI;gBAAzD,OAAO,EAAE,MAAM,CAAC,EAAW,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAW;IAIrE,GAAG,IAAI,CAAC;IAMR,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;CAQnC"}
package/lib/pool.js CHANGED
@@ -1,26 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Pool = void 0;
3
+ exports.PoolDisposable = exports.Pool = void 0;
4
+ const functions_1 = require("functions");
4
5
  class Pool {
5
- constructor() {
6
+ constructor(factory) {
7
+ this.factory = factory;
6
8
  this._container = [];
7
9
  }
8
- get(factory) {
10
+ get() {
9
11
  if (this._container.length > 0) {
10
12
  return this._container.pop();
11
13
  }
12
14
  else {
13
- return factory();
15
+ return this.factory();
14
16
  }
15
17
  }
16
18
  release(e) {
17
19
  if (Array.isArray(e)) {
18
20
  this._container.push(...e);
19
21
  }
20
- else {
22
+ else if (e) {
21
23
  this._container.push(e);
22
24
  }
23
25
  }
24
26
  }
25
27
  exports.Pool = Pool;
28
+ class PoolDisposable extends Pool {
29
+ constructor(factory, initializer = null) {
30
+ super(factory);
31
+ this.initializer = initializer;
32
+ }
33
+ get() {
34
+ const res = super.get();
35
+ functions_1.safeCall(this.initializer, res);
36
+ return res;
37
+ }
38
+ release(e) {
39
+ if (Array.isArray(e)) {
40
+ e.forEach(ee => ee.dispose());
41
+ }
42
+ else if (e) {
43
+ e.dispose();
44
+ }
45
+ return super.release(e);
46
+ }
47
+ }
48
+ exports.PoolDisposable = PoolDisposable;
26
49
  //# sourceMappingURL=pool.js.map
package/lib/pool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":";;;AACA,MAAa,IAAI;IAAjB;QAEY,eAAU,GAAQ,EAAE,CAAC;IAoBjC,CAAC;IAlBG,GAAG,CAAC,OAAgB;QAChB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;SAChC;aAAM;YACH,OAAO,OAAO,EAAE,CAAC;SACpB;IACL,CAAC;IAKD,OAAO,CAAC,CAAU;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;CACJ;AAtBD,oBAsBC"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC,MAAa,IAAI;IAIb,YAAqB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAFpB,eAAU,GAAQ,EAAE,CAAC;IAEG,CAAC;IAEnC,GAAG;QACN,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;SAChC;aAAM;YACH,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;SACzB;IACL,CAAC;IAEM,OAAO,CAAC,CAAU;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B;aAAM,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;CACJ;AArBD,oBAqBC;AAED,MAAa,cAAsC,SAAQ,IAAO;IAE9D,YAAY,OAAgB,EAAW,cAAiC,IAAI;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QADoB,gBAAW,GAAX,WAAW,CAA0B;IAE5E,CAAC;IAEM,GAAG;QACN,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACxB,oBAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,CAAU;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;SACjC;aAAM,IAAI,CAAC,EAAE;YACV,CAAC,CAAC,OAAO,EAAE,CAAC;SACf;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;CACJ;AApBD,wCAoBC"}
@@ -1,9 +1,9 @@
1
1
  import { ValidationErrors } from './ValidationErrors';
2
- export declare type ValidatorFunction<T = string> = (val: T) => ValidationErrors;
3
- export declare type ValidatorFunctionAsync<T = string> = (val: T) => Promise<ValidationErrors>;
2
+ export declare type ValidatorFunction<T = string, TErrors = ValidationErrors> = (val: T) => TErrors;
3
+ export declare type ValidatorFunctionAsync<T = string, TErrors = ValidationErrors> = (val: T) => Promise<TErrors>;
4
4
  export declare type WrapperFunction = (val: ValidatorFunction) => ValidatorFunction;
5
- export declare class ValidationError extends Error {
6
- readonly code: ValidationErrors;
7
- constructor(message: string, code: ValidationErrors);
5
+ export declare class ValidationError<TErrors = ValidationErrors> extends Error {
6
+ readonly code: TErrors;
7
+ constructor(message: string, code: TErrors);
8
8
  }
9
9
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,oBAAY,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,gBAAgB,CAAC;AACzE,oBAAY,sBAAsB,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEvF,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAE5E,qBAAa,eAAgB,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAQ;gBAE3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB;CAItD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,oBAAY,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAC5F,oBAAY,sBAAsB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE1G,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAE5E,qBAAa,eAAe,CAAC,OAAO,GAAG,gBAAgB,CAAE,SAAQ,KAAK;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAQ;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;CAI7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":";;;AAOA,MAAa,eAAgB,SAAQ,KAAK;IAGtC,YAAY,OAAe,EAAE,IAAsB;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHV,SAAI,GAAqB,IAAI,CAAC;QAInC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAPD,0CAOC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":";;;AAOA,MAAa,eAA4C,SAAQ,KAAK;IAGlE,YAAY,OAAe,EAAE,IAAa;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHV,SAAI,GAAY,IAAI,CAAC;QAI1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAPD,0CAOC"}
@@ -1,7 +1,8 @@
1
1
  import { ValidatorFunction } from './types';
2
+ import { ValidationErrors } from './ValidationErrors';
2
3
  export declare const Wrappers: {
3
- required<T = string>(validator: ValidatorFunction<T>): ValidatorFunction<T>;
4
- notRequired<T_1 = string>(validator: ValidatorFunction<T_1>): ValidatorFunction<T_1>;
5
- thrower<T_2 = string>(validator: ValidatorFunction<T_2>): (val: T_2) => void;
4
+ required<T = string>(validator: ValidatorFunction<T, ValidationErrors>): ValidatorFunction<T, ValidationErrors>;
5
+ notRequired<T_1 = string>(validator: ValidatorFunction<T_1, ValidationErrors>): ValidatorFunction<T_1, ValidationErrors>;
6
+ thrower<T_2 = string>(validator: ValidatorFunction<T_2, ValidationErrors>): (val: T_2) => void;
6
7
  };
7
8
  //# sourceMappingURL=wrappers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/validation/wrappers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI5C,eAAO,MAAM,QAAQ;;;;CAoBpB,CAAC"}
1
+ {"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/validation/wrappers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,eAAO,MAAM,QAAQ;;;;CAoBpB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ValidatableModel } from './Validatable';
2
+ export declare class CommonModel<T = any> extends ValidatableModel<T> {
3
+ private _value;
4
+ private _defaultValue;
5
+ private _validateOnChange;
6
+ constructor(v?: T);
7
+ validateOnChange(enable?: boolean): this;
8
+ protected get valueToValidate(): Readonly<T>;
9
+ get value(): T;
10
+ set value(v: T);
11
+ readonly setValue: (value: T) => void;
12
+ reset: () => void;
13
+ }
14
+ //# sourceMappingURL=CommonModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/CommonModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,WAAW,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAGzD,OAAO,CAAC,MAAM,CAAW;IAEzB,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,CAAC,GAAE,CAAQ;IAOvB,gBAAgB,CAAC,MAAM,UAAO;IAK9B,SAAS,KAAK,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,CAE3C;IAED,IAAW,KAAK,IACI,CAAC,CADqB;IAC1C,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;IAED,SACgB,QAAQ,UAAW,CAAC,UAMlC;IAEF,KAAK,aAGH;CACL"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommonModel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mobx_1 = require("mobx");
6
+ const Validatable_1 = require("./Validatable");
7
+ class CommonModel extends Validatable_1.ValidatableModel {
8
+ constructor(v = null) {
9
+ super();
10
+ this._value = null;
11
+ this._defaultValue = null;
12
+ this._validateOnChange = false;
13
+ this.setValue = (value) => {
14
+ this._value = value;
15
+ if (this._validateOnChange) {
16
+ this.validate();
17
+ }
18
+ };
19
+ this.reset = () => {
20
+ super.reset();
21
+ this.value = this._defaultValue;
22
+ };
23
+ mobx_1.makeObservable(this);
24
+ this._value = v;
25
+ this._defaultValue = v;
26
+ }
27
+ validateOnChange(enable = true) {
28
+ this._validateOnChange = enable;
29
+ return this;
30
+ }
31
+ get valueToValidate() {
32
+ return this._value;
33
+ }
34
+ get value() { return this._value; }
35
+ set value(v) {
36
+ this.setValue(v);
37
+ }
38
+ }
39
+ tslib_1.__decorate([
40
+ mobx_1.observable.ref,
41
+ tslib_1.__metadata("design:type", Object)
42
+ ], CommonModel.prototype, "_value", void 0);
43
+ tslib_1.__decorate([
44
+ mobx_1.action,
45
+ tslib_1.__metadata("design:type", Object)
46
+ ], CommonModel.prototype, "setValue", void 0);
47
+ exports.CommonModel = CommonModel;
48
+ //# sourceMappingURL=CommonModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonModel.js","sourceRoot":"","sources":["../../src/viewModels/CommonModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAC1D,+CAAiD;AAEjD,MAAa,WAAqB,SAAQ,8BAAmB;IAQzD,YAAY,IAAO,IAAI;QACnB,KAAK,EAAE,CAAC;QANJ,WAAM,GAAM,IAAI,CAAC;QAEjB,kBAAa,GAAM,IAAI,CAAC;QACxB,sBAAiB,GAAG,KAAK,CAAC;QAwBlB,aAAQ,GAAG,CAAC,KAAQ,EAAE,EAAE;YACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;QACL,CAAC,CAAC;QAEF,UAAK,GAAG,GAAG,EAAE;YACT,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACpC,CAAC,CAAC;QA/BE,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,MAAM,GAAG,IAAI;QAC1B,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAc,eAAe;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;CAeJ;AAvCG;IADC,iBAAU,CAAC,GAAG;;2CACU;AA2BzB;IADC,aAAM;;6CAOL;AApCN,kCA0CC"}
@@ -12,6 +12,7 @@ export declare class FlagModel implements IFlagModel, IFlagModelReadonly {
12
12
  constructor(initial?: boolean);
13
13
  get value(): boolean;
14
14
  set value(value: boolean);
15
+ readonly setValue: (value: boolean) => void;
15
16
  get isDefault(): boolean;
16
17
  setTrue: () => boolean;
17
18
  setFalse: () => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"FlagModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/FlagModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,UAAW,SAAQ,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe;IACrE,MAAM,IAAI,IAAI,CAAC;CAClB;AAED,oBAAY,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE5D,qBAAa,SAAU,YAAW,UAAU,EAAE,kBAAkB;IAG5D,OAAO,CAAC,MAAM,CAAkB;gBAEpB,OAAO,UAAQ;IAK3B,IAAI,KAAK,IAIQ,OAAO,CAFvB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,IAAI,SAAS,YAAoC;IAGjD,OAAO,gBAIL;IAGF,QAAQ,gBAIN;IAGF,MAAM,aAEJ;IAGF,KAAK,aAEH;CACL"}
1
+ {"version":3,"file":"FlagModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/FlagModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,UAAW,SAAQ,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe;IACrE,MAAM,IAAI,IAAI,CAAC;CAClB;AAED,oBAAY,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE5D,qBAAa,SAAU,YAAW,UAAU,EAAE,kBAAkB;IAG5D,OAAO,CAAC,MAAM,CAAkB;gBAEpB,OAAO,UAAQ;IAK3B,IAAI,KAAK,IAIQ,OAAO,CAFvB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,SACgB,QAAQ,UAAW,OAAO,UAExC;IAEF,IAAI,SAAS,YAAoC;IAGjD,OAAO,gBAIL;IAGF,QAAQ,gBAIN;IAGF,MAAM,aAEJ;IAGF,KAAK,aAEH;CACL"}
@@ -6,6 +6,9 @@ const mobx_1 = require("mobx");
6
6
  class FlagModel {
7
7
  constructor(initial = false) {
8
8
  this._value = false;
9
+ this.setValue = (value) => {
10
+ this._value = value;
11
+ };
9
12
  this.setTrue = () => {
10
13
  const v = this.value;
11
14
  this.value = true;
@@ -29,7 +32,7 @@ class FlagModel {
29
32
  return this._value;
30
33
  }
31
34
  set value(value) {
32
- this._value = value;
35
+ this.setValue(value);
33
36
  }
34
37
  get isDefault() { return this._value === false; }
35
38
  }
@@ -37,6 +40,10 @@ tslib_1.__decorate([
37
40
  mobx_1.observable,
38
41
  tslib_1.__metadata("design:type", Boolean)
39
42
  ], FlagModel.prototype, "_value", void 0);
43
+ tslib_1.__decorate([
44
+ mobx_1.action,
45
+ tslib_1.__metadata("design:type", Object)
46
+ ], FlagModel.prototype, "setValue", void 0);
40
47
  tslib_1.__decorate([
41
48
  mobx_1.action,
42
49
  tslib_1.__metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"FlagModel.js","sourceRoot":"","sources":["../../src/viewModels/FlagModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAc1D,MAAa,SAAS;IAKlB,YAAY,OAAO,GAAG,KAAK;QAFnB,WAAM,GAAY,KAAK,CAAC;QAkBhC,YAAO,GAAG,GAAG,EAAE;YACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC;QACd,CAAC,CAAC;QAGF,aAAQ,GAAG,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO,CAAC,CAAC;QACb,CAAC,CAAC;QAGF,WAAM,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC;QAGF,UAAK,GAAG,GAAG,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC;QApCE,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,KAAc;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;CAyBpD;AAxCG;IADC,iBAAU;;yCACqB;AAkBhC;IADC,aAAM;;0CAKL;AAGF;IADC,aAAM;;2CAKL;AAGF;IADC,aAAM;;yCAGL;AAGF;IADC,aAAM;;wCAGL;AA1CN,8BA2CC"}
1
+ {"version":3,"file":"FlagModel.js","sourceRoot":"","sources":["../../src/viewModels/FlagModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAc1D,MAAa,SAAS;IAKlB,YAAY,OAAO,GAAG,KAAK;QAFnB,WAAM,GAAY,KAAK,CAAC;QAgBhB,aAAQ,GAAG,CAAC,KAAc,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC;QAKF,YAAO,GAAG,GAAG,EAAE;YACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC;QACd,CAAC,CAAC;QAGF,aAAQ,GAAG,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO,CAAC,CAAC;QACb,CAAC,CAAC;QAGF,WAAM,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC;QAGF,UAAK,GAAG,GAAG,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC;QAzCE,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,KAAc;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAOD,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;CAyBpD;AA7CG;IADC,iBAAU;;yCACqB;AAgBhC;IADC,aAAM;;2CAGL;AAKF;IADC,aAAM;;0CAKL;AAGF;IADC,aAAM;;2CAKL;AAGF;IADC,aAAM;;yCAGL;AAGF;IADC,aAAM;;wCAGL;AA/CN,8BAgDC"}
@@ -9,6 +9,7 @@ export declare class NumberModel implements INumberModel, IValueModel<number> {
9
9
  constructor(initial?: number);
10
10
  get value(): number;
11
11
  set value(v: number);
12
+ readonly setValue: (v: number) => void;
12
13
  get isDefault(): boolean;
13
14
  reset: () => void;
14
15
  increment: (d?: number) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/NumberModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,WAAY,YAAW,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC;IAGjE,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,QAAQ,CAAa;gBAEjB,OAAO,GAAE,MAAU;IAM/B,IAAI,KAAK,IACI,MAAM,CADgB;IACnC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAsB;IAEzC,IAAI,SAAS,YAA4C;IAGzD,KAAK,aAEH;IAGF,SAAS,yBAA8B;IAGvC,SAAS,yBAA8B;CAC1C;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"NumberModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/NumberModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,WAAY,YAAW,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC;IAGjE,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,QAAQ,CAAa;gBAEjB,OAAO,GAAE,MAAU;IAM/B,IAAI,KAAK,IACI,MAAM,CADgB;IACnC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAuB;IAE1C,SACgB,QAAQ,MAAO,MAAM,UAEnC;IAEF,IAAI,SAAS,YAA4C;IAGzD,KAAK,aAEH;IAGF,SAAS,yBAA8B;IAGvC,SAAS,yBAA8B;CAC1C;AAED,eAAe,WAAW,CAAC"}
@@ -7,6 +7,9 @@ class NumberModel {
7
7
  constructor(initial = 0) {
8
8
  this._value = 0;
9
9
  this._initial = 0;
10
+ this.setValue = (v) => {
11
+ this._value = v;
12
+ };
10
13
  this.reset = () => {
11
14
  this._value = this._initial;
12
15
  };
@@ -17,13 +20,17 @@ class NumberModel {
17
20
  this._value = this._initial;
18
21
  }
19
22
  get value() { return this._value; }
20
- set value(v) { this._value = v; }
23
+ set value(v) { this.setValue(v); }
21
24
  get isDefault() { return this._value === this._initial; }
22
25
  }
23
26
  tslib_1.__decorate([
24
27
  mobx_1.observable,
25
28
  tslib_1.__metadata("design:type", Number)
26
29
  ], NumberModel.prototype, "_value", void 0);
30
+ tslib_1.__decorate([
31
+ mobx_1.action,
32
+ tslib_1.__metadata("design:type", Object)
33
+ ], NumberModel.prototype, "setValue", void 0);
27
34
  tslib_1.__decorate([
28
35
  mobx_1.action,
29
36
  tslib_1.__metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"NumberModel.js","sourceRoot":"","sources":["../../src/viewModels/NumberModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAQ1D,MAAa,WAAW;IAOpB,YAAY,UAAkB,CAAC;QAJvB,WAAM,GAAW,CAAC,CAAC;QAEnB,aAAQ,GAAW,CAAC,CAAC;QAc7B,UAAK,GAAG,GAAG,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC;QAGF,cAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAGvC,cAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAnBnC,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,CAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CAY5D;AAzBG;IADC,iBAAU;;2CACgB;AAgB3B;IADC,aAAM;;0CAGL;AAGF;IADC,aAAM;;8CACgC;AAGvC;IADC,aAAM;;8CACgC;AA3B3C,kCA4BC;AAED,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"NumberModel.js","sourceRoot":"","sources":["../../src/viewModels/NumberModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAQ1D,MAAa,WAAW;IAOpB,YAAY,UAAkB,CAAC;QAJvB,WAAM,GAAW,CAAC,CAAC;QAEnB,aAAQ,GAAW,CAAC,CAAC;QAYb,aAAQ,GAAG,CAAC,CAAS,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC;QAKF,UAAK,GAAG,GAAG,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC;QAGF,cAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAGvC,cAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAxBnC,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,CAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAO1C,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CAY5D;AA9BG;IADC,iBAAU;;2CACgB;AAc3B;IADC,aAAM;;6CAGL;AAKF;IADC,aAAM;;0CAGL;AAGF;IADC,aAAM;;8CACgC;AAGvC;IADC,aAAM;;8CACgC;AAhC3C,kCAiCC;AAED,kBAAe,WAAW,CAAC"}
@@ -1,13 +1,12 @@
1
1
  import { Getter } from '../types';
2
2
  import { IValueModel } from './types';
3
- import { ValidatableModel, ValidationConfig } from './Validatable';
3
+ import { ValidatableModel } from './Validatable';
4
4
  import { IResetableModel } from 'viewModels';
5
5
  export declare type TextInputConfig = {
6
6
  name?: Getter<string>;
7
7
  title?: Getter<string>;
8
8
  value?: Getter<string>;
9
9
  async?: boolean;
10
- validation?: ValidationConfig<string>;
11
10
  noSubscribe?: boolean;
12
11
  };
13
12
  export declare class Text {
@@ -19,7 +18,7 @@ export declare class Text {
19
18
  });
20
19
  get value(): string;
21
20
  }
22
- export declare class TextInputVM extends ValidatableModel implements IValueModel<string>, IResetableModel {
21
+ export declare class TextInputVM extends ValidatableModel<string> implements IValueModel<string>, IResetableModel {
23
22
  private _value;
24
23
  private _focused;
25
24
  private _name;
@@ -30,9 +29,11 @@ export declare class TextInputVM extends ValidatableModel implements IValueModel
30
29
  get name(): string;
31
30
  get title(): string;
32
31
  set value(val: string);
32
+ readonly setValue: (value: string) => void;
33
33
  get isEmpty(): boolean;
34
34
  get focused(): boolean;
35
35
  set focused(val: boolean);
36
+ readonly setFocused: (value?: boolean) => void;
36
37
  protected get valueToValidate(): string;
37
38
  private onBlur;
38
39
  reset: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"TextModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/TextModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,oBAAY,eAAe,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,UAAU,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAeF,qBAAa,IAAI;IAEb,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAKrF,IAAI,KAAK,WAA0B;CACtC;AAED,qBAAa,WAAY,SAAQ,gBAAiB,YAAW,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe;IAE7F,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,KAAK,CAAgB;IAG7B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;gBAExC,MAAM,CAAC,EAAE,eAAe;IAYpC,IAAI,KAAK,WAA0B;IACnC,IAAI,IAAI,WAAyB;IACjC,IAAI,KAAK,WAA0B;IAEnC,IAAI,KAAK,CAAC,GAAG,QAAA,EAMZ;IAED,IACI,OAAO,YAEV;IAED,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,CAAC,GAAG,SAAA,EAQd;IAED,SAAS,KAAK,eAAe,WAAwC;IAErE,OAAO,CAAC,MAAM;IAId,KAAK,aAIH;CAEL"}
1
+ {"version":3,"file":"TextModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/TextModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,oBAAY,eAAe,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAeF,qBAAa,IAAI;IAEb,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAKrF,IAAI,KAAK,WAA0B;CACtC;AAED,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,MAAM,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe;IAErG,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;gBAExC,MAAM,CAAC,EAAE,eAAe;IAYpC,IAAI,KAAK,WAA0B;IACnC,IAAI,IAAI,WAAyB;IACjC,IAAI,KAAK,WAA0B;IAEnC,IAAI,KAAK,CAAC,GAAG,QAAA,EAEZ;IAED,SACgB,QAAQ,UAAW,MAAM,UAMvC;IAEF,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,IAIM,OAAO,CAFvB;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,EAEvB;IAED,SACgB,UAAU,4BAQxB;IAEF,SAAS,KAAK,eAAe,WAAwC;IAErE,OAAO,CAAC,MAAM;IAId,KAAK,aAIH;CAEL"}
@@ -28,12 +28,28 @@ tslib_1.__decorate([
28
28
  exports.Text = Text;
29
29
  class TextInputVM extends Validatable_1.ValidatableModel {
30
30
  constructor(config) {
31
- super(config && config.validation);
31
+ super();
32
32
  this._value = '';
33
33
  this._focused = false;
34
34
  this._name = null;
35
35
  this._title = null;
36
36
  this._valueObserving = null;
37
+ this.setValue = (value) => {
38
+ if (!this._valueObserving) {
39
+ this._value = value;
40
+ }
41
+ else {
42
+ logger_1.default.warn('[TextInputViewModel] Setting value is not allowed when value is observing');
43
+ }
44
+ };
45
+ this.setFocused = (value = true) => {
46
+ this._focused = value;
47
+ if (!value) {
48
+ this.onBlur();
49
+ return;
50
+ }
51
+ super.reset();
52
+ };
37
53
  this.reset = () => {
38
54
  this._value = '';
39
55
  this._focused = false;
@@ -50,12 +66,7 @@ class TextInputVM extends Validatable_1.ValidatableModel {
50
66
  get name() { return this._name; }
51
67
  get title() { return this._title; }
52
68
  set value(val) {
53
- if (!this._valueObserving) {
54
- this._value = val;
55
- }
56
- else {
57
- logger_1.default.warn('[TextInputViewModel] Setting value is not allowed when value is observing');
58
- }
69
+ this.setValue(val);
59
70
  }
60
71
  get isEmpty() {
61
72
  return !this._value;
@@ -64,12 +75,7 @@ class TextInputVM extends Validatable_1.ValidatableModel {
64
75
  return this._focused;
65
76
  }
66
77
  set focused(val) {
67
- this._focused = val;
68
- if (!val) {
69
- this.onBlur();
70
- return;
71
- }
72
- super.reset();
78
+ this.setFocused(val);
73
79
  }
74
80
  get valueToValidate() { var _a; return ((_a = this.value) !== null && _a !== void 0 ? _a : '').trim(); }
75
81
  onBlur() {
@@ -85,17 +91,12 @@ tslib_1.__decorate([
85
91
  tslib_1.__metadata("design:type", Object)
86
92
  ], TextInputVM.prototype, "_focused", void 0);
87
93
  tslib_1.__decorate([
88
- mobx_1.observable,
89
- tslib_1.__metadata("design:type", String)
90
- ], TextInputVM.prototype, "_name", void 0);
91
- tslib_1.__decorate([
92
- mobx_1.observable,
93
- tslib_1.__metadata("design:type", String)
94
- ], TextInputVM.prototype, "_title", void 0);
94
+ mobx_1.action,
95
+ tslib_1.__metadata("design:type", Object)
96
+ ], TextInputVM.prototype, "setValue", void 0);
95
97
  tslib_1.__decorate([
96
- mobx_1.computed,
97
- tslib_1.__metadata("design:type", Object),
98
- tslib_1.__metadata("design:paramtypes", [])
99
- ], TextInputVM.prototype, "isEmpty", null);
98
+ mobx_1.action,
99
+ tslib_1.__metadata("design:type", Object)
100
+ ], TextInputVM.prototype, "setFocused", void 0);
100
101
  exports.TextInputVM = TextInputVM;
101
102
  //# sourceMappingURL=TextModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextModel.js","sourceRoot":"","sources":["../../src/viewModels/TextModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextModel.js","sourceRoot":"","sources":["../../src/viewModels/TextModel.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,21 @@
1
1
  import { ValidatorFunction, ValidatorFunctionAsync, ValidationErrors } from '../validation';
2
- export declare type ValueValidator<T> = ValidatorFunction<T> | ValidatorFunctionAsync<T>;
3
- export declare type ValidationErrorsStrings = {
4
- [code: number]: string;
5
- };
6
- export declare type ValidationConfig<T> = {
7
- validator: ValueValidator<Readonly<T>>;
8
- errors: ValidationErrorsStrings;
2
+ export declare type ValueValidator<T, TErrors = ValidationErrors> = ValidatorFunction<T, TErrors> | ValidatorFunctionAsync<T, TErrors>;
3
+ export declare type ValidationErrorsStrings<TErrors extends string | number = number> = Partial<Omit<Record<TErrors, string>, 0 | null>>;
4
+ export declare type ValidationConfig<T, TErrors extends string | number = ValidationErrors> = {
5
+ validator: ValueValidator<Readonly<T>, TErrors>;
6
+ errors: ValidationErrorsStrings<TErrors>;
9
7
  };
10
8
  export declare abstract class ValidatableModel<T = string> {
11
9
  private _validator;
12
10
  private _strings;
13
11
  private _error;
14
12
  private _validationError;
15
- constructor(config?: ValidationConfig<T>);
13
+ constructor();
16
14
  protected abstract get valueToValidate(): Readonly<T>;
17
15
  get isValid(): boolean;
18
16
  get error(): string;
19
- setValidationConfig(config?: ValidationConfig<T>): this;
20
- testValidate(value: T): Promise<ValidationErrors>;
17
+ setValidationConfig<TErrors extends string | number = ValidationErrors>(config?: ValidationConfig<T, TErrors>): this;
18
+ testValidate(value: T): Promise<any>;
21
19
  validate(): Promise<boolean>;
22
20
  getIsInvalid(): Promise<boolean>;
23
21
  reset(): void;