@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.
- package/coverage/clover.xml +312 -61
- package/coverage/coverage-final.json +17 -9
- package/coverage/lcov-report/index.html +33 -18
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +5 -5
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +11 -11
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +39 -9
- package/coverage/lcov-report/src/lazy.light.ts.html +155 -0
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +143 -0
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +22 -22
- package/coverage/lcov-report/src/validation/creditCard.ts.html +4 -4
- package/coverage/lcov-report/src/validation/helpers.ts.html +6 -6
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +6 -6
- package/coverage/lcov-report/src/validation/types.ts.html +2 -2
- package/coverage/lcov-report/src/validation/validators.ts.html +5 -5
- package/coverage/lcov-report/src/validation/wrappers.ts.html +5 -5
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +209 -0
- package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +146 -0
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +530 -0
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +188 -0
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +455 -0
- package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +434 -0
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +329 -0
- package/coverage/lcov-report/src/viewModels/index.html +186 -0
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +239 -0
- package/coverage/lcov.info +619 -66
- package/lib/types.d.ts +5 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +14 -0
- package/lib/types.js.map +1 -1
- package/lib/viewModels/FlagModel.d.ts +19 -0
- package/lib/viewModels/FlagModel.d.ts.map +1 -0
- package/lib/viewModels/FlagModel.js +38 -0
- package/lib/viewModels/FlagModel.js.map +1 -0
- package/lib/viewModels/MultiSelectModel.d.ts +41 -0
- package/lib/viewModels/MultiSelectModel.d.ts.map +1 -0
- package/lib/viewModels/MultiSelectModel.js +150 -0
- package/lib/viewModels/MultiSelectModel.js.map +1 -0
- package/lib/viewModels/NumberModel.d.ts +16 -0
- package/lib/viewModels/NumberModel.d.ts.map +1 -0
- package/lib/viewModels/NumberModel.js +40 -0
- package/lib/viewModels/NumberModel.js.map +1 -0
- package/lib/viewModels/PromptModalViewModel.d.ts +20 -16
- package/lib/viewModels/PromptModalViewModel.d.ts.map +1 -1
- package/lib/viewModels/PromptModalViewModel.js +37 -36
- package/lib/viewModels/PromptModalViewModel.js.map +1 -1
- package/lib/viewModels/{SelectViewModel.d.ts → SelectModel.d.ts} +14 -8
- package/lib/viewModels/SelectModel.d.ts.map +1 -0
- package/lib/viewModels/SelectModel.js +109 -0
- package/lib/viewModels/SelectModel.js.map +1 -0
- package/lib/viewModels/{TextInputViewModel.d.ts → TextModel.d.ts} +10 -9
- package/lib/viewModels/TextModel.d.ts.map +1 -0
- package/lib/viewModels/{TextInputViewModel.js → TextModel.js} +8 -17
- package/lib/viewModels/TextModel.js.map +1 -0
- package/lib/viewModels/Validatable.d.ts +9 -7
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +22 -8
- package/lib/viewModels/Validatable.js.map +1 -1
- package/lib/viewModels/ValuesCollector.d.ts +28 -0
- package/lib/viewModels/ValuesCollector.d.ts.map +1 -0
- package/lib/viewModels/ValuesCollector.js +51 -0
- package/lib/viewModels/ValuesCollector.js.map +1 -0
- package/lib/viewModels/index.d.ts +7 -5
- package/lib/viewModels/index.d.ts.map +1 -1
- package/lib/viewModels/index.js +7 -5
- package/lib/viewModels/index.js.map +1 -1
- package/lib/viewModels/wrappers.d.ts +15 -0
- package/lib/viewModels/wrappers.d.ts.map +1 -0
- package/lib/viewModels/wrappers.js +43 -0
- package/lib/viewModels/wrappers.js.map +1 -0
- package/package.json +1 -1
- package/src/types.ts +16 -0
- package/src/viewModels/FlagModel.ts +43 -0
- package/src/viewModels/MultiSelectModel.ts +150 -0
- package/src/viewModels/NumberModel.ts +36 -0
- package/src/viewModels/PromptModalViewModel.ts +43 -49
- package/src/viewModels/SelectModel.ts +125 -0
- package/src/viewModels/{TextInputViewModel.ts → TextModel.ts} +22 -25
- package/src/viewModels/Validatable.ts +26 -11
- package/src/viewModels/ValuesCollector.ts +84 -0
- package/src/viewModels/__tests__/multiSelect.test.ts +23 -0
- package/src/viewModels/__tests__/select.test.ts +71 -0
- package/src/viewModels/__tests__/wrappers.test.ts +79 -0
- package/src/viewModels/index.ts +9 -5
- package/src/viewModels/wrappers.ts +53 -0
- package/lib/viewModels/RadioButtonGroupViewModel.d.ts +0 -11
- package/lib/viewModels/RadioButtonGroupViewModel.d.ts.map +0 -1
- package/lib/viewModels/RadioButtonGroupViewModel.js +0 -51
- package/lib/viewModels/RadioButtonGroupViewModel.js.map +0 -1
- package/lib/viewModels/RadioButtonViewModel.d.ts +0 -9
- package/lib/viewModels/RadioButtonViewModel.d.ts.map +0 -1
- package/lib/viewModels/RadioButtonViewModel.js +0 -32
- package/lib/viewModels/RadioButtonViewModel.js.map +0 -1
- package/lib/viewModels/SelectViewModel.d.ts.map +0 -1
- package/lib/viewModels/SelectViewModel.js +0 -88
- package/lib/viewModels/SelectViewModel.js.map +0 -1
- package/lib/viewModels/TextInputViewModel.d.ts.map +0 -1
- package/lib/viewModels/TextInputViewModel.js.map +0 -1
- package/src/viewModels/RadioButtonGroupViewModel.ts +0 -47
- package/src/viewModels/RadioButtonViewModel.ts +0 -26
- 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
|
package/lib/types.d.ts.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
18
|
+
onConfirm?: () => Promise<void> | void;
|
|
7
19
|
onReject?: () => Promise<void> | void;
|
|
8
|
-
|
|
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":"
|
|
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
|
-
|
|
6
|
+
const FlagModel_1 = require("./FlagModel");
|
|
7
|
+
class ModalActionModel {
|
|
7
8
|
constructor() {
|
|
8
|
-
this.
|
|
9
|
+
this.isActive = new FlagModel_1.FlagModel();
|
|
9
10
|
this._currentAction = null;
|
|
10
|
-
this.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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.
|
|
20
|
-
if (
|
|
21
|
-
const promise =
|
|
22
|
-
if (
|
|
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
|
-
|
|
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",
|
|
50
|
-
],
|
|
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.
|
|
43
|
+
mobx_1.action,
|
|
53
44
|
tslib_1.__metadata("design:type", Object)
|
|
54
|
-
],
|
|
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,+
|
|
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
|
-
|
|
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
|
-
|
|
6
|
-
private
|
|
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
|
|
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=
|
|
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"}
|