amis-core 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/dist/Root.js +94 -0
  2. package/dist/RootRenderer.js +288 -0
  3. package/dist/SchemaRenderer.js +323 -0
  4. package/dist/Scoped.js +252 -0
  5. package/dist/WithRootStore.js +44 -0
  6. package/dist/WithStore.js +179 -0
  7. package/dist/__tests__/compat.test.d.ts +1 -0
  8. package/dist/__tests__/factory.test.d.ts +1 -0
  9. package/dist/__tests__/filter.test.d.ts +1 -0
  10. package/dist/__tests__/helper.d.ts +13 -0
  11. package/dist/__tests__/tokenize.test.d.ts +1 -0
  12. package/dist/actions/Action.js +119 -0
  13. package/dist/actions/AjaxAction.js +96 -0
  14. package/dist/actions/BreakAction.js +35 -0
  15. package/dist/actions/BroadcastAction.js +49 -0
  16. package/dist/actions/CmptAction.js +60 -0
  17. package/dist/actions/ContinueAction.js +35 -0
  18. package/dist/actions/CopyAction.js +43 -0
  19. package/dist/actions/CustomAction.js +49 -0
  20. package/dist/actions/DialogAction.js +104 -0
  21. package/dist/actions/DrawerAction.js +66 -0
  22. package/dist/actions/EmailAction.js +48 -0
  23. package/dist/actions/LinkAction.js +52 -0
  24. package/dist/actions/LoopAction.js +107 -0
  25. package/dist/actions/PageAction.js +80 -0
  26. package/dist/actions/ParallelAction.js +40 -0
  27. package/dist/actions/SwitchAction.js +52 -0
  28. package/dist/actions/ToastAction.js +35 -0
  29. package/dist/components/LazyComponent.js +99 -0
  30. package/dist/env.js +20 -0
  31. package/dist/envOverwrite.js +43 -0
  32. package/dist/factory.js +308 -0
  33. package/dist/index.js +218 -0
  34. package/dist/index2.js +255 -0
  35. package/dist/locale.js +114 -0
  36. package/dist/renderers/Form.js +1162 -0
  37. package/dist/renderers/Item.js +636 -0
  38. package/dist/renderers/Options.js +881 -0
  39. package/dist/renderers/Placeholder.js +31 -0
  40. package/dist/renderers/builtin.js +27 -0
  41. package/dist/renderers/wrapControl.js +507 -0
  42. package/dist/src/Root.d.ts +37 -0
  43. package/dist/src/RootRenderer.d.ts +27 -0
  44. package/dist/src/SchemaRenderer.d.ts +37 -0
  45. package/dist/src/Scoped.d.ts +38 -0
  46. package/dist/src/WithRootStore.d.ts +737 -0
  47. package/dist/src/WithStore.d.ts +5 -0
  48. package/dist/src/actions/Action.d.ts +38 -0
  49. package/dist/src/actions/AjaxAction.d.ts +25 -0
  50. package/dist/src/actions/BreakAction.d.ts +15 -0
  51. package/dist/src/actions/BroadcastAction.d.ts +16 -0
  52. package/dist/src/actions/CmptAction.d.ts +20 -0
  53. package/dist/src/actions/ContinueAction.d.ts +15 -0
  54. package/dist/src/actions/CopyAction.d.ts +20 -0
  55. package/dist/src/actions/CustomAction.d.ts +17 -0
  56. package/dist/src/actions/Decorators.d.ts +25 -0
  57. package/dist/src/actions/DialogAction.d.ts +57 -0
  58. package/dist/src/actions/DrawerAction.d.ts +30 -0
  59. package/dist/src/actions/EmailAction.d.ts +23 -0
  60. package/dist/src/actions/LinkAction.d.ts +24 -0
  61. package/dist/src/actions/LoopAction.d.ts +19 -0
  62. package/dist/src/actions/PageAction.d.ts +39 -0
  63. package/dist/src/actions/ParallelAction.d.ts +8 -0
  64. package/dist/src/actions/SwitchAction.d.ts +11 -0
  65. package/dist/src/actions/ToastAction.d.ts +19 -0
  66. package/dist/src/actions/index.d.ts +21 -0
  67. package/dist/src/components/LazyComponent.d.ts +32 -0
  68. package/dist/src/env.d.ts +172 -0
  69. package/dist/src/envOverwrite.d.ts +4 -0
  70. package/dist/src/factory.d.ts +78 -0
  71. package/dist/src/index.d.ts +25 -0
  72. package/dist/src/locale.d.ts +82 -0
  73. package/dist/src/renderers/Form.d.ts +352 -0
  74. package/dist/src/renderers/Item.d.ts +795 -0
  75. package/dist/src/renderers/Options.d.ts +150 -0
  76. package/dist/src/renderers/Placeholder.d.ts +6 -0
  77. package/dist/src/renderers/builtin.d.ts +1 -0
  78. package/dist/src/renderers/wrapControl.d.ts +446 -0
  79. package/dist/src/schema.d.ts +369 -0
  80. package/dist/src/store/app.d.ts +89 -0
  81. package/dist/src/store/combo.d.ts +8504 -0
  82. package/dist/src/store/crud.d.ts +124 -0
  83. package/dist/src/store/form.d.ts +3394 -0
  84. package/dist/src/store/formItem.d.ts +130 -0
  85. package/dist/src/store/iRenderer.d.ts +46 -0
  86. package/dist/src/store/index.d.ts +105 -0
  87. package/dist/src/store/list.d.ts +270 -0
  88. package/dist/src/store/manager.d.ts +115 -0
  89. package/dist/src/store/modal.d.ts +84 -0
  90. package/dist/src/store/node.d.ts +22 -0
  91. package/dist/src/store/pagination.d.ts +58 -0
  92. package/dist/src/store/root.d.ts +79 -0
  93. package/dist/src/store/service.d.ts +71 -0
  94. package/dist/src/store/table-v2.d.ts +309 -0
  95. package/dist/src/store/table.d.ts +8334 -0
  96. package/dist/src/theme.d.ts +83 -0
  97. package/dist/src/types.d.ts +217 -0
  98. package/dist/src/utils/Animation.d.ts +22 -0
  99. package/dist/src/utils/ColorScale.d.ts +19 -0
  100. package/dist/src/utils/DataSchema.d.ts +25 -0
  101. package/dist/src/utils/DataScope.d.ts +23 -0
  102. package/dist/src/utils/RootClose.d.ts +4 -0
  103. package/dist/src/utils/SimpleMap.d.ts +8 -0
  104. package/dist/src/utils/api.d.ts +27 -0
  105. package/dist/src/utils/attachmentAdpator.d.ts +7 -0
  106. package/dist/src/utils/autobind.d.ts +7 -0
  107. package/dist/src/utils/columnsSplit.d.ts +1 -0
  108. package/dist/src/utils/dataMapping.d.ts +3 -0
  109. package/dist/src/utils/date.d.ts +4 -0
  110. package/dist/src/utils/debug.d.ts +26 -0
  111. package/dist/src/utils/dom.d.ts +13 -0
  112. package/dist/src/utils/errors.d.ts +6 -0
  113. package/dist/src/utils/escapeHtml.d.ts +1 -0
  114. package/dist/src/utils/filter-schema.d.ts +12 -0
  115. package/dist/src/utils/filter.d.ts +1 -0
  116. package/dist/src/utils/formatDuration.d.ts +1 -0
  117. package/dist/src/utils/formula.d.ts +16 -0
  118. package/dist/src/utils/getVariable.d.ts +3 -0
  119. package/dist/src/utils/grammar.d.ts +4 -0
  120. package/dist/src/utils/handleAction.d.ts +6 -0
  121. package/dist/src/utils/helper.d.ts +286 -0
  122. package/dist/src/utils/icon.d.ts +12 -0
  123. package/dist/src/utils/image.d.ts +17 -0
  124. package/dist/src/utils/index.d.ts +12 -0
  125. package/dist/src/utils/isPureVariable.d.ts +1 -0
  126. package/dist/src/utils/json-schema-2-amis-schema.d.ts +6 -0
  127. package/dist/src/utils/keyToPath.d.ts +6 -0
  128. package/dist/src/utils/makeSorter.d.ts +1 -0
  129. package/dist/src/utils/markdown.d.ts +5 -0
  130. package/dist/src/utils/normalizeLink.d.ts +1 -0
  131. package/dist/src/utils/normalizeOptions.d.ts +7 -0
  132. package/dist/src/utils/object.d.ts +15 -0
  133. package/dist/src/utils/offset.d.ts +14 -0
  134. package/dist/src/utils/offsetParent.d.ts +4 -0
  135. package/dist/src/utils/optionValueCompare.d.ts +3 -0
  136. package/dist/src/utils/position.d.ts +15 -0
  137. package/dist/src/utils/prettyBytes.d.ts +1 -0
  138. package/dist/src/utils/renderer-event.d.ts +44 -0
  139. package/dist/src/utils/replaceText.d.ts +6 -0
  140. package/dist/src/utils/resize-sensor.d.ts +6 -0
  141. package/dist/src/utils/resolveVariable.d.ts +1 -0
  142. package/dist/src/utils/resolveVariableAndFilter.d.ts +1 -0
  143. package/dist/src/utils/scrollPosition.d.ts +6 -0
  144. package/dist/src/utils/string2regExp.d.ts +1 -0
  145. package/dist/src/utils/stripNumber.d.ts +1 -0
  146. package/dist/src/utils/style.d.ts +10 -0
  147. package/dist/src/utils/tokenize.d.ts +1 -0
  148. package/dist/src/utils/tpl-builtin.d.ts +18 -0
  149. package/dist/src/utils/tpl-lodash.d.ts +4 -0
  150. package/dist/src/utils/tpl.d.ts +11 -0
  151. package/dist/src/utils/validations.d.ts +39 -0
  152. package/dist/store/app.js +190 -0
  153. package/dist/store/combo.js +154 -0
  154. package/dist/store/crud.js +413 -0
  155. package/dist/store/form.js +579 -0
  156. package/dist/store/formItem.js +846 -0
  157. package/dist/store/iRenderer.js +189 -0
  158. package/dist/store/index.js +103 -0
  159. package/dist/store/list.js +248 -0
  160. package/dist/store/manager.js +56 -0
  161. package/dist/store/modal.js +54 -0
  162. package/dist/store/node.js +93 -0
  163. package/dist/store/pagination.js +60 -0
  164. package/dist/store/root.js +45 -0
  165. package/dist/store/service.js +415 -0
  166. package/dist/store/table-v2.js +471 -0
  167. package/dist/store/table.js +1105 -0
  168. package/dist/theme.js +93 -0
  169. package/dist/tsconfig.tsbuildinfo +1 -0
  170. package/dist/utils/Animation.js +290 -0
  171. package/dist/utils/DataSchema.js +120 -0
  172. package/dist/utils/DataScope.js +151 -0
  173. package/dist/utils/SimpleMap.js +46 -0
  174. package/dist/utils/api.js +555 -0
  175. package/dist/utils/autobind.js +94 -0
  176. package/dist/utils/dataMapping.js +136 -0
  177. package/dist/utils/date.js +90 -0
  178. package/dist/utils/debug.js +343 -0
  179. package/dist/utils/errors.js +23 -0
  180. package/dist/utils/escapeHtml.js +24 -0
  181. package/dist/utils/filter-schema.js +75 -0
  182. package/dist/utils/filter.js +481 -0
  183. package/dist/utils/formatDuration.js +27 -0
  184. package/dist/utils/formula.js +165 -0
  185. package/dist/utils/getVariable.js +29 -0
  186. package/dist/utils/grammar.js +54 -0
  187. package/dist/utils/helper.js +1283 -0
  188. package/dist/utils/isPureVariable.js +16 -0
  189. package/dist/utils/keyToPath.js +34 -0
  190. package/dist/utils/makeSorter.js +30 -0
  191. package/dist/utils/normalizeLink.js +47 -0
  192. package/dist/utils/normalizeOptions.js +92 -0
  193. package/dist/utils/object.js +156 -0
  194. package/dist/utils/offset.js +36 -0
  195. package/dist/utils/offsetParent.js +27 -0
  196. package/dist/utils/optionValueCompare.js +25 -0
  197. package/dist/utils/position.js +50 -0
  198. package/dist/utils/prettyBytes.js +28 -0
  199. package/dist/utils/renderer-event.js +131 -0
  200. package/dist/utils/replaceText.js +35 -0
  201. package/dist/utils/resize-sensor.js +177 -0
  202. package/dist/utils/resolveVariable.js +39 -0
  203. package/dist/utils/resolveVariableAndFilter.js +37 -0
  204. package/dist/utils/string2regExp.js +18 -0
  205. package/dist/utils/stripNumber.js +20 -0
  206. package/dist/utils/tokenize.js +33 -0
  207. package/dist/utils/tpl-builtin.js +71 -0
  208. package/dist/utils/tpl-lodash.js +71 -0
  209. package/dist/utils/tpl.js +140 -0
  210. package/dist/utils/validations.js +377 -0
  211. package/package.json +121 -0
