@zajno/common 1.2.8 → 1.3.0-beta

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 (127) hide show
  1. package/coverage/clover.xml +312 -61
  2. package/coverage/coverage-final.json +17 -9
  3. package/coverage/lcov-report/index.html +33 -18
  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 +5 -5
  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 +11 -11
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/index.html +39 -9
  22. package/coverage/lcov-report/src/lazy.light.ts.html +155 -0
  23. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  24. package/coverage/lcov-report/src/logger/index.html +1 -1
  25. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  26. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  28. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  29. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  30. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  31. package/coverage/lcov-report/src/math/index.html +1 -1
  32. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  33. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  34. package/coverage/lcov-report/src/types.ts.html +143 -0
  35. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +22 -22
  36. package/coverage/lcov-report/src/validation/creditCard.ts.html +4 -4
  37. package/coverage/lcov-report/src/validation/helpers.ts.html +6 -6
  38. package/coverage/lcov-report/src/validation/index.html +1 -1
  39. package/coverage/lcov-report/src/validation/index.ts.html +6 -6
  40. package/coverage/lcov-report/src/validation/types.ts.html +2 -2
  41. package/coverage/lcov-report/src/validation/validators.ts.html +5 -5
  42. package/coverage/lcov-report/src/validation/wrappers.ts.html +5 -5
  43. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +209 -0
  44. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +146 -0
  45. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +530 -0
  46. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +188 -0
  47. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +455 -0
  48. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +434 -0
  49. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +329 -0
  50. package/coverage/lcov-report/src/viewModels/index.html +186 -0
  51. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +239 -0
  52. package/coverage/lcov.info +619 -66
  53. package/lib/types.d.ts +5 -0
  54. package/lib/types.d.ts.map +1 -1
  55. package/lib/types.js +14 -0
  56. package/lib/types.js.map +1 -1
  57. package/lib/viewModels/FlagModel.d.ts +19 -0
  58. package/lib/viewModels/FlagModel.d.ts.map +1 -0
  59. package/lib/viewModels/FlagModel.js +38 -0
  60. package/lib/viewModels/FlagModel.js.map +1 -0
  61. package/lib/viewModels/MultiSelectModel.d.ts +41 -0
  62. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -0
  63. package/lib/viewModels/MultiSelectModel.js +150 -0
  64. package/lib/viewModels/MultiSelectModel.js.map +1 -0
  65. package/lib/viewModels/NumberModel.d.ts +16 -0
  66. package/lib/viewModels/NumberModel.d.ts.map +1 -0
  67. package/lib/viewModels/NumberModel.js +40 -0
  68. package/lib/viewModels/NumberModel.js.map +1 -0
  69. package/lib/viewModels/PromptModalViewModel.d.ts +20 -16
  70. package/lib/viewModels/PromptModalViewModel.d.ts.map +1 -1
  71. package/lib/viewModels/PromptModalViewModel.js +37 -36
  72. package/lib/viewModels/PromptModalViewModel.js.map +1 -1
  73. package/lib/viewModels/{SelectViewModel.d.ts → SelectModel.d.ts} +14 -8
  74. package/lib/viewModels/SelectModel.d.ts.map +1 -0
  75. package/lib/viewModels/SelectModel.js +109 -0
  76. package/lib/viewModels/SelectModel.js.map +1 -0
  77. package/lib/viewModels/{TextInputViewModel.d.ts → TextModel.d.ts} +10 -9
  78. package/lib/viewModels/TextModel.d.ts.map +1 -0
  79. package/lib/viewModels/{TextInputViewModel.js → TextModel.js} +8 -17
  80. package/lib/viewModels/TextModel.js.map +1 -0
  81. package/lib/viewModels/Validatable.d.ts +9 -7
  82. package/lib/viewModels/Validatable.d.ts.map +1 -1
  83. package/lib/viewModels/Validatable.js +22 -8
  84. package/lib/viewModels/Validatable.js.map +1 -1
  85. package/lib/viewModels/ValuesCollector.d.ts +28 -0
  86. package/lib/viewModels/ValuesCollector.d.ts.map +1 -0
  87. package/lib/viewModels/ValuesCollector.js +51 -0
  88. package/lib/viewModels/ValuesCollector.js.map +1 -0
  89. package/lib/viewModels/index.d.ts +7 -5
  90. package/lib/viewModels/index.d.ts.map +1 -1
  91. package/lib/viewModels/index.js +7 -5
  92. package/lib/viewModels/index.js.map +1 -1
  93. package/lib/viewModels/wrappers.d.ts +15 -0
  94. package/lib/viewModels/wrappers.d.ts.map +1 -0
  95. package/lib/viewModels/wrappers.js +43 -0
  96. package/lib/viewModels/wrappers.js.map +1 -0
  97. package/package.json +1 -1
  98. package/src/types.ts +16 -0
  99. package/src/viewModels/FlagModel.ts +43 -0
  100. package/src/viewModels/MultiSelectModel.ts +150 -0
  101. package/src/viewModels/NumberModel.ts +36 -0
  102. package/src/viewModels/PromptModalViewModel.ts +43 -49
  103. package/src/viewModels/SelectModel.ts +125 -0
  104. package/src/viewModels/{TextInputViewModel.ts → TextModel.ts} +22 -25
  105. package/src/viewModels/Validatable.ts +26 -11
  106. package/src/viewModels/ValuesCollector.ts +84 -0
  107. package/src/viewModels/__tests__/multiSelect.test.ts +23 -0
  108. package/src/viewModels/__tests__/select.test.ts +71 -0
  109. package/src/viewModels/__tests__/wrappers.test.ts +79 -0
  110. package/src/viewModels/index.ts +9 -5
  111. package/src/viewModels/wrappers.ts +53 -0
  112. package/lib/viewModels/RadioButtonGroupViewModel.d.ts +0 -11
  113. package/lib/viewModels/RadioButtonGroupViewModel.d.ts.map +0 -1
  114. package/lib/viewModels/RadioButtonGroupViewModel.js +0 -51
  115. package/lib/viewModels/RadioButtonGroupViewModel.js.map +0 -1
  116. package/lib/viewModels/RadioButtonViewModel.d.ts +0 -9
  117. package/lib/viewModels/RadioButtonViewModel.d.ts.map +0 -1
  118. package/lib/viewModels/RadioButtonViewModel.js +0 -32
  119. package/lib/viewModels/RadioButtonViewModel.js.map +0 -1
  120. package/lib/viewModels/SelectViewModel.d.ts.map +0 -1
  121. package/lib/viewModels/SelectViewModel.js +0 -88
  122. package/lib/viewModels/SelectViewModel.js.map +0 -1
  123. package/lib/viewModels/TextInputViewModel.d.ts.map +0 -1
  124. package/lib/viewModels/TextInputViewModel.js.map +0 -1
  125. package/src/viewModels/RadioButtonGroupViewModel.ts +0 -47
  126. package/src/viewModels/RadioButtonViewModel.ts +0 -26
  127. package/src/viewModels/SelectViewModel.ts +0 -88
