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,189 @@
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
+ require('../utils/helper.js');
13
+ require('amis-formula');
14
+ require('moment');
15
+ var object = require('../utils/object.js');
16
+ var getVariable = require('../utils/getVariable.js');
17
+ var dataMapping = require('../utils/dataMapping.js');
18
+ require('../utils/filter.js');
19
+ var SimpleMap = require('../utils/SimpleMap.js');
20
+ var node = require('./node.js');
21
+
22
+ var iRendererStore = node.StoreNode.named('iRendererStore')
23
+ .props({
24
+ hasRemoteData: mobxStateTree.types.optional(mobxStateTree.types.boolean, false),
25
+ data: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {}),
26
+ initedAt: 0,
27
+ updatedAt: 0,
28
+ pristine: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {}),
29
+ action: mobxStateTree.types.optional(mobxStateTree.types.frozen(), undefined),
30
+ dialogOpen: false,
31
+ dialogData: mobxStateTree.types.optional(mobxStateTree.types.frozen(), undefined),
32
+ drawerOpen: false,
33
+ drawerData: mobxStateTree.types.optional(mobxStateTree.types.frozen(), undefined)
34
+ })
35
+ .views(function (self) { return ({
36
+ getValueByName: function (name, canAccessSuper) {
37
+ if (canAccessSuper === void 0) { canAccessSuper = true; }
38
+ return getVariable.getVariable(self.data, name, canAccessSuper);
39
+ },
40
+ getPristineValueByName: function (name) {
41
+ return getVariable.getVariable(self.pristine, name, false);
42
+ }
43
+ }); })
44
+ .actions(function (self) {
45
+ var dialogCallbacks = new SimpleMap.SimpleMap();
46
+ return {
47
+ initData: function (data, skipSetPristine) {
48
+ if (data === void 0) { data = {}; }
49
+ if (skipSetPristine === void 0) { skipSetPristine = false; }
50
+ self.initedAt = Date.now();
51
+ !skipSetPristine && (self.pristine = data);
52
+ self.data = data;
53
+ },
54
+ reset: function () {
55
+ self.data = self.pristine;
56
+ },
57
+ updateData: function (data, tag, replace) {
58
+ if (data === void 0) { data = {}; }
59
+ var prev = self.data;
60
+ var newData;
61
+ if (tag) {
62
+ var proto = object.createObject(self.data.__super || null, tag);
63
+ newData = object.createObject(proto, tslib.__assign(tslib.__assign({}, (replace ? {} : self.data)), data));
64
+ }
65
+ else {
66
+ newData = object.extendObject(self.data, data, !replace);
67
+ }
68
+ Object.defineProperty(newData, '__prev', {
69
+ value: tslib.__assign({}, prev),
70
+ enumerable: false,
71
+ configurable: false,
72
+ writable: false
73
+ });
74
+ self.data = newData;
75
+ },
76
+ changeValue: function (name, value, changePristine, force, otherModifier) {
77
+ if (!name) {
78
+ return;
79
+ }
80
+ var origin = getVariable.getVariable(self.data, name, false);
81
+ if (value === origin && !force) {
82
+ return;
83
+ }
84
+ var prev = self.data;
85
+ var data = object.cloneObject(self.data);
86
+ if (prev.__prev) {
87
+ // 基于之前的 __prev 改
88
+ var prevData = object.cloneObject(prev.__prev);
89
+ object.setVariable(prevData, name, origin);
90
+ Object.defineProperty(data, '__prev', {
91
+ value: prevData,
92
+ enumerable: false,
93
+ configurable: false,
94
+ writable: false
95
+ });
96
+ }
97
+ else {
98
+ Object.defineProperty(data, '__prev', {
99
+ value: tslib.__assign({}, prev),
100
+ enumerable: false,
101
+ configurable: false,
102
+ writable: false
103
+ });
104
+ }
105
+ if (value === undefined) {
106
+ object.deleteVariable(data, name);
107
+ }
108
+ else {
109
+ object.setVariable(data, name, value);
110
+ }
111
+ otherModifier === null || otherModifier === void 0 ? void 0 : otherModifier(data);
112
+ if (changePristine) {
113
+ var pristine = object.cloneObject(self.pristine);
114
+ object.setVariable(pristine, name, value);
115
+ otherModifier === null || otherModifier === void 0 ? void 0 : otherModifier(pristine);
116
+ self.pristine = pristine;
117
+ }
118
+ if (!data.__pristine) {
119
+ Object.defineProperty(data, '__pristine', {
120
+ value: self.pristine,
121
+ enumerable: false,
122
+ configurable: false,
123
+ writable: false
124
+ });
125
+ }
126
+ self.data = data;
127
+ },
128
+ setCurrentAction: function (action) {
129
+ self.action = action;
130
+ },
131
+ openDialog: function (ctx, additonal, callback) {
132
+ var proto = ctx.__super ? ctx.__super : self.data;
133
+ if (additonal) {
134
+ proto = object.createObject(proto, additonal);
135
+ }
136
+ var data = object.createObject(proto, tslib.__assign({}, ctx));
137
+ if (self.action.dialog && self.action.dialog.data) {
138
+ self.dialogData = dataMapping.dataMapping(self.action.dialog.data, data);
139
+ var clonedAction = tslib.__assign(tslib.__assign({}, self.action), { dialog: tslib.__assign({}, self.action.dialog) });
140
+ delete clonedAction.dialog.data;
141
+ self.action = clonedAction;
142
+ }
143
+ else {
144
+ self.dialogData = data;
145
+ }
146
+ self.dialogOpen = true;
147
+ callback && dialogCallbacks.set(self.dialogData, callback);
148
+ },
149
+ closeDialog: function (result) {
150
+ var callback = dialogCallbacks.get(self.dialogData);
151
+ self.dialogOpen = false;
152
+ if (callback) {
153
+ dialogCallbacks.delete(self.dialogData);
154
+ setTimeout(function () { return callback(result); }, 200);
155
+ }
156
+ },
157
+ openDrawer: function (ctx, additonal, callback) {
158
+ var proto = ctx.__super ? ctx.__super : self.data;
159
+ if (additonal) {
160
+ proto = object.createObject(proto, additonal);
161
+ }
162
+ var data = object.createObject(proto, tslib.__assign({}, ctx));
163
+ if (self.action.drawer.data) {
164
+ self.drawerData = dataMapping.dataMapping(self.action.drawer.data, data);
165
+ var clonedAction = tslib.__assign(tslib.__assign({}, self.action), { dialog: tslib.__assign({}, self.action.dialog) });
166
+ delete clonedAction.dialog.data;
167
+ self.action = clonedAction;
168
+ }
169
+ else {
170
+ self.drawerData = data;
171
+ }
172
+ self.drawerOpen = true;
173
+ if (callback) {
174
+ dialogCallbacks.set(self.drawerData, callback);
175
+ }
176
+ },
177
+ closeDrawer: function (result) {
178
+ var callback = dialogCallbacks.get(self.drawerData);
179
+ self.drawerOpen = false;
180
+ if (callback) {
181
+ dialogCallbacks.delete(self.drawerData);
182
+ setTimeout(function () { return callback(result); }, 200);
183
+ }
184
+ }
185
+ };
186
+ });
187
+ // export type SIRendererStore = typeof iRendererStore.SnapshotType;
188
+
189
+ exports.iRendererStore = iRendererStore;
@@ -0,0 +1,103 @@
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 service = require('./service.js');
14
+ var combo = require('./combo.js');
15
+ var form = require('./form.js');
16
+ var crud = require('./crud.js');
17
+ var table = require('./table.js');
18
+ var tableV2 = require('./table-v2.js');
19
+ var list = require('./list.js');
20
+ var modal = require('./modal.js');
21
+ var find = require('lodash/find');
22
+ var formItem = require('./formItem.js');
23
+ var manager = require('./manager.js');
24
+ var pagination = require('./pagination.js');
25
+ var app = require('./app.js');
26
+ var root = require('./root.js');
27
+
28
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
+
30
+ var find__default = /*#__PURE__*/_interopDefaultLegacy(find);
31
+
32
+ mobxStateTree.setLivelynessChecking(process.env.NODE_ENV === 'production' ? 'ignore' : 'error');
33
+ var allowedStoreList = [
34
+ service.ServiceStore,
35
+ form.FormStore,
36
+ combo.ComboStore,
37
+ crud.CRUDStore,
38
+ table.TableStore,
39
+ tableV2.TableStoreV2,
40
+ list.ListStore,
41
+ modal.ModalStore,
42
+ formItem.FormItemStore,
43
+ pagination.PaginationStore,
44
+ app.AppStore
45
+ ];
46
+ var RendererStore = mobxStateTree.types
47
+ .model('RendererStore', {
48
+ storeType: 'RendererStore'
49
+ })
50
+ .props({
51
+ visibleState: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {}),
52
+ disableState: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {})
53
+ })
54
+ .views(function (self) { return ({
55
+ get fetcher() {
56
+ return mobxStateTree.getEnv(self).fetcher;
57
+ },
58
+ get notify() {
59
+ return mobxStateTree.getEnv(self).notify;
60
+ },
61
+ get isCancel() {
62
+ return mobxStateTree.getEnv(self).isCancel;
63
+ },
64
+ get __() {
65
+ return mobxStateTree.getEnv(self).translate;
66
+ },
67
+ getStoreById: function (id) {
68
+ return manager.getStoreById(id);
69
+ },
70
+ get stores() {
71
+ return manager.getStores();
72
+ }
73
+ }); })
74
+ .actions(function (self) { return ({
75
+ addStore: function (store) {
76
+ if (store.storeType === root.RootStore.name) {
77
+ return manager.addStore(root.RootStore.create(store, mobxStateTree.getEnv(self)));
78
+ }
79
+ var factory = find__default["default"](allowedStoreList, function (item) { return item.name === store.storeType; });
80
+ return manager.addStore(factory.create(store, mobxStateTree.getEnv(self)));
81
+ },
82
+ removeStore: function (store) {
83
+ // store.dispose();
84
+ manager.removeStore(store);
85
+ },
86
+ setVisible: function (id, value) {
87
+ var _a;
88
+ var state = tslib.__assign(tslib.__assign({}, self.visibleState), (_a = {}, _a[id] = value, _a));
89
+ self.visibleState = state;
90
+ },
91
+ setDisable: function (id, value) {
92
+ var _a;
93
+ var state = tslib.__assign(tslib.__assign({}, self.disableState), (_a = {}, _a[id] = value, _a));
94
+ self.disableState = state;
95
+ }
96
+ }); });
97
+ var RegisterStore = function (store) {
98
+ allowedStoreList.push(store);
99
+ };
100
+
101
+ exports.iRendererStore = iRenderer.iRendererStore;
102
+ exports.RegisterStore = RegisterStore;
103
+ exports.RendererStore = RendererStore;
@@ -0,0 +1,248 @@
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 iRenderer = require('./iRenderer.js');
12
+ var isEqual = require('lodash/isEqual');
13
+ var find = require('lodash/find');
14
+ var helper = require('../utils/helper.js');
15
+ var tpl = require('../utils/tpl.js');
16
+ var object = require('../utils/object.js');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
21
+ var find__default = /*#__PURE__*/_interopDefaultLegacy(find);
22
+
23
+ var Item = mobxStateTree.types
24
+ .model('Item', {
25
+ id: mobxStateTree.types.identifier,
26
+ pristine: mobxStateTree.types.frozen(),
27
+ data: mobxStateTree.types.frozen(),
28
+ index: mobxStateTree.types.number,
29
+ newIndex: mobxStateTree.types.number
30
+ })
31
+ .views(function (self) { return ({
32
+ get checked() {
33
+ return mobxStateTree.getParent(self, 2).isSelected(self);
34
+ },
35
+ get modified() {
36
+ if (!self.data) {
37
+ return false;
38
+ }
39
+ return Object.keys(self.data).some(function (key) { return !isEqual__default["default"](self.data[key], self.pristine[key]); });
40
+ },
41
+ get moved() {
42
+ return self.index !== self.newIndex;
43
+ },
44
+ get locals() {
45
+ return object.createObject(object.extendObject(mobxStateTree.getParent(self, 2).data, {
46
+ index: self.index
47
+ }), self.data);
48
+ },
49
+ get checkable() {
50
+ var table = mobxStateTree.getParent(self, 2);
51
+ return table && table.itemCheckableOn
52
+ ? tpl.evalExpression(table.itemCheckableOn, self.locals)
53
+ : true;
54
+ },
55
+ get draggable() {
56
+ var table = mobxStateTree.getParent(self, 2);
57
+ return table && table.itemDraggableOn
58
+ ? tpl.evalExpression(table.itemDraggableOn, self.locals)
59
+ : true;
60
+ }
61
+ }); })
62
+ .actions(function (self) { return ({
63
+ toggle: function () {
64
+ mobxStateTree.getParent(self, 2).toggle(self);
65
+ },
66
+ change: function (values, savePristine) {
67
+ self.data = helper.immutableExtends(self.data, values);
68
+ savePristine && (self.pristine = self.data);
69
+ },
70
+ reset: function () {
71
+ self.newIndex = self.index;
72
+ self.data = self.pristine;
73
+ }
74
+ }); });
75
+ var ListStore = iRenderer.iRendererStore
76
+ .named('ListStore')
77
+ .props({
78
+ items: mobxStateTree.types.array(Item),
79
+ selectedItems: mobxStateTree.types.array(mobxStateTree.types.reference(Item)),
80
+ primaryField: 'id',
81
+ orderBy: '',
82
+ orderDir: mobxStateTree.types.optional(mobxStateTree.types.union(mobxStateTree.types.literal('asc'), mobxStateTree.types.literal('desc')), 'asc'),
83
+ draggable: false,
84
+ dragging: false,
85
+ multiple: true,
86
+ selectable: false,
87
+ itemCheckableOn: '',
88
+ itemDraggableOn: '',
89
+ hideCheckToggler: false
90
+ })
91
+ .views(function (self) {
92
+ function isSelected(item) {
93
+ return !!~self.selectedItems.indexOf(item);
94
+ }
95
+ function getModifiedItems() {
96
+ return self.items.filter(function (item) { return item.modified; });
97
+ }
98
+ function getModified() {
99
+ return getModifiedItems().length;
100
+ }
101
+ function getMovedItems() {
102
+ return self.items.filter(function (item) { return item.moved; });
103
+ }
104
+ function getMovied() {
105
+ return getMovedItems().length;
106
+ }
107
+ return {
108
+ get allChecked() {
109
+ return !!(self.selectedItems.length ===
110
+ self.checkableItems.length &&
111
+ self.checkableItems.length);
112
+ },
113
+ get checkableItems() {
114
+ return self.items.filter(function (item) { return item.checkable; });
115
+ },
116
+ get unSelectedItems() {
117
+ return self.items.filter(function (item) { return !item.checked; });
118
+ },
119
+ isSelected: isSelected,
120
+ get modified() {
121
+ return getModified();
122
+ },
123
+ get modifiedItems() {
124
+ return getModifiedItems();
125
+ },
126
+ get moved() {
127
+ return getMovied();
128
+ },
129
+ get movedItems() {
130
+ return getMovedItems();
131
+ }
132
+ };
133
+ })
134
+ .actions(function (self) {
135
+ function update(config) {
136
+ config.selectable === void 0 || (self.selectable = config.selectable);
137
+ config.draggable === void 0 || (self.draggable = config.draggable);
138
+ config.multiple === void 0 || (self.multiple = config.multiple);
139
+ config.hideCheckToggler === void 0 ||
140
+ (self.hideCheckToggler = config.hideCheckToggler);
141
+ if (typeof config.orderBy !== 'undefined') {
142
+ setOrderByInfo(config.orderBy, config.orderDir === 'desc' ? 'desc' : 'asc');
143
+ }
144
+ config.itemCheckableOn === void 0 ||
145
+ (self.itemCheckableOn = config.itemCheckableOn);
146
+ config.itemDraggableOn === void 0 ||
147
+ (self.itemDraggableOn = config.itemDraggableOn);
148
+ }
149
+ function initItems(items) {
150
+ var arr = items.map(function (item, key) {
151
+ item = object.isObject(item)
152
+ ? item
153
+ : {
154
+ item: item
155
+ };
156
+ return {
157
+ // id: String((item as any)[self.primaryField] || key),
158
+ id: helper.guid(),
159
+ index: key,
160
+ newIndex: key,
161
+ pristine: item,
162
+ data: item,
163
+ modified: false
164
+ };
165
+ });
166
+ self.selectedItems.clear();
167
+ self.items.replace(arr);
168
+ self.dragging = false;
169
+ }
170
+ function updateSelected(selected, valueField) {
171
+ self.selectedItems.clear();
172
+ self.items.forEach(function (item) {
173
+ if (~selected.indexOf(item.pristine)) {
174
+ self.selectedItems.push(item);
175
+ }
176
+ else if (find__default["default"](selected, function (a) {
177
+ return a[valueField || 'value'] == item.pristine[valueField || 'value'];
178
+ })) {
179
+ self.selectedItems.push(item);
180
+ }
181
+ });
182
+ }
183
+ function toggleAll() {
184
+ if (self.allChecked) {
185
+ self.selectedItems.clear();
186
+ }
187
+ else {
188
+ self.selectedItems.replace(self.checkableItems);
189
+ }
190
+ }
191
+ function toggle(item) {
192
+ if (!item.checkable) {
193
+ return;
194
+ }
195
+ var idx = self.selectedItems.indexOf(item);
196
+ if (self.multiple) {
197
+ ~idx
198
+ ? self.selectedItems.splice(idx, 1)
199
+ : self.selectedItems.push(item);
200
+ }
201
+ else {
202
+ ~idx
203
+ ? self.selectedItems.splice(idx, 1)
204
+ : self.selectedItems.replace([item]);
205
+ }
206
+ }
207
+ function clear() {
208
+ self.selectedItems.clear();
209
+ }
210
+ function setOrderByInfo(key, direction) {
211
+ self.orderBy = key;
212
+ self.orderDir = direction;
213
+ }
214
+ function reset() {
215
+ self.items.forEach(function (item) { return item.reset(); });
216
+ self.dragging = false;
217
+ }
218
+ function toggleDragging() {
219
+ self.dragging = !self.dragging;
220
+ }
221
+ function stopDragging() {
222
+ self.dragging = false;
223
+ }
224
+ function exchange(fromIndex, toIndex) {
225
+ var item = self.items[fromIndex];
226
+ item.newIndex = toIndex;
227
+ var newItems = self.items.slice();
228
+ newItems.splice(fromIndex, 1);
229
+ newItems.splice(toIndex, 0, item);
230
+ self.items.replace(newItems);
231
+ }
232
+ return {
233
+ update: update,
234
+ initItems: initItems,
235
+ updateSelected: updateSelected,
236
+ toggleAll: toggleAll,
237
+ toggle: toggle,
238
+ clear: clear,
239
+ setOrderByInfo: setOrderByInfo,
240
+ reset: reset,
241
+ toggleDragging: toggleDragging,
242
+ stopDragging: stopDragging,
243
+ exchange: exchange
244
+ };
245
+ });
246
+
247
+ exports.Item = Item;
248
+ exports.ListStore = ListStore;
@@ -0,0 +1,56 @@
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
+
12
+ var stores = {};
13
+ function addStore(store) {
14
+ if (stores[store.id]) {
15
+ return stores[store.id];
16
+ }
17
+ stores[store.id] = store;
18
+ // drawer dialog 不加进去,否则有些容器就不会自我销毁 store 了。
19
+ if (store.parentId && !/(?:dialog|drawer)$/.test(store.path)) {
20
+ var parent_1 = stores[store.parentId];
21
+ parent_1.addChildId(store.id);
22
+ }
23
+ cleanUp();
24
+ return store;
25
+ }
26
+ var toDelete = [];
27
+ function removeStore(store) {
28
+ var id = store.id;
29
+ toDelete.push(id);
30
+ store.dispose(cleanUp);
31
+ }
32
+ function cleanUp() {
33
+ var index = toDelete.length - 1;
34
+ while (index >= 0) {
35
+ var id = toDelete[index];
36
+ var store = stores[id];
37
+ if (store && !mobxStateTree.isAlive(store)) {
38
+ delete stores[id];
39
+ toDelete.splice(index, 1);
40
+ }
41
+ else {
42
+ index--;
43
+ }
44
+ }
45
+ }
46
+ function getStoreById(id) {
47
+ return stores[id];
48
+ }
49
+ function getStores() {
50
+ return stores;
51
+ }
52
+
53
+ exports.addStore = addStore;
54
+ exports.getStoreById = getStoreById;
55
+ exports.getStores = getStores;
56
+ exports.removeStore = removeStore;
@@ -0,0 +1,54 @@
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 service = require('./service.js');
11
+ var mobxStateTree = require('mobx-state-tree');
12
+ require('../utils/helper.js');
13
+ var object = require('../utils/object.js');
14
+
15
+ var ModalStore = service.ServiceStore.named('ModalStore')
16
+ .props({
17
+ form: mobxStateTree.types.frozen(),
18
+ entered: false,
19
+ resizeCoord: 0,
20
+ schema: mobxStateTree.types.frozen()
21
+ })
22
+ .views(function (self) {
23
+ return {
24
+ get formData() {
25
+ return object.createObject(self.data, self.form);
26
+ }
27
+ };
28
+ })
29
+ .actions(function (self) {
30
+ return {
31
+ setEntered: function (value) {
32
+ self.entered = value;
33
+ },
34
+ setFormData: function (obj) {
35
+ self.form = obj;
36
+ },
37
+ reset: function () {
38
+ self.form = {};
39
+ self.reInitData({}, true);
40
+ },
41
+ setResizeCoord: function (value) {
42
+ self.resizeCoord = value;
43
+ },
44
+ setSchema: function (schema) {
45
+ if (schema && schema.then) {
46
+ schema.then(function (value) { return mobxStateTree.isAlive(self) && self.setSchema(value); });
47
+ return;
48
+ }
49
+ self.schema = schema;
50
+ }
51
+ };
52
+ });
53
+
54
+ exports.ModalStore = ModalStore;