@@ -0,0 +1,93 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var mobxStateTree = require('mobx-state-tree');
11
+ var manager = require('./manager.js');
12
+
13
+ var StoreNode = mobxStateTree.types
14
+ .model('StoreNode', {
15
+ id: mobxStateTree.types.identifier,
16
+ path: '',
17
+ storeType: mobxStateTree.types.string,
18
+ disposed: false,
19
+ parentId: '',
20
+ childrenIds: mobxStateTree.types.optional(mobxStateTree.types.array(mobxStateTree.types.string), [])
21
+ })
22
+ .views(function (self) {
23
+ return {
24
+ get parentStore() {
25
+ return mobxStateTree.isAlive(self) && self.parentId
26
+ ? manager.getStoreById(self.parentId)
27
+ : null;
28
+ },
29
+ get __() {
30
+ return mobxStateTree.getEnv(self).translate;
31
+ },
32
+ get hasChildren() {
33
+ return !!self.childrenIds.length;
34
+ },
35
+ get children() {
36
+ return self.childrenIds.map(function (item) { return manager.getStoreById(item); });
37
+ }
38
+ };
39
+ })
40
+ .actions(function (self) {
41
+ function addChildId(id) {
42
+ self.childrenIds.push(id);
43
+ }
44
+ function removeChildId(id) {
45
+ var childrenIds = self.childrenIds.filter(function (item) { return item !== id; });
46
+ self.childrenIds.replace(childrenIds);
47
+ self.disposed && dispose();
48
+ }
49
+ function dispose(callback) {
50
+ var _a;
51
+ // 先标记自己是要销毁的。
52
+ self.disposed = true;
53
+ if (/(?:dialog|drawer)$/.test(self.path)) {
54
+ mobxStateTree.destroy(self);
55
+ callback === null || callback === void 0 ? void 0 : callback();
56
+ }
57
+ else if (!self.childrenIds.length) {
58
+ var parent_1 = self.parentStore;
59
+ (_a = parent_1 === null || parent_1 === void 0 ? void 0 : parent_1.onChildStoreDispose) === null || _a === void 0 ? void 0 : _a.call(parent_1, self);
60
+ mobxStateTree.destroy(self);
61
+ callback === null || callback === void 0 ? void 0 : callback();
62
+ // destroy(self);
63
+ }
64
+ }
65
+ return {
66
+ onChildStoreDispose: function (child) {
67
+ removeChildId(child.id);
68
+ },
69
+ syncProps: function (props, prevProps, list) {
70
+ if (list === void 0) { list = Object.keys(props); }
71
+ var target = self;
72
+ list.forEach(function (key) {
73
+ if (prevProps && props[key] === prevProps[key]) {
74
+ return;
75
+ }
76
+ var setter = "set".concat(key
77
+ .substring(0, 1)
78
+ .toUpperCase()).concat(key.substring(1));
79
+ if (typeof target[setter] === 'function') {
80
+ target[setter](props[key]);
81
+ }
82
+ else if (target.hasOwnProperty(key)) {
83
+ target[key] = props[key];
84
+ }
85
+ });
86
+ },
87
+ dispose: dispose,
88
+ addChildId: addChildId,
89
+ removeChildId: removeChildId
90
+ };
91
+ });
92
+
93
+ exports.StoreNode = StoreNode;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ require('../utils/helper.js');
11
+ require('amis-formula');
12
+ require('moment');
13
+ var object = require('../utils/object.js');
14
+ var resolveVariable = require('../utils/resolveVariable.js');
15
+ require('tslib');
16
+ require('lodash/isPlainObject');
17
+ require('../utils/filter.js');
18
+ var iRenderer = require('./iRenderer.js');
19
+
20
+ var PaginationStore = iRenderer.iRendererStore
21
+ .named('PaginationStore')
22
+ .props({
23
+ page: 1,
24
+ perPage: 10,
25
+ inputName: '',
26
+ outputName: '',
27
+ mode: 'normal'
28
+ })
29
+ .views(function (self) { return ({
30
+ get inputItems() {
31
+ var items = resolveVariable.resolveVariable(self.inputName || 'items', self.data);
32
+ if (!Array.isArray(items)) {
33
+ return [];
34
+ }
35
+ return items;
36
+ },
37
+ get locals() {
38
+ var _a;
39
+ var skip = (self.page - 1) * self.perPage;
40
+ return object.createObject(self.data, (_a = {
41
+ currentPage: self.page,
42
+ lastPage: this.lastPage
43
+ },
44
+ _a[self.outputName || 'items'] = this.inputItems.slice(skip, skip + self.perPage),
45
+ _a));
46
+ },
47
+ get lastPage() {
48
+ return Math.ceil(this.inputItems.length / self.perPage);
49
+ }
50
+ }); })
51
+ .actions(function (self) { return ({
52
+ switchTo: function (page, perPage) {
53
+ self.page = page;
54
+ if (typeof perPage === 'number') {
55
+ self.perPage = perPage;
56
+ }
57
+ }
58
+ }); });
59
+
60
+ exports.PaginationStore = PaginationStore;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var mobxStateTree = require('mobx-state-tree');
12
+ var helper = require('../utils/helper.js');
13
+ var service = require('./service.js');
14
+ var object = require('../utils/object.js');
15
+
16
+ var RootStore = service.ServiceStore.named('RootStore')
17
+ .props({
18
+ runtimeError: mobxStateTree.types.frozen(),
19
+ runtimeErrorStack: mobxStateTree.types.frozen(),
20
+ query: mobxStateTree.types.frozen()
21
+ })
22
+ .views(function (self) { return ({
23
+ get downStream() {
24
+ return self.query
25
+ ? object.createObject(tslib.__assign(tslib.__assign(tslib.__assign({}, (self.data && self.data.__super ? self.data.__super : null)), self.query), { __query: self.query }), self.data)
26
+ : self.data;
27
+ }
28
+ }); })
29
+ .actions(function (self) { return ({
30
+ setRuntimeError: function (error, errorStack) {
31
+ self.runtimeError = error;
32
+ self.runtimeErrorStack = errorStack;
33
+ },
34
+ updateLocation: function (location) {
35
+ var query = (location && location.query) ||
36
+ (location &&
37
+ location.search &&
38
+ helper.qsparse(location.search.substring(1))) ||
39
+ (window.location.search &&
40
+ helper.qsparse(window.location.search.substring(1)));
41
+ self.query = query;
42
+ }
43
+ }); });
44
+
45
+ exports.RootStore = RootStore;
@@ -0,0 +1,415 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var mobxStateTree = require('mobx-state-tree');
12
+ var iRenderer = require('./iRenderer.js');
13
+ var helper = require('../utils/helper.js');
14
+ var errors = require('../utils/errors.js');
15
+ var api = require('../utils/api.js');
16
+ var replaceText = require('../utils/replaceText.js');
17
+ var object = require('../utils/object.js');
18
+
19
+ var ServiceStore = iRenderer.iRendererStore
20
+ .named('ServiceStore')
21
+ .props({
22
+ msg: '',
23
+ error: false,
24
+ fetching: false,
25
+ saving: false,
26
+ busying: false,
27
+ checking: false,
28
+ initializing: false,
29
+ schema: mobxStateTree.types.optional(mobxStateTree.types.frozen(), null),
30
+ schemaKey: ''
31
+ })
32
+ .views(function (self) { return ({
33
+ get loading() {
34
+ return self.fetching || self.saving || self.busying || self.initializing;
35
+ }
36
+ }); })
37
+ .actions(function (self) {
38
+ var fetchCancel;
39
+ var fetchSchemaCancel;
40
+ function markFetching(fetching) {
41
+ if (fetching === void 0) { fetching = true; }
42
+ self.fetching = fetching;
43
+ }
44
+ function markSaving(saving) {
45
+ if (saving === void 0) { saving = true; }
46
+ self.saving = saving;
47
+ }
48
+ function markBusying(busying) {
49
+ if (busying === void 0) { busying = true; }
50
+ self.busying = busying;
51
+ }
52
+ function reInitData(data, replace) {
53
+ if (replace === void 0) { replace = false; }
54
+ var newData = object.extendObject(self.pristine, data, !replace);
55
+ self.data = self.pristine = newData;
56
+ }
57
+ function updateMessage(msg, error) {
58
+ if (error === void 0) { error = false; }
59
+ self.msg = (msg && String(msg)) || '';
60
+ self.error = error;
61
+ }
62
+ function clearMessage() {
63
+ updateMessage('');
64
+ }
65
+ var fetchInitData = mobxStateTree.flow(function getInitData(api$1, data, options) {
66
+ var json, replace, data_1, ret, e_1, env, message;
67
+ var _a, _b;
68
+ return tslib.__generator(this, function (_c) {
69
+ switch (_c.label) {
70
+ case 0:
71
+ _c.trys.push([0, 6, , 7]);
72
+ if (fetchCancel) {
73
+ fetchCancel();
74
+ fetchCancel = null;
75
+ self.fetching = false;
76
+ }
77
+ if (self.fetching) {
78
+ return [2 /*return*/];
79
+ }
80
+ (options && options.silent) || markFetching(true);
81
+ return [4 /*yield*/, mobxStateTree.getEnv(self).fetcher(api$1, data, tslib.__assign(tslib.__assign({}, options), { cancelExecutor: function (executor) { return (fetchCancel = executor); } }))];
82
+ case 1:
83
+ json = _c.sent();
84
+ fetchCancel = null;
85
+ if (!!json.ok) return [3 /*break*/, 2];
86
+ updateMessage((_a = json.msg) !== null && _a !== void 0 ? _a : (options && options.errorMessage), true);
87
+ mobxStateTree.getEnv(self).notify('error', json.msg, json.msgTimeout !== undefined
88
+ ? {
89
+ closeButton: true,
90
+ timeout: json.msgTimeout
91
+ }
92
+ : undefined);
93
+ return [3 /*break*/, 5];
94
+ case 2:
95
+ self.updatedAt = Date.now();
96
+ replace = !!api$1.replaceData;
97
+ data_1 = tslib.__assign(tslib.__assign({}, (replace ? {} : self.data)), api.normalizeApiResponseData(json.data));
98
+ reInitData(data_1, replace);
99
+ self.hasRemoteData = true;
100
+ if (!(options && options.onSuccess)) return [3 /*break*/, 4];
101
+ ret = options.onSuccess(json);
102
+ if (!(ret && ret.then)) return [3 /*break*/, 4];
103
+ return [4 /*yield*/, ret];
104
+ case 3:
105
+ _c.sent();
106
+ _c.label = 4;
107
+ case 4:
108
+ updateMessage((_b = json.msg) !== null && _b !== void 0 ? _b : (options && options.successMessage));
109
+ // 配置了获取成功提示后提示,默认是空不会提示。
110
+ options &&
111
+ options.successMessage &&
112
+ mobxStateTree.getEnv(self).notify('success', self.msg);
113
+ _c.label = 5;
114
+ case 5:
115
+ markFetching(false);
116
+ return [2 /*return*/, json];
117
+ case 6:
118
+ e_1 = _c.sent();
119
+ env = mobxStateTree.getEnv(self);
120
+ if (!mobxStateTree.isAlive(self) || self.disposed) {
121
+ return [2 /*return*/];
122
+ }
123
+ if (env.isCancel(e_1)) {
124
+ return [2 /*return*/];
125
+ }
126
+ markFetching(false);
127
+ e_1.stack && console.error(e_1.stack);
128
+ message = e_1.message || e_1;
129
+ if (e_1 && e_1.message === 'Network Error') {
130
+ message = self.__('networkError');
131
+ }
132
+ env.notify('error', message);
133
+ return [2 /*return*/];
134
+ case 7: return [2 /*return*/];
135
+ }
136
+ });
137
+ });
138
+ var setHasRemoteData = function () {
139
+ self.hasRemoteData = true;
140
+ };
141
+ var fetchData = mobxStateTree.flow(function getInitData(api$1, data, options) {
142
+ var json, ret, e_2, env, message;
143
+ var _a, _b;
144
+ return tslib.__generator(this, function (_c) {
145
+ switch (_c.label) {
146
+ case 0:
147
+ _c.trys.push([0, 6, , 7]);
148
+ if (fetchCancel) {
149
+ fetchCancel();
150
+ fetchCancel = null;
151
+ self.fetching = false;
152
+ }
153
+ if (self.fetching) {
154
+ return [2 /*return*/];
155
+ }
156
+ (options && options.silent) || markFetching(true);
157
+ return [4 /*yield*/, mobxStateTree.getEnv(self).fetcher(api$1, data, tslib.__assign(tslib.__assign({}, options), { cancelExecutor: function (executor) { return (fetchCancel = executor); } }))];
158
+ case 1:
159
+ json = _c.sent();
160
+ fetchCancel = null;
161
+ if (!helper.isEmpty(json.data) || json.ok) {
162
+ self.updatedAt = Date.now();
163
+ json.data &&
164
+ self.updateData(api.normalizeApiResponseData(json.data), undefined, !!api$1.replaceData);
165
+ self.hasRemoteData = true;
166
+ }
167
+ if (!!json.ok) return [3 /*break*/, 2];
168
+ updateMessage((_a = json.msg) !== null && _a !== void 0 ? _a : (options && options.errorMessage), true);
169
+ mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
170
+ ? {
171
+ closeButton: true,
172
+ timeout: json.msgTimeout
173
+ }
174
+ : undefined);
175
+ return [3 /*break*/, 5];
176
+ case 2:
177
+ if (!(options && options.onSuccess)) return [3 /*break*/, 4];
178
+ ret = options.onSuccess(json);
179
+ if (!(ret && ret.then)) return [3 /*break*/, 4];
180
+ return [4 /*yield*/, ret];
181
+ case 3:
182
+ _c.sent();
183
+ _c.label = 4;
184
+ case 4:
185
+ updateMessage((_b = json.msg) !== null && _b !== void 0 ? _b : (options && options.successMessage));
186
+ // 配置了获取成功提示后提示,默认是空不会提示。
187
+ options &&
188
+ options.successMessage &&
189
+ mobxStateTree.getEnv(self).notify('success', self.msg);
190
+ _c.label = 5;
191
+ case 5:
192
+ markFetching(false);
193
+ return [2 /*return*/, json];
194
+ case 6:
195
+ e_2 = _c.sent();
196
+ env = mobxStateTree.getEnv(self);
197
+ if (!mobxStateTree.isAlive(self) || self.disposed) {
198
+ return [2 /*return*/];
199
+ }
200
+ if (env.isCancel(e_2)) {
201
+ return [2 /*return*/];
202
+ }
203
+ markFetching(false);
204
+ e_2.stack && console.error(e_2.stack);
205
+ message = e_2.message || e_2;
206
+ if (e_2 && e_2.message === 'Network Error') {
207
+ message = self.__('networkError');
208
+ }
209
+ env.notify('error', message);
210
+ return [2 /*return*/];
211
+ case 7: return [2 /*return*/];
212
+ }
213
+ });
214
+ });
215
+ var saveRemote = mobxStateTree.flow(function saveRemote(api$1, data, options) {
216
+ var json, ret, ret, e_3, result;
217
+ var _a, _b, _c;
218
+ if (options === void 0) { options = {}; }
219
+ return tslib.__generator(this, function (_d) {
220
+ switch (_d.label) {
221
+ case 0:
222
+ _d.trys.push([0, 8, , 9]);
223
+ options = tslib.__assign({ method: 'post' }, options);
224
+ if (self.saving) {
225
+ return [2 /*return*/];
226
+ }
227
+ markSaving(true);
228
+ return [4 /*yield*/, mobxStateTree.getEnv(self).fetcher(api$1, data, options)];
229
+ case 1:
230
+ json = _d.sent();
231
+ if (!helper.isEmpty(json.data) || json.ok) {
232
+ self.updatedAt = Date.now();
233
+ json.data &&
234
+ self.updateData(api.normalizeApiResponseData(json.data), undefined, !!api$1.replaceData);
235
+ }
236
+ if (!!json.ok) return [3 /*break*/, 4];
237
+ if (!(options && options.onFailed)) return [3 /*break*/, 3];
238
+ ret = options.onFailed(json);
239
+ if (!(ret && ret.then)) return [3 /*break*/, 3];
240
+ return [4 /*yield*/, ret];
241
+ case 2:
242
+ _d.sent();
243
+ _d.label = 3;
244
+ case 3:
245
+ updateMessage((_b = (_a = json.msg) !== null && _a !== void 0 ? _a : (options && options.errorMessage)) !== null && _b !== void 0 ? _b : self.__('saveFailed'), true);
246
+ throw new errors.ServerError(self.msg, json);
247
+ case 4:
248
+ if (!(options && options.onSuccess)) return [3 /*break*/, 6];
249
+ ret = options.onSuccess(json);
250
+ if (!(ret && ret.then)) return [3 /*break*/, 6];
251
+ return [4 /*yield*/, ret];
252
+ case 5:
253
+ _d.sent();
254
+ _d.label = 6;
255
+ case 6:
256
+ updateMessage((_c = json.msg) !== null && _c !== void 0 ? _c : (options && options.successMessage));
257
+ self.msg &&
258
+ mobxStateTree.getEnv(self).notify('success', self.msg, json.msgTimeout !== undefined
259
+ ? {
260
+ closeButton: true,
261
+ timeout: json.msgTimeout
262
+ }
263
+ : undefined);
264
+ _d.label = 7;
265
+ case 7:
266
+ markSaving(false);
267
+ return [2 /*return*/, json.data];
268
+ case 8:
269
+ e_3 = _d.sent();
270
+ self.saving = false;
271
+ if (!mobxStateTree.isAlive(self) || self.disposed) {
272
+ return [2 /*return*/];
273
+ }
274
+ // console.log(e.stack);
275
+ if (e_3.type === 'ServerError') {
276
+ result = e_3.response;
277
+ mobxStateTree.getEnv(self).notify('error', e_3.message, result.msgTimeout !== undefined
278
+ ? {
279
+ closeButton: true,
280
+ timeout: result.msgTimeout
281
+ }
282
+ : undefined);
283
+ }
284
+ else {
285
+ mobxStateTree.getEnv(self).notify('error', e_3.message);
286
+ }
287
+ throw e_3;
288
+ case 9: return [2 /*return*/];
289
+ }
290
+ });
291
+ });
292
+ var fetchSchema = mobxStateTree.flow(function fetchSchema(api$1, data, options) {
293
+ var json, env, e_4, env, message;
294
+ var _a, _b, _c;
295
+ if (options === void 0) { options = {}; }
296
+ return tslib.__generator(this, function (_d) {
297
+ switch (_d.label) {
298
+ case 0:
299
+ _d.trys.push([0, 2, , 3]);
300
+ options = tslib.__assign(tslib.__assign({ method: 'post' }, options), { cancelExecutor: function (executor) { return (fetchSchemaCancel = executor); } });
301
+ if (fetchSchemaCancel) {
302
+ fetchSchemaCancel();
303
+ fetchSchemaCancel = null;
304
+ self.initializing = false;
305
+ }
306
+ if (self.initializing) {
307
+ return [2 /*return*/];
308
+ }
309
+ self.initializing = true;
310
+ if (typeof api$1 === 'string') {
311
+ api$1 += (~api$1.indexOf('?') ? '&' : '?') + '_replace=1';
312
+ }
313
+ else {
314
+ api$1 = tslib.__assign(tslib.__assign({}, api$1), { url: api$1.url +
315
+ (~api$1.url.indexOf('?') ? '&' : '?') +
316
+ '_replace=1' });
317
+ }
318
+ return [4 /*yield*/, mobxStateTree.getEnv(self).fetcher(api$1, data, options)];
319
+ case 1:
320
+ json = _d.sent();
321
+ fetchSchemaCancel = null;
322
+ if (!json.ok) {
323
+ updateMessage((_b = (_a = json.msg) !== null && _a !== void 0 ? _a : (options && options.errorMessage)) !== null && _b !== void 0 ? _b : self.__('fetchFailed'), true);
324
+ mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
325
+ ? {
326
+ closeButton: true,
327
+ timeout: json.msgTimeout
328
+ }
329
+ : undefined);
330
+ }
331
+ else {
332
+ if (json.data) {
333
+ env = mobxStateTree.getEnv(self);
334
+ replaceText.replaceText(json.data, env.replaceText, env.replaceTextIgnoreKeys);
335
+ self.schema = Array.isArray(json.data)
336
+ ? json.data
337
+ : tslib.__assign({ type: 'wrapper', wrap: false }, api.normalizeApiResponseData(json.data));
338
+ self.schemaKey = '' + Date.now();
339
+ object.isObject(json.data.data) &&
340
+ self.updateData(json.data.data, undefined, !!api$1.replaceData);
341
+ }
342
+ updateMessage((_c = json.msg) !== null && _c !== void 0 ? _c : (options && options.successMessage));
343
+ // 配置了获取成功提示后提示,默认是空不会提示。
344
+ options &&
345
+ options.successMessage &&
346
+ mobxStateTree.getEnv(self).notify('success', self.msg);
347
+ }
348
+ self.initializing = false;
349
+ return [2 /*return*/, json.data];
350
+ case 2:
351
+ e_4 = _d.sent();
352
+ env = mobxStateTree.getEnv(self);
353
+ self.initializing = false;
354
+ if (!mobxStateTree.isAlive(self) || self.disposed) {
355
+ return [2 /*return*/];
356
+ }
357
+ if (env.isCancel(e_4)) {
358
+ return [2 /*return*/];
359
+ }
360
+ e_4.stack && console.error(e_4.stack);
361
+ message = e_4.message || e_4;
362
+ if (e_4 && e_4.message === 'Network Error') {
363
+ message = self.__('networkError');
364
+ }
365
+ env.notify('error', message);
366
+ return [3 /*break*/, 3];
367
+ case 3: return [2 /*return*/];
368
+ }
369
+ });
370
+ });
371
+ var checkRemote = mobxStateTree.flow(function checkRemote(api, data, options) {
372
+ var json;
373
+ return tslib.__generator(this, function (_a) {
374
+ switch (_a.label) {
375
+ case 0:
376
+ if (self.checking) {
377
+ return [2 /*return*/];
378
+ }
379
+ _a.label = 1;
380
+ case 1:
381
+ _a.trys.push([1, , 3, 4]);
382
+ self.checking = true;
383
+ return [4 /*yield*/, mobxStateTree.getEnv(self).fetcher(api, data, options)];
384
+ case 2:
385
+ json = _a.sent();
386
+ json.ok &&
387
+ self.updateData(json.data, undefined, !!api.replaceData);
388
+ if (!json.ok) {
389
+ throw new Error(json.msg);
390
+ }
391
+ return [2 /*return*/, json.data];
392
+ case 3:
393
+ self.checking = false;
394
+ return [7 /*endfinally*/];
395
+ case 4: return [2 /*return*/];
396
+ }
397
+ });
398
+ });
399
+ return {
400
+ markFetching: markFetching,
401
+ markSaving: markSaving,
402
+ markBusying: markBusying,
403
+ fetchInitData: fetchInitData,
404
+ fetchData: fetchData,
405
+ reInitData: reInitData,
406
+ updateMessage: updateMessage,
407
+ clearMessage: clearMessage,
408
+ setHasRemoteData: setHasRemoteData,
409
+ saveRemote: saveRemote,
410
+ fetchSchema: fetchSchema,
411
+ checkRemote: checkRemote
412
+ };
413
+ });
414
+
415
+ exports.ServiceStore = ServiceStore;