jpf-mobx 1.0.123 → 1.0.125
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/dist/observable.js +37 -32
- package/dist/observable.js.map +1 -1
- package/package.json +2 -2
- package/src/observable.ts +56 -46
package/dist/observable.js
CHANGED
|
@@ -15,14 +15,9 @@ export function runInAction(fn) {
|
|
|
15
15
|
return mobxRunInAction(fn);
|
|
16
16
|
}
|
|
17
17
|
export function observableValue(value, setter, options) {
|
|
18
|
-
|
|
19
|
-
options.deep = false;
|
|
20
|
-
}
|
|
18
|
+
setDefaultOptions(options, { deep: false });
|
|
21
19
|
const observableValue = mobxObservable.box(value || null, options);
|
|
22
|
-
|
|
23
|
-
return observableValue.get();
|
|
24
|
-
};
|
|
25
|
-
result.setValue = (newValue) => {
|
|
20
|
+
observableValue.setValue = (newValue) => {
|
|
26
21
|
if (newValue === undefined) {
|
|
27
22
|
newValue = null;
|
|
28
23
|
}
|
|
@@ -33,66 +28,65 @@ export function observableValue(value, setter, options) {
|
|
|
33
28
|
observableValue["set"](newValue);
|
|
34
29
|
}
|
|
35
30
|
};
|
|
36
|
-
|
|
31
|
+
observableValue.setValueInAction = (newValue) => {
|
|
37
32
|
runInAction(() => {
|
|
38
|
-
|
|
33
|
+
observableValue.setValue(newValue);
|
|
39
34
|
});
|
|
40
35
|
};
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
36
|
+
observableValue.setInternal = (value) => {
|
|
37
|
+
if (value === undefined) {
|
|
38
|
+
value = null;
|
|
44
39
|
}
|
|
45
|
-
observableValue["set"](
|
|
40
|
+
observableValue["set"](value);
|
|
46
41
|
};
|
|
47
|
-
|
|
42
|
+
observableValue.setInternalInAction = (value) => {
|
|
48
43
|
runInAction(() => {
|
|
49
|
-
|
|
44
|
+
observableValue.setInternal(value);
|
|
50
45
|
});
|
|
51
46
|
};
|
|
52
|
-
|
|
47
|
+
observableValue.subscribe = (effect) => {
|
|
53
48
|
return mobxReaction(() => {
|
|
54
49
|
return unwrap(observableValue);
|
|
55
50
|
}, (value, prev, r) => {
|
|
56
51
|
effect(value, prev, r);
|
|
57
52
|
});
|
|
58
53
|
};
|
|
59
|
-
return
|
|
54
|
+
return observableValue;
|
|
60
55
|
}
|
|
61
56
|
export function observableArray(initialValues, setter, options) {
|
|
57
|
+
options = setDefaultOptions(options, { deep: false });
|
|
62
58
|
const observableArray = mobxObservable.array(initialValues || null, options);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
result.setItems = (items) => {
|
|
67
|
-
if (items === undefined) {
|
|
68
|
-
items = [];
|
|
59
|
+
observableArray.setItems = (newValue) => {
|
|
60
|
+
if (newValue === undefined) {
|
|
61
|
+
newValue = [];
|
|
69
62
|
}
|
|
70
63
|
if (setter) {
|
|
71
|
-
setter(
|
|
64
|
+
setter(newValue, observableArray);
|
|
72
65
|
}
|
|
73
66
|
else {
|
|
74
|
-
observableArray["replace"](
|
|
67
|
+
observableArray["replace"](newValue);
|
|
75
68
|
}
|
|
76
69
|
};
|
|
77
|
-
|
|
70
|
+
observableArray.setItemsInAction = (newValue) => {
|
|
78
71
|
runInAction(() => {
|
|
79
|
-
|
|
72
|
+
observableArray.setItems(newValue);
|
|
80
73
|
});
|
|
81
74
|
};
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
observableArray.setInternal = observableArray["replace"];
|
|
76
|
+
observableArray.setInternalInAction = (items) => {
|
|
84
77
|
runInAction(() => {
|
|
85
|
-
|
|
78
|
+
observableArray.setInternal(items);
|
|
86
79
|
});
|
|
87
80
|
};
|
|
88
|
-
|
|
81
|
+
observableArray.get = observableArray["toJSON"];
|
|
82
|
+
observableArray.subscribe = (effect) => {
|
|
89
83
|
return mobxReaction(() => {
|
|
90
84
|
return unwrap(observableArray);
|
|
91
85
|
}, (value, prev, r) => {
|
|
92
86
|
effect(value, prev, r);
|
|
93
87
|
});
|
|
94
88
|
};
|
|
95
|
-
return
|
|
89
|
+
return observableArray;
|
|
96
90
|
}
|
|
97
91
|
export function observableMap(initialValues, options) {
|
|
98
92
|
var defaultOptions = { deep: false };
|
|
@@ -141,4 +135,15 @@ export function unwrap(value) {
|
|
|
141
135
|
}
|
|
142
136
|
return value;
|
|
143
137
|
}
|
|
138
|
+
function setDefaultOptions(target, source) {
|
|
139
|
+
if (source) {
|
|
140
|
+
target = target || {};
|
|
141
|
+
Object.keys(source).forEach((key) => {
|
|
142
|
+
if (!target.hasOwnProperty(key)) {
|
|
143
|
+
target[key] = source[key];
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
return target;
|
|
148
|
+
}
|
|
144
149
|
//# sourceMappingURL=observable.js.map
|
package/dist/observable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,IAAI,cAAc,EAC5B,QAAQ,IAAI,YAAY,EAExB,UAAU,IAAI,cAAc,EAE5B,iBAAiB,IAAI,qBAAqB,EAC1C,iBAAiB,IAAI,qBAAqB,EAC1C,eAAe,IAAI,mBAAmB,EACtC,eAAe,IAAI,mBAAmB,EACtC,WAAW,IAAI,eAAe,EAC9B,QAAQ,IAAI,YAAY,EAK3B,MAAM,MAAM,CAAC;AAKd,MAAM,UAAU,QAAQ,CAAY,IAAqB,EAAE,OAA8C;IACrG,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,QAA4D,CAAC;IAE/E,SAAS,CAAC,SAAS,GAAG,CAAC,MAAyE,EAAE,EAAE;QAChG,OAAO,YAAY,CACf,GAAG,EAAE;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,EACD,CAAC,KAAgB,EAAE,IAAe,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CACJ,CAAC;IACN,CAAC,CAAA;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,EAAW;IACtC,OAAO,eAAe,CAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,eAAe,CAA2B,KAAqB,EAAE,MAA0G,EAAE,OAAqC;
|
|
1
|
+
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,IAAI,cAAc,EAC5B,QAAQ,IAAI,YAAY,EAExB,UAAU,IAAI,cAAc,EAE5B,iBAAiB,IAAI,qBAAqB,EAC1C,iBAAiB,IAAI,qBAAqB,EAC1C,eAAe,IAAI,mBAAmB,EACtC,eAAe,IAAI,mBAAmB,EACtC,WAAW,IAAI,eAAe,EAC9B,QAAQ,IAAI,YAAY,EAK3B,MAAM,MAAM,CAAC;AAKd,MAAM,UAAU,QAAQ,CAAY,IAAqB,EAAE,OAA8C;IACrG,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,QAA4D,CAAC;IAE/E,SAAS,CAAC,SAAS,GAAG,CAAC,MAAyE,EAAE,EAAE;QAChG,OAAO,YAAY,CACf,GAAG,EAAE;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,EACD,CAAC,KAAgB,EAAE,IAAe,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CACJ,CAAC;IACN,CAAC,CAAA;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,EAAW;IACtC,OAAO,eAAe,CAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,eAAe,CAA2B,KAAqB,EAAE,MAA0G,EAAE,OAAqC;IAE9N,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAkE,CAAC;IAEpI,eAAe,CAAC,QAAQ,GAAG,CAAC,QAAiB,EAAE,EAAE;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,CAAC;IAEF,eAAe,CAAC,gBAAgB,GAAG,CAAC,QAAwB,EAAE,EAAE;QAC5D,WAAW,CAAC,GAAG,EAAE;YACb,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,eAAe,CAAC,WAAW,GAAG,CAAC,KAAoB,EAAE,EAAE;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,eAAe,CAAC,mBAAmB,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC3D,WAAW,CAAC,GAAG,EAAE;YACb,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,eAAe,CAAC,SAAS,GAAG,CAAC,MAAmE,EAAE,EAAE;QAChG,OAAO,YAAY,CACf,GAAG,EAAE;YACD,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC,EACD,CAAC,KAAa,EAAE,IAAY,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe,CAAsC,aAAmC,EAAE,MAAyG,EAAE,OAAqC;IAEtP,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,OAAO,CAAiE,CAAC;IAE7I,eAAe,CAAC,QAAQ,GAAG,CAAC,QAAiB,EAAE,EAAE;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,EAAoB,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACL,CAAC,CAAC;IAEF,eAAe,CAAC,gBAAgB,GAAG,CAAC,QAAiB,EAAE,EAAE;QACrD,WAAW,CAAC,GAAG,EAAE;YACb,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,eAAe,CAAC,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEzD,eAAe,CAAC,mBAAmB,GAAG,CAAC,KAAmB,EAAE,EAAE;QAC1D,WAAW,CAAC,GAAG,EAAE;YACb,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEhD,eAAe,CAAC,SAAS,GAAG,CAAC,MAA+E,EAAE,EAAE;QAC5G,OAAO,YAAY,CACf,GAAG,EAAE;YACD,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC,EACD,CAAC,KAAmB,EAAE,IAAkB,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAA0B,aAA4D,EAAE,OAAqC;IAEtJ,IAAI,cAAc,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACrC,OAAO,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IAE5C,OAAO,cAAc,CAAC,GAAG,CAAc,aAAa,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAc,aAAsD,EAAE,OAAqC;IAEpI,IAAI,cAAc,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACrC,OAAO,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IAE5C,OAAO,cAAc,CAAC,GAAG,CAAQ,aAAa,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU,CAAS,KAAU;IACzC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAS,KAAU;IAC7C,OAAO,cAAc,CAAC,KAAK,CAAC;WACrB,qBAAqB,CAAC,KAAK,CAAC;WAC5B,qBAAqB,CAAC,KAAK,CAAC;WAC5B,mBAAmB,CAAC,KAAK,CAAC;WAC1B,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAK;IACnC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAK;IACnC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAc,KAAK;IAC9C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,eAAe,CAAQ,KAAK;IACxC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,MAAM,CAAS,KAA0D;IACrF,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAQ,KAAsC,CAAC,GAAG,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,KAAK,EAAmB,CAAC;IAC1C,CAAC;IAED,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAkB,CAAC;IAC3C,CAAC;IAED,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAkB,CAAC;IAC3C,CAAC;IAED,OAAO,KAAe,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CAAW,MAAgB,EAAE,MAAgB;IACnE,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,GAAG,MAAM,IAAI,EAAc,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jpf-mobx",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.125",
|
|
4
4
|
"description": "Javascript Presentation Foundation with mobx state management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mvvm",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"tscVersion": "tsc -v"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"jpf": "5.0.
|
|
45
|
+
"jpf": "5.0.16",
|
|
46
46
|
"mobx": "6.12.3"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
package/src/observable.ts
CHANGED
|
@@ -42,92 +42,89 @@ export function runInAction<T>(fn: () => T): T {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export function observableValue<TValue, TSetter = TValue>(value?: TValue | null, setter?: (value: TSetter, observableValue: observableInterfaces.IObservableValue<TValue, TSetter>) => void, options?: mobxCreateObservableOptions): observableInterfaces.IObservableValue<TValue, TSetter> {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
const observableValue = mobxObservable.box(value || null, options); // as any as observableInterfaces.IObservableValue<TValue, TSetter>;
|
|
45
|
+
//Make sure deep is set to false if not provided
|
|
46
|
+
setDefaultOptions(options, { deep: false });
|
|
49
47
|
|
|
50
|
-
const
|
|
51
|
-
return observableValue.get();
|
|
52
|
-
}
|
|
48
|
+
const observableValue = mobxObservable.box(value || null, options) as any as observableInterfaces.IObservableValue<TValue, TSetter>;
|
|
53
49
|
|
|
54
|
-
|
|
50
|
+
observableValue.setValue = (newValue: TSetter) => {
|
|
55
51
|
if (newValue === undefined) {
|
|
56
52
|
newValue = null;
|
|
57
53
|
}
|
|
58
54
|
if (setter) {
|
|
59
|
-
setter(newValue, observableValue
|
|
55
|
+
setter(newValue, observableValue);
|
|
60
56
|
} else {
|
|
61
|
-
observableValue["set"](newValue
|
|
57
|
+
observableValue["set"](newValue);
|
|
62
58
|
}
|
|
63
59
|
};
|
|
64
60
|
|
|
65
|
-
|
|
61
|
+
observableValue.setValueInAction = (newValue: TSetter | null) => {
|
|
66
62
|
runInAction(() => {
|
|
67
|
-
|
|
63
|
+
observableValue.setValue(newValue);
|
|
68
64
|
});
|
|
69
65
|
};
|
|
70
66
|
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
67
|
+
observableValue.setInternal = (value: TValue | null) => {
|
|
68
|
+
if (value === undefined) {
|
|
69
|
+
value = null;
|
|
74
70
|
}
|
|
75
|
-
observableValue["set"](
|
|
76
|
-
}
|
|
71
|
+
observableValue["set"](value);
|
|
72
|
+
};
|
|
77
73
|
|
|
78
|
-
|
|
74
|
+
observableValue.setInternalInAction = (value: TValue | null) => {
|
|
79
75
|
runInAction(() => {
|
|
80
|
-
|
|
81
|
-
})
|
|
82
|
-
}
|
|
76
|
+
observableValue.setInternal(value);
|
|
77
|
+
});
|
|
78
|
+
};
|
|
83
79
|
|
|
84
|
-
|
|
80
|
+
observableValue.subscribe = (effect: (arg: TValue, prev: TValue, r: mobxIReactionPublic) => void) => {
|
|
85
81
|
return mobxReaction(
|
|
86
82
|
() => {
|
|
87
83
|
return unwrap(observableValue);
|
|
88
84
|
},
|
|
89
|
-
(value, prev, r) => {
|
|
90
|
-
effect(value
|
|
85
|
+
(value: TValue, prev: TValue, r) => {
|
|
86
|
+
effect(value, prev, r);
|
|
91
87
|
}
|
|
92
88
|
);
|
|
93
|
-
}
|
|
89
|
+
};
|
|
94
90
|
|
|
95
|
-
return
|
|
91
|
+
return observableValue;
|
|
96
92
|
}
|
|
97
93
|
|
|
98
94
|
export function observableArray<TItem = any, TSetter = Array<TItem>>(initialValues?: Array<TItem> | null, setter?: (value: TSetter, observableArray: observableInterfaces.IObservableArray<TItem, TSetter>) => void, options?: mobxCreateObservableOptions): observableInterfaces.IObservableArray<TItem, TSetter> {
|
|
99
|
-
|
|
95
|
+
//Make sure deep is set to false if not provided
|
|
96
|
+
options = setDefaultOptions(options, { deep: false });
|
|
100
97
|
|
|
101
|
-
const
|
|
102
|
-
return observableArray.toJSON();
|
|
103
|
-
}
|
|
98
|
+
const observableArray = mobxObservable.array(initialValues || null, options) as any as observableInterfaces.IObservableArray<TItem, TSetter>;
|
|
104
99
|
|
|
105
|
-
|
|
106
|
-
if (
|
|
107
|
-
|
|
100
|
+
observableArray.setItems = (newValue: TSetter) => {
|
|
101
|
+
if (newValue === undefined) {
|
|
102
|
+
newValue = [] as any as TSetter;
|
|
108
103
|
}
|
|
109
104
|
if (setter) {
|
|
110
|
-
setter(
|
|
105
|
+
setter(newValue, observableArray);
|
|
111
106
|
} else {
|
|
112
|
-
observableArray["replace"](
|
|
107
|
+
observableArray["replace"](newValue);
|
|
113
108
|
}
|
|
114
|
-
}
|
|
109
|
+
};
|
|
115
110
|
|
|
116
|
-
|
|
111
|
+
observableArray.setItemsInAction = (newValue: TSetter) => {
|
|
117
112
|
runInAction(() => {
|
|
118
|
-
|
|
113
|
+
observableArray.setItems(newValue);
|
|
119
114
|
});
|
|
120
115
|
};
|
|
121
116
|
|
|
122
|
-
|
|
117
|
+
observableArray.setInternal = observableArray["replace"];
|
|
123
118
|
|
|
124
|
-
|
|
119
|
+
observableArray.setInternalInAction = (items: Array<TItem>) => {
|
|
125
120
|
runInAction(() => {
|
|
126
|
-
|
|
127
|
-
})
|
|
128
|
-
}
|
|
121
|
+
observableArray.setInternal(items);
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
observableArray.get = observableArray["toJSON"];
|
|
129
126
|
|
|
130
|
-
|
|
127
|
+
observableArray.subscribe = (effect: (arg: Array<TItem>, prev: Array<TItem>, r: mobxIReactionPublic) => void) => {
|
|
131
128
|
return mobxReaction(
|
|
132
129
|
() => {
|
|
133
130
|
return unwrap(observableArray);
|
|
@@ -136,9 +133,9 @@ export function observableArray<TItem = any, TSetter = Array<TItem>>(initialValu
|
|
|
136
133
|
effect(value, prev, r);
|
|
137
134
|
}
|
|
138
135
|
);
|
|
139
|
-
}
|
|
136
|
+
};
|
|
140
137
|
|
|
141
|
-
return
|
|
138
|
+
return observableArray;
|
|
142
139
|
}
|
|
143
140
|
|
|
144
141
|
export function observableMap<TKey = any, TItem = any>(initialValues?: mobxIObservableMapInitialValues<TKey, TItem>, options?: mobxCreateObservableOptions): observableInterfaces.IObservableMap<TKey, TItem> {
|
|
@@ -203,4 +200,17 @@ export function unwrap<TValue>(value: TValue | observableInterfaces.ISubscribabl
|
|
|
203
200
|
}
|
|
204
201
|
|
|
205
202
|
return value as TValue;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function setDefaultOptions<TOptions>(target: TOptions, source: TOptions): TOptions {
|
|
206
|
+
if (source) {
|
|
207
|
+
target = target || {} as TOptions;
|
|
208
|
+
Object.keys(source).forEach((key) => {
|
|
209
|
+
if (!target.hasOwnProperty(key)) {
|
|
210
|
+
target[key] = source[key];
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return target;
|
|
206
216
|
}
|