jpf-mobx 1.0.122 → 1.0.123

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.
@@ -19,7 +19,10 @@ export function observableValue(value, setter, options) {
19
19
  options.deep = false;
20
20
  }
21
21
  const observableValue = mobxObservable.box(value || null, options);
22
- observableValue.setValue = (newValue) => {
22
+ const result = function () {
23
+ return observableValue.get();
24
+ };
25
+ result.setValue = (newValue) => {
23
26
  if (newValue === undefined) {
24
27
  newValue = null;
25
28
  }
@@ -30,44 +33,66 @@ export function observableValue(value, setter, options) {
30
33
  observableValue["set"](newValue);
31
34
  }
32
35
  };
33
- observableValue.setInternal = (value) => {
34
- if (value === undefined) {
35
- value = null;
36
+ result.setValueInAction = (newValue) => {
37
+ runInAction(() => {
38
+ result.setValue(newValue);
39
+ });
40
+ };
41
+ result.setInternal = (newValue) => {
42
+ if (newValue === undefined) {
43
+ newValue = null;
36
44
  }
37
- observableValue["set"](value);
45
+ observableValue["set"](newValue);
46
+ };
47
+ result.setInternalInAction = (newValue) => {
48
+ runInAction(() => {
49
+ result.setInternal(newValue);
50
+ });
38
51
  };
39
- observableValue.subscribe = (effect) => {
52
+ result.subscribe = (effect) => {
40
53
  return mobxReaction(() => {
41
54
  return unwrap(observableValue);
42
55
  }, (value, prev, r) => {
43
56
  effect(value, prev, r);
44
57
  });
45
58
  };
46
- return observableValue;
59
+ return result;
47
60
  }
48
61
  export function observableArray(initialValues, setter, options) {
49
62
  const observableArray = mobxObservable.array(initialValues || null, options);
50
- observableArray.setItems = (newValue) => {
51
- if (newValue === undefined) {
52
- newValue = [];
63
+ const result = function () {
64
+ return observableArray.toJSON();
65
+ };
66
+ result.setItems = (items) => {
67
+ if (items === undefined) {
68
+ items = [];
53
69
  }
54
70
  if (setter) {
55
- setter(newValue, observableArray);
71
+ setter(items, observableArray);
56
72
  }
57
73
  else {
58
- observableArray["replace"](newValue);
74
+ observableArray["replace"](items);
59
75
  }
60
76
  };
61
- observableArray.setInternal = observableArray["replace"];
62
- observableArray.get = observableArray["toJSON"];
63
- observableArray.subscribe = (effect) => {
77
+ result.setItemsInAction = (items) => {
78
+ runInAction(() => {
79
+ result.setItems(items);
80
+ });
81
+ };
82
+ result.setInternal = observableArray["replace"];
83
+ result.setInternalInAction = (items) => {
84
+ runInAction(() => {
85
+ result.setInternal(items);
86
+ });
87
+ };
88
+ result.subscribe = (effect) => {
64
89
  return mobxReaction(() => {
65
90
  return unwrap(observableArray);
66
91
  }, (value, prev, r) => {
67
92
  effect(value, prev, r);
68
93
  });
69
94
  };
70
- return observableArray;
95
+ return result;
71
96
  }
72
97
  export function observableMap(initialValues, options) {
73
98
  var defaultOptions = { deep: false };
@@ -1 +1 @@
1
- {"version":3,"file":"observable.js","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"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"}
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;IAC9N,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG;QACX,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC,CAAA;IAED,MAAM,CAAC,QAAQ,GAAG,CAAC,QAAiB,EAAE,EAAE;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,QAAQ,EAAE,eAAgF,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,KAAK,CAAC,CAAC,QAAe,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,GAAG,CAAC,QAAwB,EAAE,EAAE;QACnD,WAAW,CAAC,GAAG,EAAE;YACb,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;QACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAA;IAED,MAAM,CAAC,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC9C,WAAW,CAAC,GAAG,EAAE;YACb,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,CAAC,SAAS,GAAG,CAAC,MAAmE,EAAE,EAAE;QACvF,OAAO,YAAY,CACf,GAAG,EAAE;YACD,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC,EACD,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;YACf,MAAM,CAAC,KAAY,EAAE,IAAW,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC,CACJ,CAAC;IACN,CAAC,CAAA;IAED,OAAO,MAAa,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,eAAe,CAAsC,aAAmC,EAAE,MAAyG,EAAE,OAAqC;IACtP,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG;QACX,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC,CAAA;IAED,MAAM,CAAC,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,EAAoB,CAAC;QACjC,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,eAA+E,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,SAAS,CAAC,CAAC,KAAY,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,CAAA;IAED,MAAM,CAAC,gBAAgB,GAAG,CAAC,KAAc,EAAE,EAAE;QACzC,WAAW,CAAC,GAAG,EAAE;YACb,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,CAAC,mBAAmB,GAAG,CAAC,KAA0B,EAAE,EAAE;QACxD,WAAW,CAAC,GAAG,EAAE;YACb,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,CAAC,SAAS,GAAG,CAAC,MAA+E,EAAE,EAAE;QACnG,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,CAAA;IAED,OAAO,MAAsE,CAAC;AAClF,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jpf-mobx",
3
- "version": "1.0.122",
3
+ "version": "1.0.123",
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.13",
45
+ "jpf": "5.0.14",
46
46
  "mobx": "6.12.3"
47
47
  },
48
48
  "devDependencies": {
package/src/observable.ts CHANGED
@@ -45,59 +45,89 @@ export function observableValue<TValue, TSetter = TValue>(value?: TValue | null,
45
45
  if (options && !options.deep) {
46
46
  options.deep = false;
47
47
  }
48
- const observableValue = mobxObservable.box(value || null, options) as any as observableInterfaces.IObservableValue<TValue, TSetter>;
48
+ const observableValue = mobxObservable.box(value || null, options); // as any as observableInterfaces.IObservableValue<TValue, TSetter>;
49
49
 
50
- observableValue.setValue = (newValue: TSetter) => {
50
+ const result = function () {
51
+ return observableValue.get();
52
+ }
53
+
54
+ result.setValue = (newValue: TSetter) => {
51
55
  if (newValue === undefined) {
52
56
  newValue = null;
53
57
  }
54
58
  if (setter) {
55
- setter(newValue, observableValue);
59
+ setter(newValue, observableValue as any as observableInterfaces.IObservableValue<TValue, TSetter>);
56
60
  } else {
57
- observableValue["set"](newValue);
61
+ observableValue["set"](newValue as any);
58
62
  }
59
63
  };
60
64
 
61
- observableValue.setInternal = (value: TValue) => {
62
- if (value === undefined) {
63
- value = null;
65
+ result.setValueInAction = (newValue: TSetter | null) => {
66
+ runInAction(() => {
67
+ result.setValue(newValue);
68
+ });
69
+ };
70
+
71
+ result.setInternal = (newValue: TValue) => {
72
+ if (newValue === undefined) {
73
+ newValue = null;
64
74
  }
65
- observableValue["set"](value);
75
+ observableValue["set"](newValue);
76
+ }
77
+
78
+ result.setInternalInAction = (newValue: TValue) => {
79
+ runInAction(() => {
80
+ result.setInternal(newValue);
81
+ })
66
82
  }
67
83
 
68
- observableValue.subscribe = (effect: (arg: TValue, prev: TValue, r: mobxIReactionPublic) => void) => {
84
+ result.subscribe = (effect: (arg: TValue, prev: TValue, r: mobxIReactionPublic) => void) => {
69
85
  return mobxReaction(
70
86
  () => {
71
87
  return unwrap(observableValue);
72
88
  },
73
- (value: TValue, prev: TValue, r) => {
74
- effect(value, prev, r);
89
+ (value, prev, r) => {
90
+ effect(value as any, prev as any, r);
75
91
  }
76
92
  );
77
93
  }
78
94
 
79
- return observableValue;
95
+ return result as any;
80
96
  }
81
97
 
82
98
  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> {
83
- const observableArray = mobxObservable.array(initialValues || null, options) as any as observableInterfaces.IObservableArray<TItem, TSetter>;
99
+ const observableArray = mobxObservable.array(initialValues || null, options);
84
100
 
85
- observableArray.setItems = (newValue: TSetter) => {
86
- if (newValue === undefined) {
87
- newValue = [] as any as TSetter;
101
+ const result = function () {
102
+ return observableArray.toJSON();
103
+ }
104
+
105
+ result.setItems = (items: TSetter) => {
106
+ if (items === undefined) {
107
+ items = [] as any as TSetter;
88
108
  }
89
109
  if (setter) {
90
- setter(newValue, observableArray);
110
+ setter(items, observableArray as any as observableInterfaces.IObservableArray<TItem, TSetter>);
91
111
  } else {
92
- observableArray["replace"](newValue);
112
+ observableArray["replace"](items as any);
93
113
  }
94
114
  }
95
115
 
96
- observableArray.setInternal = observableArray["replace"];
116
+ result.setItemsInAction = (items: TSetter) => {
117
+ runInAction(() => {
118
+ result.setItems(items);
119
+ });
120
+ };
121
+
122
+ result.setInternal = observableArray["replace"];
97
123
 
98
- observableArray.get = observableArray["toJSON"];
124
+ result.setInternalInAction = (items: Array<TItem> | null) => {
125
+ runInAction(() => {
126
+ result.setInternal(items);
127
+ })
128
+ }
99
129
 
100
- observableArray.subscribe = (effect: (arg: Array<TItem>, prev: Array<TItem>, r: mobxIReactionPublic) => void) => {
130
+ result.subscribe = (effect: (arg: Array<TItem>, prev: Array<TItem>, r: mobxIReactionPublic) => void) => {
101
131
  return mobxReaction(
102
132
  () => {
103
133
  return unwrap(observableArray);
@@ -108,7 +138,7 @@ export function observableArray<TItem = any, TSetter = Array<TItem>>(initialValu
108
138
  );
109
139
  }
110
140
 
111
- return observableArray;
141
+ return result as any as observableInterfaces.IObservableArray<TItem, TSetter>;
112
142
  }
113
143
 
114
144
  export function observableMap<TKey = any, TItem = any>(initialValues?: mobxIObservableMapInitialValues<TKey, TItem>, options?: mobxCreateObservableOptions): observableInterfaces.IObservableMap<TKey, TItem> {