package/lib/types.d.ts CHANGED
@@ -2,4 +2,9 @@ export { DeepPartial } from './deepPartial';
2
2
  export declare type DeepReadonly<T> = {
3
3
  readonly [P in keyof T]: DeepReadonly<T[P]>;
4
4
  };
5
+ export declare type Getter<T> = (() => T) | T | null;
6
+ export declare namespace Getter {
7
+ function getValue<T>(getter: Getter<T>): T;
8
+ }
9
+ export declare type Predicate<T> = (value: T) => boolean;
5
10
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,oBAAY,YAAY,CAAC,CAAC,IAAI;IAC1B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,oBAAY,YAAY,CAAC,CAAC,IAAI;IAC1B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C,CAAC;AAEF,oBAAY,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAE7C,yBAAiB,MAAM,CAAC;IACpB,SAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAQhD;CACJ;AAED,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC"}
package/lib/types.js CHANGED
@@ -1,3 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Getter = void 0;
4
+ var Getter;
5
+ (function (Getter) {
6
+ function getValue(getter) {
7
+ if (getter == null) {
8
+ return null;
9
+ }
10
+ if (typeof getter === 'function') {
11
+ return getter();
12
+ }
13
+ return getter;
14
+ }
15
+ Getter.getValue = getValue;
16
+ })(Getter = exports.Getter || (exports.Getter = {}));
3
17
  //# sourceMappingURL=types.js.map
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAQA,IAAiB,MAAM,CAUtB;AAVD,WAAiB,MAAM;IACnB,SAAgB,QAAQ,CAAI,MAAiB;QACzC,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAC9B,OAAQ,MAAkB,EAAE,CAAC;SAChC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IARe,eAAQ,WAQvB,CAAA;AACL,CAAC,EAVgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAUtB"}
@@ -0,0 +1,19 @@
1
+ import { ILabel } from './wrappers';
2
+ import { IValueModel } from './ValuesCollector';
3
+ export interface IFlagModel extends IValueModel<boolean> {
4
+ toggle(): void;
5
+ reset(): void;
6
+ }
7
+ export declare type IFlagModelReadonly = {
8
+ readonly value: boolean;
9
+ };
10
+ export declare type ILabeledFlagModel = IFlagModel & ILabel<string>;
11
+ export declare class FlagModel implements IFlagModel, IFlagModelReadonly {
12
+ private _value;
13
+ constructor(initial?: boolean);
14
+ get value(): boolean;
15
+ set value(value: boolean);
16
+ toggle: () => void;
17
+ reset: () => void;
18
+ }
19
+ //# sourceMappingURL=FlagModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/FlagModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,UAAW,SAAQ,WAAW,CAAC,OAAO,CAAC;IACpD,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;CACjB;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;IAGD,MAAM,aAEJ;IAGF,KAAK,aAEH;CACL"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlagModel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mobx_1 = require("mobx");
6
+ class FlagModel {
7
+ constructor(initial = false) {
8
+ this._value = false;
9
+ this.toggle = () => {
10
+ this._value = !this._value;
11
+ };
12
+ this.reset = () => {
13
+ this._value = false;
14
+ };
15
+ mobx_1.makeObservable(this);
16
+ this._value = initial;
17
+ }
18
+ get value() {
19
+ return this._value;
20
+ }
21
+ set value(value) {
22
+ this._value = value;
23
+ }
24
+ }
25
+ tslib_1.__decorate([
26
+ mobx_1.observable,
27
+ tslib_1.__metadata("design:type", Boolean)
28
+ ], FlagModel.prototype, "_value", void 0);
29
+ tslib_1.__decorate([
30
+ mobx_1.action,
31
+ tslib_1.__metadata("design:type", Object)
32
+ ], FlagModel.prototype, "toggle", void 0);
33
+ tslib_1.__decorate([
34
+ mobx_1.action,
35
+ tslib_1.__metadata("design:type", Object)
36
+ ], FlagModel.prototype, "reset", void 0);
37
+ exports.FlagModel = FlagModel;
38
+ //# sourceMappingURL=FlagModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagModel.js","sourceRoot":"","sources":["../../src/viewModels/FlagModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAe1D,MAAa,SAAS;IAKlB,YAAY,OAAO,GAAG,KAAK;QAFnB,WAAM,GAAY,KAAK,CAAC;QAgBhC,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;QApBE,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;CAWJ;AAxBG;IADC,iBAAU;;yCACqB;AAgBhC;IADC,aAAM;;yCAGL;AAGF;IADC,aAAM;;wCAGL;AA1BN,8BA2BC"}
@@ -0,0 +1,41 @@
1
+ import { FlagModel, ILabeledFlagModel } from './FlagModel';
2
+ import { ValidatableModel } from './Validatable';
3
+ import { IValueModel } from './ValuesCollector';
4
+ export declare class MultiSelect<T = any> extends ValidatableModel<ReadonlyArray<T>> implements IValueModel<readonly string[]> {
5
+ private readonly _items;
6
+ private readonly _accessor;
7
+ private _indexes;
8
+ readonly opened: FlagModel;
9
+ private readonly _initial;
10
+ private readonly _flags;
11
+ private _indexesLocked;
12
+ constructor(_items: readonly T[], _accessor: (item: T) => string, ...selected: number[]);
13
+ get selectedIndexes(): ReadonlyArray<number>;
14
+ get items(): ReadonlyArray<T>;
15
+ get flags(): readonly ILabeledFlagModel[];
16
+ get values(): ReadonlyArray<string>;
17
+ get selectedItems(): ReadonlyArray<T>;
18
+ get selectedValues(): ReadonlyArray<string>;
19
+ get value(): readonly string[];
20
+ set value(v: readonly string[]);
21
+ isIndexSelected(index: number): boolean;
22
+ isValueSelected(value: string): boolean;
23
+ get isEmpty(): boolean;
24
+ protected get valueToValidate(): readonly T[];
25
+ setItemSelected: (item: T, selected: boolean) => void;
26
+ selectItem: (item: T) => void;
27
+ deSelectItem: (item: T) => void;
28
+ selectItems: (items: readonly T[]) => void;
29
+ setValueSelected: (value: string, selected: boolean) => void;
30
+ selectValue: (value: string) => void;
31
+ deSelectValue: (value: string) => void;
32
+ selectValues: (values: readonly string[]) => void;
33
+ setIndexSelected: (index: number, selected: boolean) => void;
34
+ reset: () => void;
35
+ private setInitialIndexes;
36
+ private createFlags;
37
+ }
38
+ export declare class MultiSelectString<T extends string = string> extends MultiSelect<T> {
39
+ constructor(items: ReadonlyArray<T>, ...selected: number[]);
40
+ }
41
+ //# sourceMappingURL=MultiSelectModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/MultiSelectModel.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,mBAAmB,CAAC;AAGhD,qBAAa,WAAW,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,SAAS,MAAM,EAAE,CAAC;IAY9G,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAV9B,OAAO,CAAC,QAAQ,CAAqB;IAErC,SAAgB,MAAM,YAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,cAAc,CAAS;gBAGV,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC/C,GAAG,QAAQ,EAAE,MAAM,EAAE;IAQzB,IACI,eAAe,IAAI,aAAa,CAAC,MAAM,CAAC,CAAsC;IAElF,IAAI,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAwB;IAErD,IAAI,KAAK,iCAAgC;IAEzC,IACI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAElC;IAED,IACI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,CAEpC;IAED,IACI,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC,CAG1C;IAED,IAAI,KAAK,IACI,SAAS,MAAM,EAAE,CADa;IAC3C,IAAI,KAAK,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAA2B;IAEzD,eAAe,CAAC,KAAK,EAAE,MAAM;IAC7B,eAAe,CAAC,KAAK,EAAE,MAAM;IAE7B,IAAI,OAAO,YAAuC;IAElD,SAAS,KAAK,eAAe,iBAAiC;IAE9D,eAAe,SAAU,CAAC,YAAY,OAAO,UAK3C;IAEF,UAAU,SAAU,CAAC,UAAsC;IAC3D,YAAY,SAAU,CAAC,UAAuC;IAG9D,WAAW,UAAW,SAAS,CAAC,EAAE,UAEhC;IAEF,gBAAgB,UAAW,MAAM,YAAY,OAAO,UAKlD;IAEF,WAAW,UAAW,MAAM,UAAwC;IACpE,aAAa,UAAW,MAAM,UAAyC;IAGvE,YAAY,WAAY,SAAS,MAAM,EAAE,UAEvC;IAGF,gBAAgB,UAAW,MAAM,YAAY,OAAO,UAqBlD;IAEF,KAAK,aAGH;IAEF,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,WAAW;CAgBtB;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;gBAEhE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;CAG7D"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiSelectString = exports.MultiSelect = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const lazy_light_1 = require("../lazy.light");
6
+ const mobx_1 = require("mobx");
7
+ const FlagModel_1 = require("./FlagModel");
8
+ const Validatable_1 = require("./Validatable");
9
+ const wrappers_1 = require("./wrappers");
10
+ class MultiSelect extends Validatable_1.ValidatableModel {
11
+ constructor(_items, _accessor, ...selected) {
12
+ super();
13
+ this._items = _items;
14
+ this._accessor = _accessor;
15
+ this._indexes = new Set();
16
+ this.opened = new FlagModel_1.FlagModel();
17
+ this._initial = null;
18
+ this._flags = lazy_light_1.createLazy(() => this.createFlags());
19
+ this._indexesLocked = false;
20
+ this.setItemSelected = (item, selected) => {
21
+ const i = this.items.indexOf(item);
22
+ if (i >= 0) {
23
+ this.setIndexSelected(i, selected);
24
+ }
25
+ };
26
+ this.selectItem = (item) => this.setItemSelected(item, true);
27
+ this.deSelectItem = (item) => this.setItemSelected(item, false);
28
+ this.selectItems = (items) => {
29
+ items.forEach(this.selectItem);
30
+ };
31
+ this.setValueSelected = (value, selected) => {
32
+ const i = this.values.indexOf(value);
33
+ if (i >= 0) {
34
+ this.setIndexSelected(i, selected);
35
+ }
36
+ };
37
+ this.selectValue = (value) => this.setValueSelected(value, true);
38
+ this.deSelectValue = (value) => this.setValueSelected(value, false);
39
+ this.selectValues = (values) => {
40
+ values.forEach(this.selectValue);
41
+ };
42
+ this.setIndexSelected = (index, selected) => {
43
+ if (this._indexesLocked) {
44
+ return;
45
+ }
46
+ if (selected) {
47
+ this._indexes.add(index);
48
+ }
49
+ else {
50
+ this._indexes.delete(index);
51
+ }
52
+ if (!this._flags.hasValue) {
53
+ return;
54
+ }
55
+ try {
56
+ this._indexesLocked = true;
57
+ this._flags.value[index].value = selected;
58
+ }
59
+ finally {
60
+ this._indexesLocked = false;
61
+ }
62
+ };
63
+ this.reset = () => {
64
+ super.reset();
65
+ this.setInitialIndexes();
66
+ };
67
+ mobx_1.makeObservable(this);
68
+ this._initial = selected;
69
+ this.setInitialIndexes();
70
+ }
71
+ get selectedIndexes() { return Array.from(this._indexes); }
72
+ get items() { return this._items; }
73
+ get flags() { return this._flags.value; }
74
+ get values() {
75
+ return this._items.map(i => this._accessor(i));
76
+ }
77
+ get selectedItems() {
78
+ return this.selectedIndexes.map(i => this._items[i]);
79
+ }
80
+ get selectedValues() {
81
+ const values = this.values;
82
+ return this.selectedIndexes.map(i => values[i]);
83
+ }
84
+ get value() { return this.selectedValues; }
85
+ set value(v) { this.selectValues(v); }
86
+ isIndexSelected(index) { return this._indexes.has(index); }
87
+ isValueSelected(value) { return this.values.includes(value); }
88
+ get isEmpty() { return this._indexes.size === 0; }
89
+ get valueToValidate() { return this.selectedItems; }
90
+ setInitialIndexes() {
91
+ this._indexes.clear();
92
+ this._initial.forEach(i => this._indexes.add(i));
93
+ }
94
+ createFlags() {
95
+ const flags = this._items
96
+ .map((item, index) => {
97
+ const flag = wrappers_1.withLabel(new FlagModel_1.FlagModel(this._indexes.has(index)), () => this._accessor(item));
98
+ // react on every flag is changed directly
99
+ mobx_1.reaction(() => flag.value, isSelected => {
100
+ this.setIndexSelected(index, isSelected);
101
+ });
102
+ return flag;
103
+ });
104
+ return flags;
105
+ }
106
+ }
107
+ tslib_1.__decorate([
108
+ mobx_1.observable,
109
+ tslib_1.__metadata("design:type", Object)
110
+ ], MultiSelect.prototype, "_indexes", void 0);
111
+ tslib_1.__decorate([
112
+ mobx_1.computed,
113
+ tslib_1.__metadata("design:type", Array),
114
+ tslib_1.__metadata("design:paramtypes", [])
115
+ ], MultiSelect.prototype, "selectedIndexes", null);
116
+ tslib_1.__decorate([
117
+ mobx_1.computed,
118
+ tslib_1.__metadata("design:type", Array),
119
+ tslib_1.__metadata("design:paramtypes", [])
120
+ ], MultiSelect.prototype, "values", null);
121
+ tslib_1.__decorate([
122
+ mobx_1.computed,
123
+ tslib_1.__metadata("design:type", Array),
124
+ tslib_1.__metadata("design:paramtypes", [])
125
+ ], MultiSelect.prototype, "selectedItems", null);
126
+ tslib_1.__decorate([
127
+ mobx_1.computed,
128
+ tslib_1.__metadata("design:type", Array),
129
+ tslib_1.__metadata("design:paramtypes", [])
130
+ ], MultiSelect.prototype, "selectedValues", null);
131
+ tslib_1.__decorate([
132
+ mobx_1.action,
133
+ tslib_1.__metadata("design:type", Object)
134
+ ], MultiSelect.prototype, "selectItems", void 0);
135
+ tslib_1.__decorate([
136
+ mobx_1.action,
137
+ tslib_1.__metadata("design:type", Object)
138
+ ], MultiSelect.prototype, "selectValues", void 0);
139
+ tslib_1.__decorate([
140
+ mobx_1.action,
141
+ tslib_1.__metadata("design:type", Object)
142
+ ], MultiSelect.prototype, "setIndexSelected", void 0);
143
+ exports.MultiSelect = MultiSelect;
144
+ class MultiSelectString extends MultiSelect {
145
+ constructor(items, ...selected) {
146
+ super(items, v => v, ...selected);
147
+ }
148
+ }
149
+ exports.MultiSelectString = MultiSelectString;
150
+ //# sourceMappingURL=MultiSelectModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectModel.js","sourceRoot":"","sources":["../../src/viewModels/MultiSelectModel.ts"],"names":[],"mappings":";;;;AAAA,8CAA2C;AAC3C,+BAA8E;AAC9E,2CAA2D;AAC3D,+CAAiD;AAEjD,yCAAuC;AAEvC,MAAa,WAAqB,SAAQ,8BAAkC;IAWxE,YACqB,MAAoB,EACpB,SAA8B,EAC/C,GAAG,QAAkB;QAErB,KAAK,EAAE,CAAC;QAJS,WAAM,GAAN,MAAM,CAAc;QACpB,cAAS,GAAT,SAAS,CAAqB;QAV3C,aAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAErB,WAAM,GAAG,IAAI,qBAAS,EAAE,CAAC;QACxB,aAAQ,GAAa,IAAI,CAAC;QAE1B,WAAM,GAAG,uBAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,mBAAc,GAAG,KAAK,CAAC;QA8C/B,oBAAe,GAAG,CAAC,IAAO,EAAE,QAAiB,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACtC;QACL,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,iBAAY,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAG9D,gBAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;YAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,KAAa,EAAE,QAAiB,EAAE,EAAE;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACtC;QACL,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,kBAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAGvE,iBAAY,GAAG,CAAC,MAAyB,EAAE,EAAE;YACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC;QAGF,qBAAgB,GAAG,CAAC,KAAa,EAAE,QAAiB,EAAE,EAAE;YACpD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,OAAO;aACV;YAED,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACvB,OAAO;aACV;YAED,IAAI;gBACA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC;aAC7C;oBAAS;gBACN,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC/B;QACL,CAAC,CAAC;QAEF,UAAK,GAAG,GAAG,EAAE;YACT,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC;QA/FE,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAGD,IAAI,eAAe,KAA4B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,KAAK,KAAuB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAErD,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAGzC,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAGD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAGD,IAAI,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,CAAoB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzD,eAAe,CAAC,KAAa,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,eAAe,CAAC,KAAa,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtE,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAElD,IAAc,eAAe,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IA6DtD,iBAAiB;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,WAAW;QACf,MAAM,KAAK,GAAqC,IAAI,CAAC,MAAM;aACtD,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACjB,MAAM,IAAI,GAAG,oBAAS,CAClB,IAAI,qBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACvC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAC7B,CAAC;YAEF,0CAA0C;YAC1C,eAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;gBACpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AApIG;IADC,iBAAU;;6CAC0B;AAoBrC;IADC,eAAQ;;;kDACyE;AAOlF;IADC,eAAQ;;;yCAGR;AAGD;IADC,eAAQ;;;gDAGR;AAGD;IADC,eAAQ;;;iDAIR;AAuBD;IADC,aAAM;;gDAGL;AAaF;IADC,aAAM;;iDAGL;AAGF;IADC,aAAM;;qDAsBL;AA3GN,kCAuIC;AAED,MAAa,iBAA6C,SAAQ,WAAc;IAE5E,YAAY,KAAuB,EAAE,GAAG,QAAkB;QACtD,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;IACtC,CAAC;CACJ;AALD,8CAKC"}
@@ -0,0 +1,16 @@
1
+ import { IValueModel } from './ValuesCollector';
2
+ export interface INumberModel {
3
+ value: number;
4
+ }
5
+ export declare class NumberModel implements INumberModel, IValueModel<number> {
6
+ private _value;
7
+ private _initial;
8
+ constructor(initial?: number);
9
+ get value(): number;
10
+ set value(v: number);
11
+ reset: () => void;
12
+ increment: (d?: number) => number;
13
+ decrement: (d?: number) => number;
14
+ }
15
+ export default NumberModel;
16
+ //# sourceMappingURL=NumberModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/NumberModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,YAAY;IACzB,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;IAGzC,KAAK,aAEH;IAGF,SAAS,yBAA8B;IAGvC,SAAS,yBAA8B;CAC1C;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumberModel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mobx_1 = require("mobx");
6
+ class NumberModel {
7
+ constructor(initial = 0) {
8
+ this._value = 0;
9
+ this._initial = 0;
10
+ this.reset = () => {
11
+ this._value = this._initial;
12
+ };
13
+ this.increment = (d = 1) => this.value += d;
14
+ this.decrement = (d = 1) => this.value -= d;
15
+ mobx_1.makeObservable(this);
16
+ this._initial = initial;
17
+ this._value = this._initial;
18
+ }
19
+ get value() { return this._value; }
20
+ set value(v) { this._value = v; }
21
+ }
22
+ tslib_1.__decorate([
23
+ mobx_1.observable,
24
+ tslib_1.__metadata("design:type", Number)
25
+ ], NumberModel.prototype, "_value", void 0);
26
+ tslib_1.__decorate([
27
+ mobx_1.action,
28
+ tslib_1.__metadata("design:type", Object)
29
+ ], NumberModel.prototype, "reset", void 0);
30
+ tslib_1.__decorate([
31
+ mobx_1.action,
32
+ tslib_1.__metadata("design:type", Object)
33
+ ], NumberModel.prototype, "increment", void 0);
34
+ tslib_1.__decorate([
35
+ mobx_1.action,
36
+ tslib_1.__metadata("design:type", Object)
37
+ ], NumberModel.prototype, "decrement", void 0);
38
+ exports.NumberModel = NumberModel;
39
+ exports.default = NumberModel;
40
+ //# sourceMappingURL=NumberModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberModel.js","sourceRoot":"","sources":["../../src/viewModels/NumberModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAO1D,MAAa,WAAW;IAOpB,YAAY,UAAkB,CAAC;QAJvB,WAAM,GAAW,CAAC,CAAC;QAEnB,aAAQ,GAAW,CAAC,CAAC;QAY7B,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;QAjBnC,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;CAY5C;AAvBG;IADC,iBAAU;;2CACgB;AAc3B;IADC,aAAM;;0CAGL;AAGF;IADC,aAAM;;8CACgC;AAGvC;IADC,aAAM;;8CACgC;AAzB3C,kCA0BC;AAED,kBAAe,WAAW,CAAC"}
@@ -1,26 +1,30 @@
1
- export declare type PromptModalAction = {
2
- title: string;
3
- message: string;
4
- confirmText: string;
1
+ import { FlagModel } from './FlagModel';
2
+ export declare type BaseModalAction = {
3
+ title?: string;
4
+ message?: string;
5
+ };
6
+ export declare class ModalActionModel<T extends BaseModalAction = BaseModalAction> {
7
+ readonly isActive: FlagModel;
8
+ private _currentAction;
9
+ constructor();
10
+ get currentAction(): T;
11
+ openModal: (action: T) => void;
12
+ closeModal: () => void;
13
+ protected runAction: (cb: () => Promise<void> | void, close?: boolean, awaitAction?: boolean) => Promise<void>;
14
+ }
15
+ export declare type PromptModalAction = BaseModalAction & {
16
+ confirmText?: string;
5
17
  rejectText?: string;
6
- onConfirm: () => Promise<void> | void;
18
+ onConfirm?: () => Promise<void> | void;
7
19
  onReject?: () => Promise<void> | void;
8
- modalImage?: number;
20
+ awaitActions?: boolean;
21
+ modalImage?: any;
9
22
  confirmColor?: string;
10
23
  rejectColor?: string;
11
- awaitActions?: boolean;
12
24
  };
13
- export declare class PromptModalViewModel {
14
- private _isActive;
15
- private _currentAction;
16
- constructor();
17
- get isActive(): boolean;
18
- set isActive(val: boolean);
19
- get currentAction(): PromptModalAction;
25
+ export declare class PromptModalViewModel extends ModalActionModel<PromptModalAction> {
20
26
  get confirmColor(): string;
21
27
  get rejectColor(): string;
22
- openModal(action: PromptModalAction): void;
23
- closeModal(): void;
24
28
  onConfirm: () => Promise<void>;
25
29
  onReject: () => Promise<void>;
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PromptModalViewModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/PromptModalViewModel.ts"],"names":[],"mappings":"AAEA,oBAAY,iBAAiB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,SAAS,CAAkB;IAGnC,OAAO,CAAC,cAAc,CAA2B;;IAMjD,IAAI,QAAQ,IAIM,OAAO,CAFxB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAExB;IAED,IAAI,aAAa,sBAAkC;IAEnD,IAAI,YAAY,WAA+C;IAE/D,IAAI,WAAW,WAA8C;IAE7D,SAAS,CAAC,MAAM,EAAE,iBAAiB;IAK5B,UAAU;IAIjB,SAAS,sBASP;IAEF,QAAQ,sBASN;CACL"}
1
+ {"version":3,"file":"PromptModalViewModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/PromptModalViewModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,oBAAY,eAAe,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IACrE,SAAgB,QAAQ,YAAmB;IAG3C,OAAO,CAAC,cAAc,CAAW;;IAMjC,IAAI,aAAa,MAAkC;IAG5C,SAAS,WAAY,CAAC,UAG3B;IAGK,UAAU,aAGf;IAEF,SAAS,CAAC,SAAS,OAAc,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,2DAWzD;CACL;AAED,oBAAY,iBAAiB,GAAG,eAAe,GAAG;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,gBAAgB,CAAC,iBAAiB,CAAC;IACzE,IAAI,YAAY,WAA8C;IAE9D,IAAI,WAAW,WAA6C;IAE5D,SAAS,sBAA6F;IACtG,QAAQ,sBAA6F;CACxG"}
@@ -1,56 +1,57 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PromptModalViewModel = void 0;
3
+ exports.PromptModalViewModel = exports.ModalActionModel = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const mobx_1 = require("mobx");
6
- class PromptModalViewModel {
6
+ const FlagModel_1 = require("./FlagModel");
7
+ class ModalActionModel {
7
8
  constructor() {
8
- this._isActive = false;
9
+ this.isActive = new FlagModel_1.FlagModel();
9
10
  this._currentAction = null;
10
- this.onConfirm = async () => {
11
- if (this.currentAction.onConfirm) {
12
- const promise = this.currentAction.onConfirm();
13
- if (this.currentAction.awaitActions) {
14
- await promise;
15
- }
16
- }
17
- this.closeModal();
11
+ this.openModal = (action) => {
12
+ this._currentAction = action;
13
+ this.isActive.value = true;
14
+ };
15
+ this.closeModal = () => {
16
+ this.isActive.value = false;
17
+ this._currentAction = null;
18
18
  };
19
- this.onReject = async () => {
20
- if (this.currentAction.onReject) {
21
- const promise = this.currentAction.onReject();
22
- if (this.currentAction.awaitActions) {
19
+ this.runAction = async (cb, close = true, awaitAction = false) => {
20
+ if (cb) {
21
+ const promise = cb();
22
+ if (awaitAction) {
23
23
  await promise;
24
24
  }
25
25
  }
26
- this.closeModal();
26
+ if (close) {
27
+ this.closeModal();
28
+ }
27
29
  };
28
30
  mobx_1.makeObservable(this);
29
31
  }
30
- get isActive() {
31
- return this._isActive;
32
- }
33
- set isActive(val) {
34
- this._isActive = val;
35
- }
36
32
  get currentAction() { return this._currentAction; }
37
- get confirmColor() { return this._currentAction.confirmColor; }
38
- get rejectColor() { return this._currentAction.rejectColor; }
39
- openModal(action) {
40
- this._currentAction = action;
41
- this._isActive = true;
42
- }
43
- closeModal() {
44
- this._isActive = false;
45
- }
46
33
  }
47
34
  tslib_1.__decorate([
48
- mobx_1.observable,
49
- tslib_1.__metadata("design:type", Boolean)
50
- ], PromptModalViewModel.prototype, "_isActive", void 0);
35
+ mobx_1.observable.ref,
36
+ tslib_1.__metadata("design:type", Object)
37
+ ], ModalActionModel.prototype, "_currentAction", void 0);
38
+ tslib_1.__decorate([
39
+ mobx_1.action,
40
+ tslib_1.__metadata("design:type", Object)
41
+ ], ModalActionModel.prototype, "openModal", void 0);
51
42
  tslib_1.__decorate([
52
- mobx_1.observable,
43
+ mobx_1.action,
53
44
  tslib_1.__metadata("design:type", Object)
54
- ], PromptModalViewModel.prototype, "_currentAction", void 0);
45
+ ], ModalActionModel.prototype, "closeModal", void 0);
46
+ exports.ModalActionModel = ModalActionModel;
47
+ class PromptModalViewModel extends ModalActionModel {
48
+ constructor() {
49
+ super(...arguments);
50
+ this.onConfirm = () => this.runAction(this.currentAction.onConfirm, true, this.currentAction.awaitActions);
51
+ this.onReject = () => this.runAction(this.currentAction.onConfirm, true, this.currentAction.awaitActions);
52
+ }
53
+ get confirmColor() { return this.currentAction.confirmColor; }
54
+ get rejectColor() { return this.currentAction.rejectColor; }
55
+ }
55
56
  exports.PromptModalViewModel = PromptModalViewModel;
56
57
  //# sourceMappingURL=PromptModalViewModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptModalViewModel.js","sourceRoot":"","sources":["../../src/viewModels/PromptModalViewModel.ts"],"names":[],"mappings":";;;;AAAA,+BAAkD;AAelD,MAAa,oBAAoB;IAO7B;QALQ,cAAS,GAAY,KAAK,CAAC;QAG3B,mBAAc,GAAsB,IAAI,CAAC;QA6BjD,cAAS,GAAG,KAAK,IAAI,EAAE;YACnB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;oBACjC,MAAM,OAAO,CAAC;iBACjB;aACJ;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,aAAQ,GAAG,KAAK,IAAI,EAAE;YAClB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;oBACjC,MAAM,OAAO,CAAC;iBACjB;aACJ;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC;QA9CE,qBAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAEnD,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/D,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7D,SAAS,CAAC,MAAyB;QAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;CAuBJ;AArDG;IADC,iBAAU;;uDACwB;AAGnC;IADC,iBAAU;;4DACsC;AALrD,oDAuDC"}
1
+ {"version":3,"file":"PromptModalViewModel.js","sourceRoot":"","sources":["../../src/viewModels/PromptModalViewModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAC1D,2CAAwC;AAOxC,MAAa,gBAAgB;IAMzB;QALgB,aAAQ,GAAG,IAAI,qBAAS,EAAE,CAAC;QAGnC,mBAAc,GAAM,IAAI,CAAC;QAS1B,cAAS,GAAG,CAAC,MAAS,EAAE,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC;QAGK,eAAU,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC;QAEQ,cAAS,GAAG,KAAK,EAAE,EAA8B,EAAE,KAAK,GAAG,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,EAAE;YAC9F,IAAI,EAAE,EAAE;gBACJ,MAAM,OAAO,GAAG,EAAE,EAAE,CAAC;gBACrB,IAAI,WAAW,EAAE;oBACb,MAAM,OAAO,CAAC;iBACjB;aACJ;YAED,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;QACL,CAAC,CAAC;QA5BE,qBAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;CA0BtD;AAhCG;IADC,iBAAU,CAAC,GAAG;;wDACkB;AASjC;IADC,aAAM;;mDAIL;AAGF;IADC,aAAM;;oDAIL;AAtBN,4CAoCC;AAaD,MAAa,oBAAqB,SAAQ,gBAAmC;IAA7E;;QAKI,cAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtG,aAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACzG,CAAC;IANG,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9D,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;CAI/D;AAPD,oDAOC"}
@@ -1,25 +1,31 @@
1
- export declare class Select<T = any> {
1
+ import { FlagModel, ILabeledFlagModel } from './FlagModel';
2
+ import { ValidatableModel } from './Validatable';
3
+ import { IValueModel } from './ValuesCollector';
4
+ export declare class Select<T = any> extends ValidatableModel<T> implements IValueModel<string> {
2
5
  private readonly _items;
3
6
  private readonly _accessor;
4
7
  private _index;
5
- private _open;
6
- private _error;
8
+ readonly opened: FlagModel;
9
+ private _indexLocked;
10
+ private _initialIndex;
11
+ private readonly _flags;
7
12
  constructor(_items: readonly T[], _accessor: (item: T) => string, initialIndex?: number);
13
+ protected get valueToValidate(): T;
8
14
  get values(): readonly string[];
9
- get open(): boolean;
10
- set open(value: boolean);
11
- get error(): boolean;
12
- set error(value: boolean);
15
+ get flags(): readonly ILabeledFlagModel[];
13
16
  get items(): readonly T[];
17
+ get value(): string;
14
18
  get selectedValue(): string;
19
+ set value(v: string);
15
20
  set selectedValue(value: string);
16
21
  get selectedItem(): T;
17
22
  set selectedItem(item: T);
18
23
  get index(): number;
19
24
  set index(val: number);
20
25
  reset: () => void;
26
+ private createFlags;
21
27
  }
22
28
  export declare class SelectString<T extends string = string> extends Select<T> {
23
29
  constructor(items: readonly T[], initialIndex?: number);
24
30
  }
25
- //# sourceMappingURL=SelectViewModel.d.ts.map
31
+ //# sourceMappingURL=SelectModel.d.ts.map
@@ -0,0 +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,mBAAmB,CAAC;AAGhD,qBAAa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC;IAW/E,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;IAS5B,SAAS,KAAK,eAAe,MAAgC;IAE7D,IACI,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,KAAK,IAIM,MAAM,CAFpB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAiBpB;IAED,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"}