@zajno/common 1.2.7 → 1.3.1
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 +357 -97
- package/coverage/coverage-final.json +19 -11
- package/coverage/lcov-report/index.html +34 -19
- 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 +49 -19
- 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 +57 -21
- 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 +542 -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 +718 -147
- package/lib/timeHelper.d.ts +3 -0
- package/lib/timeHelper.d.ts.map +1 -1
- package/lib/timeHelper.js +3 -0
- package/lib/timeHelper.js.map +1 -1
- package/lib/transitionObserver.d.ts +1 -1
- package/lib/transitionObserver.d.ts.map +1 -1
- package/lib/transitionObserver.js +12 -2
- package/lib/transitionObserver.js.map +1 -1
- 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 +153 -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/PromptModal.d.ts +31 -0
- package/lib/viewModels/PromptModal.d.ts.map +1 -0
- package/lib/viewModels/PromptModal.js +57 -0
- package/lib/viewModels/PromptModal.js.map +1 -0
- 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 -23
- 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/timeHelper.ts +3 -0
- package/src/transitionObserver.ts +14 -2
- package/src/types.ts +16 -0
- package/src/viewModels/FlagModel.ts +43 -0
- package/src/viewModels/MultiSelectModel.ts +154 -0
- package/src/viewModels/NumberModel.ts +36 -0
- package/src/viewModels/PromptModal.ts +65 -0
- package/src/viewModels/SelectModel.ts +125 -0
- package/src/viewModels/{TextInputViewModel.ts → TextModel.ts} +22 -26
- 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/PromptModalViewModel.d.ts +0 -27
- package/lib/viewModels/PromptModalViewModel.d.ts.map +0 -1
- package/lib/viewModels/PromptModalViewModel.js +0 -56
- package/lib/viewModels/PromptModalViewModel.js.map +0 -1
- 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/PromptModalViewModel.ts +0 -71
- package/src/viewModels/RadioButtonGroupViewModel.ts +0 -47
- package/src/viewModels/RadioButtonViewModel.ts +0 -26
- package/src/viewModels/SelectViewModel.ts +0 -88
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
|
|
2
|
+
export interface IValueModel<TValue> {
|
|
3
|
+
value: TValue;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface IValueCollector<TSource, TValue> {
|
|
7
|
+
getValue(source: TSource): TValue;
|
|
8
|
+
setValue(source: TSource, value: TValue): void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type SimpleCollector<T> = {
|
|
12
|
+
get: () => T,
|
|
13
|
+
set: (t: T) => void,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type SimpleCollectorsMap<T> = {
|
|
17
|
+
[P in keyof T]?: SimpleCollector<T[P]>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type ModelCollectorsMap<T> = {
|
|
21
|
+
[P in keyof T]?: IValueModel<T[P]>;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type CollectorsMap<T> = {
|
|
25
|
+
[P in keyof T]?: SimpleCollector<T[P]>;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export class ModelCollector<T extends Object> {
|
|
29
|
+
|
|
30
|
+
private readonly _collectors: SimpleCollectorsMap<T> = { };
|
|
31
|
+
|
|
32
|
+
public addModels(models: ModelCollectorsMap<T>) {
|
|
33
|
+
Object.entries(models).forEach(pair => this.addModel(pair[0] as keyof T, pair[1]));
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public addModel<TKey extends keyof T, TSource extends IValueModel<T[TKey]>>(key: TKey, source: TSource) {
|
|
38
|
+
this._collectors[key] = {
|
|
39
|
+
get: () => source.value,
|
|
40
|
+
set: v => { source.value = v; },
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public addCollector<TKey extends keyof T, TModel, TCollector extends IValueCollector<TModel, T[TKey]>>(key: TKey, model: TModel, collector: TCollector) {
|
|
47
|
+
this._collectors[key] = {
|
|
48
|
+
get: () => collector.getValue(model),
|
|
49
|
+
set: v => collector.setValue(model, v),
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public remove(key: keyof T) {
|
|
56
|
+
delete this._collectors[key];
|
|
57
|
+
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public collect(): T {
|
|
62
|
+
const res = { } as T;
|
|
63
|
+
|
|
64
|
+
Object.entries(this._collectors).forEach(pair => {
|
|
65
|
+
const key = pair[0] as keyof T;
|
|
66
|
+
const collector = pair[1] as SimpleCollector<T[keyof T]>;
|
|
67
|
+
res[key] = collector.get();
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return res;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public populate(data: T) {
|
|
74
|
+
Object.entries(data).forEach(pair => {
|
|
75
|
+
const key = pair[0] as keyof T;
|
|
76
|
+
const value = pair[1] as T[keyof T];
|
|
77
|
+
|
|
78
|
+
const collector = this._collectors[key];
|
|
79
|
+
if (collector) {
|
|
80
|
+
collector.set(value);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { MultiSelect } from '../MultiSelectModel';
|
|
2
|
+
|
|
3
|
+
describe('MultiSelectModel', () => {
|
|
4
|
+
it('consistent', () => {
|
|
5
|
+
expect(() => new MultiSelect(null, null).values).toThrow();
|
|
6
|
+
expect(() => new MultiSelect([1], null).values).toThrow();
|
|
7
|
+
|
|
8
|
+
const items = [1, 2, 3];
|
|
9
|
+
const accessor = (i: number) => `_${i}_`;
|
|
10
|
+
const values = items.map(accessor);
|
|
11
|
+
const initialSelected = [1];
|
|
12
|
+
|
|
13
|
+
const vm = new MultiSelect(items, accessor, ...initialSelected);
|
|
14
|
+
|
|
15
|
+
expect(vm.items).toStrictEqual(items);
|
|
16
|
+
expect(vm.values).toStrictEqual(values);
|
|
17
|
+
expect(vm.selectedIndexes).toStrictEqual(initialSelected);
|
|
18
|
+
|
|
19
|
+
initialSelected.forEach(index => {
|
|
20
|
+
expect(vm.isIndexSelected(index)).toBe(initialSelected.includes(index));
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { configure } from 'mobx';
|
|
2
|
+
import { Select, SelectString } from '../SelectModel';
|
|
3
|
+
|
|
4
|
+
configure({ enforceActions: 'never' });
|
|
5
|
+
|
|
6
|
+
describe('SelectViewModel', () => {
|
|
7
|
+
it('consistent', async () => {
|
|
8
|
+
expect(() => new Select(null, null).values).toThrow();
|
|
9
|
+
expect(() => new Select([1], null).values).toThrow();
|
|
10
|
+
|
|
11
|
+
const emptyVm = new Select([], null);
|
|
12
|
+
expect(emptyVm.selectedValue).toBeNull();
|
|
13
|
+
|
|
14
|
+
const items = [0, 1, 2];
|
|
15
|
+
const values = ['0!', '1!', '2!'];
|
|
16
|
+
const initialIndex = -1;
|
|
17
|
+
const vm = new Select(items, i => `${i}!`, initialIndex);
|
|
18
|
+
|
|
19
|
+
expect(vm.index).toEqual(initialIndex);
|
|
20
|
+
expect(vm.values).toStrictEqual(values);
|
|
21
|
+
expect(vm.items).toStrictEqual(items);
|
|
22
|
+
|
|
23
|
+
expect(vm.selectedItem).toBeUndefined();
|
|
24
|
+
expect(vm.selectedValue).toBeUndefined();
|
|
25
|
+
|
|
26
|
+
vm.selectedItem = 7;
|
|
27
|
+
expect(vm.index).toBe(initialIndex);
|
|
28
|
+
|
|
29
|
+
vm.selectedValue = '123';
|
|
30
|
+
expect(vm.index).toBe(initialIndex);
|
|
31
|
+
|
|
32
|
+
vm.opened.value = true;
|
|
33
|
+
expect(vm.opened.value).toBe(true);
|
|
34
|
+
|
|
35
|
+
vm.index = 1;
|
|
36
|
+
expect(vm.index).toBe(1);
|
|
37
|
+
|
|
38
|
+
expect(vm.flags).toHaveLength(items.length);
|
|
39
|
+
values.forEach((_currentValue, itemIndex) => {
|
|
40
|
+
vm.selectedValue = _currentValue;
|
|
41
|
+
expect(vm.selectedItem).toBe(items[itemIndex]);
|
|
42
|
+
vm.selectedItem = items[itemIndex];
|
|
43
|
+
expect(vm.selectedValue).toBe(_currentValue);
|
|
44
|
+
vm.flags.forEach((f, i) => {
|
|
45
|
+
expect(f.value).toBe(i === itemIndex);
|
|
46
|
+
expect(f.label).toBe(values[i]);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
vm.flags.forEach((f, i) => {
|
|
51
|
+
f.value = true;
|
|
52
|
+
vm.flags.forEach((ff, ii) => {
|
|
53
|
+
expect(ff.value).toBe(i === ii);
|
|
54
|
+
});
|
|
55
|
+
expect(vm.index).toBe(i);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
vm.selectedItem = items[1];
|
|
59
|
+
expect(vm.selectedValue).toBe(values[1]);
|
|
60
|
+
|
|
61
|
+
vm.reset();
|
|
62
|
+
expect(vm.index).toBe(initialIndex);
|
|
63
|
+
|
|
64
|
+
expect(vm.error).toBeNull();
|
|
65
|
+
|
|
66
|
+
await expect(vm.validate()).resolves.toBeTruthy();
|
|
67
|
+
|
|
68
|
+
const vmS = new SelectString(values);
|
|
69
|
+
expect(vmS.values).toStrictEqual(values);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { inject, withLabel, mixinLabel } from '../wrappers';
|
|
2
|
+
import { NumberModel } from '../NumberModel';
|
|
3
|
+
import { FlagModel } from '../FlagModel';
|
|
4
|
+
|
|
5
|
+
describe('labeled', () => {
|
|
6
|
+
test('consistency', () => {
|
|
7
|
+
|
|
8
|
+
const initial = 0;
|
|
9
|
+
const num = new NumberModel(initial);
|
|
10
|
+
|
|
11
|
+
expect(num.value).toBe(initial);
|
|
12
|
+
|
|
13
|
+
const label = { str: '123' };
|
|
14
|
+
const labeledNum = withLabel(new NumberModel(), () => label);
|
|
15
|
+
|
|
16
|
+
expect(labeledNum.label.str).toEqual(label.str);
|
|
17
|
+
|
|
18
|
+
label.str = 'abc';
|
|
19
|
+
expect(labeledNum.label).toStrictEqual(label);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe('inject', () => {
|
|
24
|
+
test('consistency/number', () => {
|
|
25
|
+
const num = new NumberModel();
|
|
26
|
+
|
|
27
|
+
num.value = 123;
|
|
28
|
+
expect(num.value).toBe(123);
|
|
29
|
+
|
|
30
|
+
inject(num, { value: 321 });
|
|
31
|
+
|
|
32
|
+
expect(num.value).toBe(321);
|
|
33
|
+
|
|
34
|
+
num.value = 123;
|
|
35
|
+
expect(num.value).toBe(123);
|
|
36
|
+
|
|
37
|
+
let external: number = 0;
|
|
38
|
+
inject(num, {
|
|
39
|
+
get value() { return external; },
|
|
40
|
+
set value(v) { external = v; },
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
expect(num.value).toBe(0);
|
|
44
|
+
num.value = 111;
|
|
45
|
+
expect(num.value).toBe(111);
|
|
46
|
+
expect(external).toBe(111);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('consistency/flag', () => {
|
|
50
|
+
const flag = new FlagModel();
|
|
51
|
+
|
|
52
|
+
flag.value = true;
|
|
53
|
+
expect(flag.value).toBe(true);
|
|
54
|
+
|
|
55
|
+
inject(flag, { value: false });
|
|
56
|
+
|
|
57
|
+
expect(flag.value).toBe(false);
|
|
58
|
+
|
|
59
|
+
flag.value = true;
|
|
60
|
+
expect(flag.value).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe('labelize', () => {
|
|
65
|
+
test('consistency', () => {
|
|
66
|
+
|
|
67
|
+
const Mixin = mixinLabel(FlagModel);
|
|
68
|
+
|
|
69
|
+
expect(() => new Mixin()).not.toThrow();
|
|
70
|
+
|
|
71
|
+
let label = '123';
|
|
72
|
+
const vm = new Mixin(() => label, false);
|
|
73
|
+
expect(vm.value).toBe(false);
|
|
74
|
+
expect(vm.label).toBe(label);
|
|
75
|
+
|
|
76
|
+
label = '312';
|
|
77
|
+
expect(vm.label).toBe(label);
|
|
78
|
+
});
|
|
79
|
+
});
|
package/src/viewModels/index.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
export * from './PromptModalViewModel';
|
|
2
|
-
export * from './RadioButtonGroupViewModel';
|
|
3
|
-
export * from './RadioButtonViewModel';
|
|
4
|
-
export * from './SelectViewModel';
|
|
5
|
-
export * from './TextInputViewModel';
|
|
6
1
|
export * from './Validatable';
|
|
2
|
+
export * from './TextModel';
|
|
3
|
+
export * from './FlagModel';
|
|
4
|
+
export * from './NumberModel';
|
|
5
|
+
export * from './wrappers';
|
|
6
|
+
|
|
7
|
+
export * from './SelectModel';
|
|
8
|
+
export * from './MultiSelectModel';
|
|
9
|
+
|
|
10
|
+
export * from './PromptModal';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Getter } from '../types';
|
|
2
|
+
import { IValueModel } from './ValuesCollector';
|
|
3
|
+
|
|
4
|
+
export interface ILabel<T> {
|
|
5
|
+
readonly label: T;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function withLabel<T, TModel extends IValueModel<T>, TLabel = string>(model: TModel, label: Getter<TLabel>) {
|
|
9
|
+
const _label = label;
|
|
10
|
+
Object.defineProperty(model, 'label', {
|
|
11
|
+
configurable: true,
|
|
12
|
+
enumerable: false,
|
|
13
|
+
get() { return Getter.getValue(_label); },
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return model as TModel & ILabel<TLabel>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function inject<T, TModel extends IValueModel<T>>(model: TModel, source: IValueModel<T>) {
|
|
20
|
+
Object.defineProperty(model, 'value', {
|
|
21
|
+
configurable: true,
|
|
22
|
+
enumerable: false,
|
|
23
|
+
get() { return source.value; },
|
|
24
|
+
set(v: T) { source.value = v; },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
return model;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function wrap<T, TModel extends IValueModel<T>, TRes>(model: TModel, getter: (m: TModel) => TRes, setter: (v: TRes, model: TModel) => void): IValueModel<TRes> {
|
|
31
|
+
return {
|
|
32
|
+
get value() { return getter(model); },
|
|
33
|
+
set value(v: TRes) { setter(v, model); },
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
type LabeledModel<T, TModel extends IValueModel<T>, TLabel = string> = TModel & ILabel<TLabel>;
|
|
38
|
+
|
|
39
|
+
interface LabeledModelCtor<T, TModel extends IValueModel<T>, TLabel = string> {
|
|
40
|
+
new (label?: Getter<TLabel>, initial?: T): LabeledModel<T, TModel, TLabel>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function mixinLabel<T, TModel extends IValueModel<T>, TLabel = string>(Superclass: new (initial?: T) => TModel): LabeledModelCtor<T, TModel, TLabel> {
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
class Sub extends Superclass {
|
|
46
|
+
constructor(label: Getter<TLabel>, initial?: T) {
|
|
47
|
+
super(initial);
|
|
48
|
+
withLabel(this, label);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return Sub as any;
|
|
53
|
+
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export declare type PromptModalAction = {
|
|
2
|
-
title: string;
|
|
3
|
-
message: string;
|
|
4
|
-
confirmText: string;
|
|
5
|
-
rejectText?: string;
|
|
6
|
-
onConfirm: () => Promise<void> | void;
|
|
7
|
-
onReject?: () => Promise<void> | void;
|
|
8
|
-
modalImage?: number;
|
|
9
|
-
confirmColor?: string;
|
|
10
|
-
rejectColor?: string;
|
|
11
|
-
awaitActions?: boolean;
|
|
12
|
-
};
|
|
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;
|
|
20
|
-
get confirmColor(): string;
|
|
21
|
-
get rejectColor(): string;
|
|
22
|
-
openModal(action: PromptModalAction): void;
|
|
23
|
-
closeModal(): void;
|
|
24
|
-
onConfirm: () => Promise<void>;
|
|
25
|
-
onReject: () => Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=PromptModalViewModel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PromptModalViewModel = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const mobx_1 = require("mobx");
|
|
6
|
-
class PromptModalViewModel {
|
|
7
|
-
constructor() {
|
|
8
|
-
this._isActive = false;
|
|
9
|
-
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();
|
|
18
|
-
};
|
|
19
|
-
this.onReject = async () => {
|
|
20
|
-
if (this.currentAction.onReject) {
|
|
21
|
-
const promise = this.currentAction.onReject();
|
|
22
|
-
if (this.currentAction.awaitActions) {
|
|
23
|
-
await promise;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
this.closeModal();
|
|
27
|
-
};
|
|
28
|
-
mobx_1.makeObservable(this);
|
|
29
|
-
}
|
|
30
|
-
get isActive() {
|
|
31
|
-
return this._isActive;
|
|
32
|
-
}
|
|
33
|
-
set isActive(val) {
|
|
34
|
-
this._isActive = val;
|
|
35
|
-
}
|
|
36
|
-
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
|
-
}
|
|
47
|
-
tslib_1.__decorate([
|
|
48
|
-
mobx_1.observable,
|
|
49
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
50
|
-
], PromptModalViewModel.prototype, "_isActive", void 0);
|
|
51
|
-
tslib_1.__decorate([
|
|
52
|
-
mobx_1.observable,
|
|
53
|
-
tslib_1.__metadata("design:type", Object)
|
|
54
|
-
], PromptModalViewModel.prototype, "_currentAction", void 0);
|
|
55
|
-
exports.PromptModalViewModel = PromptModalViewModel;
|
|
56
|
-
//# sourceMappingURL=PromptModalViewModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,11 +0,0 @@
|
|
|
1
|
-
import { RadioButtonViewModel } from './RadioButtonViewModel';
|
|
2
|
-
export declare class RadioButtonGroup {
|
|
3
|
-
private _items;
|
|
4
|
-
private _activeRadioButton;
|
|
5
|
-
constructor(items: string[]);
|
|
6
|
-
onSelect: (label: string) => void;
|
|
7
|
-
setDefaultChecked(): void;
|
|
8
|
-
get items(): RadioButtonViewModel[];
|
|
9
|
-
get activeRadioButton(): RadioButtonViewModel;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=RadioButtonGroupViewModel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButtonGroupViewModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/RadioButtonGroupViewModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAA8B;IAG5C,OAAO,CAAC,kBAAkB,CAA8B;gBAE5C,KAAK,EAAE,MAAM,EAAE;IAS3B,QAAQ,UAAW,MAAM,UAKvB;IAEF,iBAAiB;IAQjB,IAAI,KAAK,2BAER;IAED,IAAI,iBAAiB,yBAOpB;CACJ"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RadioButtonGroup = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const mobx_1 = require("mobx");
|
|
6
|
-
const RadioButtonViewModel_1 = require("./RadioButtonViewModel");
|
|
7
|
-
class RadioButtonGroup {
|
|
8
|
-
constructor(items) {
|
|
9
|
-
this._items = [];
|
|
10
|
-
this._activeRadioButton = null;
|
|
11
|
-
this.onSelect = (label) => {
|
|
12
|
-
this._items.forEach(item => {
|
|
13
|
-
const checked = item.label === label;
|
|
14
|
-
item.checked = checked;
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
mobx_1.makeObservable(this);
|
|
18
|
-
items.forEach(item => {
|
|
19
|
-
this._items.push(new RadioButtonViewModel_1.RadioButtonViewModel(item));
|
|
20
|
-
});
|
|
21
|
-
this.setDefaultChecked();
|
|
22
|
-
}
|
|
23
|
-
setDefaultChecked() {
|
|
24
|
-
this._items.forEach((item, index) => {
|
|
25
|
-
if (item.label === 'ALL' || index === 0) {
|
|
26
|
-
item.checked = true;
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
get items() {
|
|
31
|
-
return this._items;
|
|
32
|
-
}
|
|
33
|
-
get activeRadioButton() {
|
|
34
|
-
this._items.forEach(item => {
|
|
35
|
-
if (item.checked) {
|
|
36
|
-
this._activeRadioButton = item;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return this._activeRadioButton;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
tslib_1.__decorate([
|
|
43
|
-
mobx_1.observable,
|
|
44
|
-
tslib_1.__metadata("design:type", Array)
|
|
45
|
-
], RadioButtonGroup.prototype, "_items", void 0);
|
|
46
|
-
tslib_1.__decorate([
|
|
47
|
-
mobx_1.observable,
|
|
48
|
-
tslib_1.__metadata("design:type", RadioButtonViewModel_1.RadioButtonViewModel)
|
|
49
|
-
], RadioButtonGroup.prototype, "_activeRadioButton", void 0);
|
|
50
|
-
exports.RadioButtonGroup = RadioButtonGroup;
|
|
51
|
-
//# sourceMappingURL=RadioButtonGroupViewModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButtonGroupViewModel.js","sourceRoot":"","sources":["../../src/viewModels/RadioButtonGroupViewModel.ts"],"names":[],"mappings":";;;;AAAA,+BAAkD;AAClD,iEAA8D;AAE9D,MAAa,gBAAgB;IAOzB,YAAY,KAAe;QALnB,WAAM,GAA2B,EAAE,CAAC;QAGpC,uBAAkB,GAAyB,IAAI,CAAC;QAWxD,aAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAbE,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,2CAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IASD,iBAAiB;QACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;gBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,iBAAiB;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;CACJ;AAzCG;IADC,iBAAU;;gDACiC;AAG5C;IADC,iBAAU;sCACiB,2CAAoB;4DAAQ;AAL5D,4CA2CC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButtonViewModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/RadioButtonViewModel.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;gBACjB,KAAK,EAAE,MAAM;IAKzB,OAAO,CAAC,QAAQ,CAAkB;IAGlC,OAAO,CAAC,MAAM,CAAgB;IAE9B,IAAI,OAAO,YAEV;IAED,IAAI,KAAK,WAER;IAED,IAAI,OAAO,CAAC,OAAO,SAAA,EAElB;CACJ"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RadioButtonViewModel = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const mobx_1 = require("mobx");
|
|
6
|
-
class RadioButtonViewModel {
|
|
7
|
-
constructor(label) {
|
|
8
|
-
this._checked = false;
|
|
9
|
-
this._label = null;
|
|
10
|
-
mobx_1.makeObservable(this);
|
|
11
|
-
this._label = label;
|
|
12
|
-
}
|
|
13
|
-
get checked() {
|
|
14
|
-
return this._checked;
|
|
15
|
-
}
|
|
16
|
-
get label() {
|
|
17
|
-
return this._label;
|
|
18
|
-
}
|
|
19
|
-
set checked(checked) {
|
|
20
|
-
this._checked = checked;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
tslib_1.__decorate([
|
|
24
|
-
mobx_1.observable,
|
|
25
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
26
|
-
], RadioButtonViewModel.prototype, "_checked", void 0);
|
|
27
|
-
tslib_1.__decorate([
|
|
28
|
-
mobx_1.observable,
|
|
29
|
-
tslib_1.__metadata("design:type", String)
|
|
30
|
-
], RadioButtonViewModel.prototype, "_label", void 0);
|
|
31
|
-
exports.RadioButtonViewModel = RadioButtonViewModel;
|
|
32
|
-
//# sourceMappingURL=RadioButtonViewModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButtonViewModel.js","sourceRoot":"","sources":["../../src/viewModels/RadioButtonViewModel.ts"],"names":[],"mappings":";;;;AAAA,+BAAkD;AAElD,MAAa,oBAAoB;IAC7B,YAAY,KAAa;QAKjB,aAAQ,GAAY,KAAK,CAAC;QAG1B,WAAM,GAAW,IAAI,CAAC;QAP1B,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAOD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO;QACf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;CACJ;AAhBG;IADC,iBAAU;;sDACuB;AAGlC;IADC,iBAAU;;oDACmB;AATlC,oDAsBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectViewModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/SelectViewModel.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM,CAAC,CAAC,GAAG,GAAG;IAWnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAV9B,OAAO,CAAC,MAAM,CAAqB;IAGnC,OAAO,CAAC,KAAK,CAAsB;IAGnC,OAAO,CAAC,MAAM,CAAsB;gBAGf,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC/C,YAAY,GAAE,MAAkB;IAMpC,IACI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED,IAAI,IAAI,IAIQ,OAAO,CAFtB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAEtB;IAED,IAAI,KAAK,IAIQ,OAAO,CAFvB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,IAAI,KAAK,iBAER;IAED,IAAI,aAAa,IAKQ,MAAM,CAF9B;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAK9B;IAED,IAAI,YAAY,IAAI,CAAC,CAEpB;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,EAKvB;IAGD,IAAI,KAAK,IAIO,MAAM,CAFrB;IAED,IAAI,KAAK,CAAE,GAAG,EAAE,MAAM,EAErB;IAED,KAAK,aAEH;CACL;AAED,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"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SelectString = exports.Select = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const mobx_1 = require("mobx");
|
|
6
|
-
class Select {
|
|
7
|
-
constructor(_items, _accessor, initialIndex = undefined) {
|
|
8
|
-
this._items = _items;
|
|
9
|
-
this._accessor = _accessor;
|
|
10
|
-
this._index = undefined;
|
|
11
|
-
this._open = undefined;
|
|
12
|
-
this._error = undefined;
|
|
13
|
-
this.reset = () => {
|
|
14
|
-
this._index = 0;
|
|
15
|
-
};
|
|
16
|
-
mobx_1.makeObservable(this);
|
|
17
|
-
this._index = initialIndex;
|
|
18
|
-
}
|
|
19
|
-
get values() {
|
|
20
|
-
return this._items.map(i => this._accessor(i));
|
|
21
|
-
}
|
|
22
|
-
get open() {
|
|
23
|
-
return this._open;
|
|
24
|
-
}
|
|
25
|
-
set open(value) {
|
|
26
|
-
this._open = value;
|
|
27
|
-
}
|
|
28
|
-
get error() {
|
|
29
|
-
return this._error;
|
|
30
|
-
}
|
|
31
|
-
set error(value) {
|
|
32
|
-
this._error = value;
|
|
33
|
-
}
|
|
34
|
-
get items() {
|
|
35
|
-
return this._items;
|
|
36
|
-
}
|
|
37
|
-
get selectedValue() {
|
|
38
|
-
const vs = this.values;
|
|
39
|
-
return vs.length ? vs[this._index] : null;
|
|
40
|
-
}
|
|
41
|
-
set selectedValue(value) {
|
|
42
|
-
const index = this.values.indexOf(value);
|
|
43
|
-
if (index >= 0) {
|
|
44
|
-
this.index = index;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
get selectedItem() {
|
|
48
|
-
return this._items[this._index];
|
|
49
|
-
}
|
|
50
|
-
set selectedItem(item) {
|
|
51
|
-
const index = this._items.indexOf(item);
|
|
52
|
-
if (index >= 0) {
|
|
53
|
-
this.index = index;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// get and set selected index
|
|
57
|
-
get index() {
|
|
58
|
-
return this._index;
|
|
59
|
-
}
|
|
60
|
-
set index(val) {
|
|
61
|
-
this._index = val;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
tslib_1.__decorate([
|
|
65
|
-
mobx_1.observable,
|
|
66
|
-
tslib_1.__metadata("design:type", Number)
|
|
67
|
-
], Select.prototype, "_index", void 0);
|
|
68
|
-
tslib_1.__decorate([
|
|
69
|
-
mobx_1.observable,
|
|
70
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
71
|
-
], Select.prototype, "_open", void 0);
|
|
72
|
-
tslib_1.__decorate([
|
|
73
|
-
mobx_1.observable,
|
|
74
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
75
|
-
], Select.prototype, "_error", void 0);
|
|
76
|
-
tslib_1.__decorate([
|
|
77
|
-
mobx_1.computed,
|
|
78
|
-
tslib_1.__metadata("design:type", Array),
|
|
79
|
-
tslib_1.__metadata("design:paramtypes", [])
|
|
80
|
-
], Select.prototype, "values", null);
|
|
81
|
-
exports.Select = Select;
|
|
82
|
-
class SelectString extends Select {
|
|
83
|
-
constructor(items, initialIndex = 0) {
|
|
84
|
-
super(items, v => v, initialIndex);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.SelectString = SelectString;
|
|
88
|
-
//# sourceMappingURL=SelectViewModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectViewModel.js","sourceRoot":"","sources":["../../src/viewModels/SelectViewModel.ts"],"names":[],"mappings":";;;;AAAA,+BAA4D;AAE5D,MAAa,MAAM;IAUf,YACqB,MAAoB,EACpB,SAA8B,EAC/C,eAAuB,SAAS;QAFf,WAAM,GAAN,MAAM,CAAc;QACpB,cAAS,GAAT,SAAS,CAAqB;QAV3C,WAAM,GAAW,SAAS,CAAC;QAG3B,UAAK,GAAY,SAAS,CAAC;QAG3B,WAAM,GAAY,SAAS,CAAC;QAoEpC,UAAK,GAAG,GAAG,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC;QA/DE,qBAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;IAC/B,CAAC;IAGD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,CAAC,KAAc;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,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,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,aAAa;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;IACL,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,YAAY,CAAC,IAAO;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAE,GAAW;QAClB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACtB,CAAC;CAKJ;AA7EG;IADC,iBAAU;;sCACwB;AAGnC;IADC,iBAAU;;qCACwB;AAGnC;IADC,iBAAU;;sCACyB;AAYpC;IADC,eAAQ;;;oCAGR;AAtBL,wBA+EC;AAED,MAAa,YAAwC,SAAQ,MAAS;IAClE,YAAY,KAAmB,EAAE,eAAuB,CAAC;QACrD,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;CACJ;AAJD,oCAIC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextInputViewModel.d.ts","sourceRoot":"","sources":["../../src/viewModels/TextInputViewModel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEvE,oBAAY,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC;AAEnD,oBAAY,eAAe,GAAG;IAC1B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAkBF,qBAAa,IAAI;IAEb,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAKnF,IAAI,KAAK,WAA0B;CACtC;AAED,qBAAa,WAAY,SAAQ,oBAAoB;IAEjD,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,CAAiB;gBAErC,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,WAAyB;IAEtD,OAAO,CAAC,MAAM;IAKd,KAAK;CAMR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextInputViewModel.js","sourceRoot":"","sources":["../../src/viewModels/TextInputViewModel.ts"],"names":[],"mappings":"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"}
|