amis-core 6.13.0-beta.1 → 6.13.0-beta.11
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/esm/Root.js +1 -1
- package/esm/RootRenderer.js +15 -7
- package/esm/SchemaRenderer.d.ts +3 -0
- package/esm/SchemaRenderer.js +63 -10
- package/esm/Scoped.js +1 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/StyleManager.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +8 -4
- package/esm/actions/Action.js +1 -1
- package/esm/actions/AjaxAction.js +1 -1
- package/esm/actions/BreakAction.js +1 -1
- package/esm/actions/BroadcastAction.js +1 -1
- package/esm/actions/CmptAction.js +1 -1
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +1 -1
- package/esm/actions/DialogAction.js +1 -1
- package/esm/actions/DrawerAction.js +1 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/EventAction.js +1 -1
- package/esm/actions/LinkAction.js +1 -1
- package/esm/actions/LoopAction.js +1 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.js +1 -1
- package/esm/actions/PrintAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +1 -1
- package/esm/actions/WaitAction.js +1 -1
- package/esm/components/Animations.js +1 -1
- package/esm/components/CustomStyle.js +1 -1
- package/esm/components/ErrorBoundary.js +1 -1
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +1 -1
- package/esm/components/PopOver.js +3 -1
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.js +1 -1
- package/esm/globalVar.js +15 -2
- package/esm/globalVarClientHandler.js +1 -1
- package/esm/globalVarDefaultValueHandler.js +1 -1
- package/esm/index.js +5 -5
- package/esm/locale.js +1 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.js +3 -5
- package/esm/renderers/Item.js +2 -17
- package/esm/renderers/Options.js +1 -1
- package/esm/renderers/Placeholder.js +1 -1
- package/esm/renderers/builtin.js +1 -1
- package/esm/renderers/register.js +1 -1
- package/esm/renderers/wrapControl.js +10 -4
- package/esm/store/app.d.ts +4 -0
- package/esm/store/app.js +1 -1
- package/esm/store/combo.d.ts +12 -0
- package/esm/store/combo.js +1 -1
- package/esm/store/crud.d.ts +5 -0
- package/esm/store/crud.js +5 -1
- package/esm/store/form.d.ts +4 -1
- package/esm/store/form.js +3 -2
- package/esm/store/formItem.js +1 -1
- package/esm/store/iRenderer.d.ts +4 -0
- package/esm/store/iRenderer.js +27 -4
- package/esm/store/index.js +1 -1
- package/esm/store/list.d.ts +4 -0
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.d.ts +6 -0
- package/esm/store/modal.js +7 -2
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.d.ts +4 -0
- package/esm/store/pagination.js +1 -1
- package/esm/store/root.d.ts +14 -2
- package/esm/store/root.js +181 -49
- package/esm/store/service.d.ts +4 -0
- package/esm/store/service.js +1 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +53 -92
- package/esm/store/table.js +42 -20
- package/esm/store/table2.d.ts +5 -0
- package/esm/store/table2.js +17 -10
- package/esm/theme.js +1 -1
- package/esm/utils/Animation.js +1 -1
- package/esm/utils/ColorScale.js +1 -1
- package/esm/utils/DataSchema.js +1 -1
- package/esm/utils/DataScope.js +1 -1
- package/esm/utils/RootClose.js +1 -1
- package/esm/utils/SimpleMap.js +1 -1
- package/esm/utils/animations.js +1 -1
- package/esm/utils/api.js +8 -3
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.js +1 -1
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/browser.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/concatData.js +1 -1
- package/esm/utils/dataMapping.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.js +1 -1
- package/esm/utils/decodeEntity.js +1 -1
- package/esm/utils/dom.js +6 -3
- package/esm/utils/errors.js +2 -1
- package/esm/utils/escapeHtml.js +1 -1
- package/esm/utils/filter-schema.js +1 -1
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.js +1 -1
- package/esm/utils/getPageId.js +1 -1
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +1 -1
- package/esm/utils/helper.js +1 -1
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.js +1 -1
- package/esm/utils/image.js +1 -1
- package/esm/utils/index.js +1 -1
- package/esm/utils/isPureVariable.js +2 -2
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/labelToString.js +1 -1
- package/esm/utils/loopTooMuch.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +1 -1
- package/esm/utils/memoryParse.js +1 -1
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +6 -2
- package/esm/utils/object.js +1 -1
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +1 -1
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/printElement.js +1 -1
- package/esm/utils/renderer-event.js +1 -1
- package/esm/utils/replaceText.js +1 -1
- package/esm/utils/resize-sensor.js +1 -1
- package/esm/utils/resolveCondition.js +1 -1
- package/esm/utils/resolveVariable.js +1 -1
- package/esm/utils/resolveVariableAndFilter.js +1 -1
- package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/esm/utils/scrollPosition.js +1 -1
- package/esm/utils/string2regExp.js +1 -1
- package/esm/utils/stripNumber.js +1 -1
- package/esm/utils/style-helper.js +1 -1
- package/esm/utils/style.d.ts +13 -0
- package/esm/utils/style.js +43 -3
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +1 -1
- package/esm/utils/tpl-lodash.js +1 -1
- package/esm/utils/tpl.js +6 -2
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validateId.js +1 -1
- package/esm/utils/validations.js +1 -1
- package/esm/utils/visitedCache.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +15 -7
- package/lib/SchemaRenderer.d.ts +3 -0
- package/lib/SchemaRenderer.js +65 -8
- package/lib/Scoped.js +1 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/StyleManager.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +8 -4
- package/lib/actions/Action.js +1 -1
- package/lib/actions/AjaxAction.js +1 -1
- package/lib/actions/BreakAction.js +1 -1
- package/lib/actions/BroadcastAction.js +1 -1
- package/lib/actions/CmptAction.js +1 -1
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +1 -1
- package/lib/actions/DialogAction.js +1 -1
- package/lib/actions/DrawerAction.js +1 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/EventAction.js +1 -1
- package/lib/actions/LinkAction.js +1 -1
- package/lib/actions/LoopAction.js +1 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.js +1 -1
- package/lib/actions/PrintAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +1 -1
- package/lib/actions/WaitAction.js +1 -1
- package/lib/components/Animations.js +1 -1
- package/lib/components/CustomStyle.js +1 -1
- package/lib/components/ErrorBoundary.js +1 -1
- package/lib/components/LazyComponent.js +1 -1
- package/lib/components/Overlay.js +1 -1
- package/lib/components/PopOver.js +3 -1
- package/lib/env.js +1 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.js +1 -1
- package/lib/globalVar.js +19 -2
- package/lib/globalVarClientHandler.js +1 -1
- package/lib/globalVarDefaultValueHandler.js +1 -1
- package/lib/index.js +6 -4
- package/lib/locale.js +1 -1
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.js +3 -5
- package/lib/renderers/Item.js +2 -17
- package/lib/renderers/Options.js +1 -1
- package/lib/renderers/Placeholder.js +1 -1
- package/lib/renderers/builtin.js +1 -1
- package/lib/renderers/register.js +1 -1
- package/lib/renderers/wrapControl.js +10 -4
- package/lib/store/app.d.ts +4 -0
- package/lib/store/app.js +1 -1
- package/lib/store/combo.d.ts +12 -1
- package/lib/store/combo.js +1 -1
- package/lib/store/crud.d.ts +5 -0
- package/lib/store/crud.js +5 -1
- package/lib/store/form.d.ts +4 -2
- package/lib/store/form.js +3 -2
- package/lib/store/formItem.js +1 -1
- package/lib/store/iRenderer.d.ts +4 -0
- package/lib/store/iRenderer.js +30 -3
- package/lib/store/index.js +1 -1
- package/lib/store/list.d.ts +4 -0
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.d.ts +6 -0
- package/lib/store/modal.js +7 -2
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.d.ts +4 -0
- package/lib/store/pagination.js +1 -1
- package/lib/store/root.d.ts +14 -3
- package/lib/store/root.js +178 -46
- package/lib/store/service.d.ts +4 -0
- package/lib/store/service.js +1 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +53 -93
- package/lib/store/table.js +41 -19
- package/lib/store/table2.d.ts +5 -0
- package/lib/store/table2.js +17 -10
- package/lib/theme.js +1 -1
- package/lib/utils/Animation.js +1 -1
- package/lib/utils/ColorScale.js +1 -1
- package/lib/utils/DataSchema.js +1 -1
- package/lib/utils/DataScope.js +1 -1
- package/lib/utils/RootClose.js +1 -1
- package/lib/utils/SimpleMap.js +1 -1
- package/lib/utils/animations.js +1 -1
- package/lib/utils/api.js +8 -3
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.js +1 -1
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/browser.js +1 -1
- package/lib/utils/columnsSplit.js +1 -1
- package/lib/utils/concatData.js +1 -1
- package/lib/utils/dataMapping.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.js +1 -1
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +6 -3
- package/lib/utils/errors.js +2 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.js +1 -1
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.js +1 -1
- package/lib/utils/getPageId.js +1 -1
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/helper.js +1 -1
- package/lib/utils/highlight.js +1 -1
- package/lib/utils/icon.js +1 -1
- package/lib/utils/image.js +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/isPureVariable.js +2 -2
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/labelToString.js +1 -1
- package/lib/utils/loopTooMuch.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +1 -1
- package/lib/utils/memoryParse.js +1 -1
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +6 -2
- package/lib/utils/object.js +1 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +1 -1
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/printElement.js +1 -1
- package/lib/utils/renderer-event.js +1 -1
- package/lib/utils/replaceText.js +1 -1
- package/lib/utils/resize-sensor.js +1 -1
- package/lib/utils/resolveCondition.js +1 -1
- package/lib/utils/resolveVariable.js +1 -1
- package/lib/utils/resolveVariableAndFilter.js +1 -1
- package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/lib/utils/scrollPosition.js +1 -1
- package/lib/utils/string2regExp.js +1 -1
- package/lib/utils/stripNumber.js +1 -1
- package/lib/utils/style-helper.js +1 -1
- package/lib/utils/style.d.ts +13 -0
- package/lib/utils/style.js +44 -2
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +1 -1
- package/lib/utils/tpl-lodash.js +1 -1
- package/lib/utils/tpl.js +6 -2
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validateId.js +1 -1
- package/lib/utils/validations.js +1 -1
- package/lib/utils/visitedCache.js +1 -1
- package/package.json +2 -2
package/lib/store/root.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.13.0-beta.
|
|
2
|
+
* amis-core v6.13.0-beta.11
|
|
3
3
|
* Copyright 2018-2025 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -53,7 +53,7 @@ require('uncontrollable');
|
|
|
53
53
|
require('hoist-non-react-statics');
|
|
54
54
|
require('../utils/validations.js');
|
|
55
55
|
require('../utils/resolveCondition.js');
|
|
56
|
-
require('mobx');
|
|
56
|
+
var mobx = require('mobx');
|
|
57
57
|
require('../utils/Animation.js');
|
|
58
58
|
var globalVar = require('../globalVar.js');
|
|
59
59
|
|
|
@@ -68,11 +68,17 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
68
68
|
runtimeErrorStack: mobxStateTree.types.frozen(),
|
|
69
69
|
query: mobxStateTree.types.frozen(),
|
|
70
70
|
ready: false,
|
|
71
|
+
// 临时变更,等 react 完成一轮渲染后,将临时变更切成正式变更
|
|
72
|
+
// 主要是为了让可能需要重新渲染的部分组件可以实现 this.props.data 和 prevProps.data 不一致
|
|
73
|
+
// 因为很多组件内部会 diff this.props.data 和 prevProps.data 来决定是否更新的逻辑
|
|
74
|
+
globalVarTempStates: mobxStateTree.types.optional(mobxStateTree.types.map(mobxStateTree.types.frozen()), {}),
|
|
75
|
+
// 正式变更
|
|
71
76
|
globalVarStates: mobxStateTree.types.optional(mobxStateTree.types.map(mobxStateTree.types.frozen()), {})
|
|
72
77
|
})
|
|
73
78
|
.volatile(function (self) {
|
|
74
79
|
return {
|
|
75
80
|
context: {},
|
|
81
|
+
legacyGlobalTempContext: {},
|
|
76
82
|
globalVars: [],
|
|
77
83
|
globalData: {
|
|
78
84
|
global: {},
|
|
@@ -81,45 +87,80 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
81
87
|
};
|
|
82
88
|
})
|
|
83
89
|
.views(function (self) { return ({
|
|
90
|
+
get nextGlobalData() {
|
|
91
|
+
var globalData = {};
|
|
92
|
+
var globalState = {};
|
|
93
|
+
var chain = object.extractObjectChain(self.data);
|
|
94
|
+
var touched = false;
|
|
95
|
+
var saved = true;
|
|
96
|
+
var errors = {};
|
|
97
|
+
var initialized = true;
|
|
98
|
+
self.globalVarTempStates.forEach(function (state, key) {
|
|
99
|
+
globalData[key] = state.value;
|
|
100
|
+
touched = touched || state.touched;
|
|
101
|
+
if (!state.saved) {
|
|
102
|
+
saved = false;
|
|
103
|
+
}
|
|
104
|
+
if (state.errorMessages.length) {
|
|
105
|
+
errors[key] = state.errorMessages;
|
|
106
|
+
}
|
|
107
|
+
if (!state.initialized) {
|
|
108
|
+
initialized = false;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
globalState = {
|
|
112
|
+
fields: self.globalVarTempStates.toJSON(),
|
|
113
|
+
initialized: initialized,
|
|
114
|
+
touched: touched,
|
|
115
|
+
saved: saved,
|
|
116
|
+
errors: errors,
|
|
117
|
+
valid: !Object.keys(errors).length
|
|
118
|
+
};
|
|
119
|
+
chain.unshift({
|
|
120
|
+
global: globalData,
|
|
121
|
+
globalState: globalState
|
|
122
|
+
});
|
|
123
|
+
chain.unshift(self.legacyGlobalTempContext);
|
|
124
|
+
chain.unshift(self.context);
|
|
125
|
+
return object.createObjectFromChain(chain);
|
|
126
|
+
},
|
|
84
127
|
get downStream() {
|
|
85
128
|
var result = self.data;
|
|
86
|
-
if (self.context || self.query
|
|
129
|
+
if (self.context || self.query) {
|
|
87
130
|
var chain = object.extractObjectChain(result);
|
|
88
131
|
// 数据链中添加 global 和 globalState
|
|
89
132
|
// 对应的是全局变量的值和全局变量的状态
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
self.context && chain.unshift(self.context);
|
|
133
|
+
var globalData_1 = {};
|
|
134
|
+
var touched_1 = false;
|
|
135
|
+
var saved_1 = true;
|
|
136
|
+
var errors_1 = {};
|
|
137
|
+
var initialized_1 = true;
|
|
138
|
+
self.globalVarStates.forEach(function (state, key) {
|
|
139
|
+
globalData_1[key] = state.value;
|
|
140
|
+
touched_1 = touched_1 || state.touched;
|
|
141
|
+
if (!state.saved) {
|
|
142
|
+
saved_1 = false;
|
|
143
|
+
}
|
|
144
|
+
if (state.errorMessages.length) {
|
|
145
|
+
errors_1[key] = state.errorMessages;
|
|
146
|
+
}
|
|
147
|
+
if (!state.initialized) {
|
|
148
|
+
initialized_1 = false;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
// 保存全局变量的值和状态
|
|
152
|
+
Object.assign(self.globalData.global, globalData_1);
|
|
153
|
+
Object.assign(self.globalData.globalState, {
|
|
154
|
+
fields: self.globalVarStates.toJSON(),
|
|
155
|
+
initialized: initialized_1,
|
|
156
|
+
touched: touched_1,
|
|
157
|
+
saved: saved_1,
|
|
158
|
+
errors: errors_1,
|
|
159
|
+
valid: !Object.keys(errors_1).length
|
|
160
|
+
});
|
|
161
|
+
// self.globalData 一直都是那个对象,这样组件里面始终拿到的都是最新的
|
|
162
|
+
chain.unshift(self.globalData);
|
|
163
|
+
chain.unshift(self.context);
|
|
123
164
|
self.query &&
|
|
124
165
|
chain.splice(chain.length - 1, 0, tslib.__assign(tslib.__assign({}, self.query), { __query: self.query }));
|
|
125
166
|
result = object.createObjectFromChain(chain);
|
|
@@ -212,7 +253,7 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
212
253
|
return [4 /*yield*/, getGlobalVarData(item, context, getter)];
|
|
213
254
|
case 1:
|
|
214
255
|
_a.sent();
|
|
215
|
-
state = self.
|
|
256
|
+
state = self.globalVarTempStates.get(item.key);
|
|
216
257
|
updateState(item.key, {
|
|
217
258
|
initialized: true,
|
|
218
259
|
pristine: state.value
|
|
@@ -286,7 +327,7 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
286
327
|
if (!variables.some(function (item) { return item.key === key; })) {
|
|
287
328
|
return "continue";
|
|
288
329
|
}
|
|
289
|
-
var state = self.
|
|
330
|
+
var state = self.globalVarTempStates.get(key);
|
|
290
331
|
if (state) {
|
|
291
332
|
updateState(key, {
|
|
292
333
|
value: data[key],
|
|
@@ -329,7 +370,7 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
329
370
|
bulkGetters = [];
|
|
330
371
|
itemsNotInitialized = [];
|
|
331
372
|
_loop_3 = function (item) {
|
|
332
|
-
var state = self.
|
|
373
|
+
var state = self.globalVarTempStates.get(item.key);
|
|
333
374
|
if (state === null || state === void 0 ? void 0 : state.initialized) {
|
|
334
375
|
return "continue";
|
|
335
376
|
}
|
|
@@ -393,8 +434,9 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
393
434
|
// 初始化全局变量
|
|
394
435
|
_b.globalVars = _c.sent();
|
|
395
436
|
removeVars.forEach(function (item) {
|
|
396
|
-
self.
|
|
437
|
+
self.globalVarTempStates.delete(item.key);
|
|
397
438
|
});
|
|
439
|
+
syncGlobalVarStates();
|
|
398
440
|
return [2 /*return*/];
|
|
399
441
|
}
|
|
400
442
|
});
|
|
@@ -405,7 +447,7 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
405
447
|
};
|
|
406
448
|
// 如果对应变量是个对象,那么可以通过这个扩充变量的值
|
|
407
449
|
var modifyGlobalVarValue = function (key, options) {
|
|
408
|
-
var state = self.
|
|
450
|
+
var state = self.globalVarTempStates.get(key);
|
|
409
451
|
if (!state) {
|
|
410
452
|
return;
|
|
411
453
|
}
|
|
@@ -500,7 +542,7 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
500
542
|
bulkSetters = [];
|
|
501
543
|
values = {};
|
|
502
544
|
_loop_4 = function (varItem) {
|
|
503
|
-
var state = self.
|
|
545
|
+
var state = self.globalVarTempStates.get(varItem.key);
|
|
504
546
|
if (!(state === null || state === void 0 ? void 0 : state.touched)) {
|
|
505
547
|
return "continue";
|
|
506
548
|
}
|
|
@@ -566,16 +608,96 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
566
608
|
trailing: true,
|
|
567
609
|
leading: false
|
|
568
610
|
});
|
|
611
|
+
function syncGlobalVarStates() {
|
|
612
|
+
self.globalVarStates.clear();
|
|
613
|
+
self.globalVarTempStates.forEach(function (state, key) {
|
|
614
|
+
self.globalVarStates.set(key, tslib.__assign({}, state));
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
function syncLegacyGlobalVarStates() {
|
|
618
|
+
if (self.legacyGlobalTempContext.__page !== self.context.__page ||
|
|
619
|
+
self.legacyGlobalTempContext.appVariables !== self.context.appVariables) {
|
|
620
|
+
Object.assign(self.context, self.legacyGlobalTempContext);
|
|
621
|
+
self.data = object.cloneObject(self.data);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
var pendingCount = 0;
|
|
625
|
+
var callbacks = [];
|
|
626
|
+
function addSyncGlobalVarStatePendingTask(fn, callback) {
|
|
627
|
+
pendingCount++;
|
|
628
|
+
callback && callbacks.push(callback);
|
|
629
|
+
fn(function () {
|
|
630
|
+
pendingCount--;
|
|
631
|
+
if (pendingCount === 0) {
|
|
632
|
+
callbacks.forEach(function (callback) { return callback(); });
|
|
633
|
+
callbacks = [];
|
|
634
|
+
if (mobxStateTree.isAlive(self)) {
|
|
635
|
+
self.syncGlobalVarStates();
|
|
636
|
+
self.syncLegacyGlobalVarStates();
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
});
|
|
640
|
+
}
|
|
641
|
+
function observeSet(obj, callback) {
|
|
642
|
+
if (!obj || obj.__observed) {
|
|
643
|
+
// 如果已经被观察过了,就不需要再观察了
|
|
644
|
+
return obj;
|
|
645
|
+
}
|
|
646
|
+
var timer = 0;
|
|
647
|
+
return new Proxy(tslib.__assign({}, obj), {
|
|
648
|
+
get: function (target, prop) {
|
|
649
|
+
if (prop === '__observed') {
|
|
650
|
+
return true;
|
|
651
|
+
}
|
|
652
|
+
return Reflect.get(target, prop);
|
|
653
|
+
},
|
|
654
|
+
set: function (target, prop, value) {
|
|
655
|
+
Reflect.set(target, prop, value);
|
|
656
|
+
cancelAnimationFrame(timer);
|
|
657
|
+
timer = requestAnimationFrame(function () { return callback(target); });
|
|
658
|
+
console.warn("Don't modify the context directly.");
|
|
659
|
+
return true;
|
|
660
|
+
}
|
|
661
|
+
});
|
|
662
|
+
}
|
|
569
663
|
return {
|
|
570
|
-
|
|
664
|
+
updateContextBySetter: function (context) {
|
|
665
|
+
this.updateContext(context);
|
|
666
|
+
self.data = object.cloneObject(self.data);
|
|
667
|
+
},
|
|
668
|
+
updateContext: function (context, isInit) {
|
|
571
669
|
// 因为 context 不是受控属性,直接共用引用好了
|
|
572
670
|
// 否则还会触发孩子节点的重新渲染
|
|
573
|
-
|
|
671
|
+
if (isInit === void 0) { isInit = false; }
|
|
672
|
+
var _a = context || {}, __page = _a.__page, appVariables = _a.appVariables, rest = tslib.__rest(_a, ["__page", "appVariables"]);
|
|
673
|
+
// 对历史用法做兼容
|
|
674
|
+
if (__page || appVariables) {
|
|
675
|
+
// 有部分用户直接在自定义动作脚本里面修改 __page 或者 appVariables 变量
|
|
676
|
+
// 奇怪的是之前的实现方式这种修改是会更新变更的
|
|
677
|
+
// 所以这里用 Proxy 来解决不更新的问题
|
|
678
|
+
__page = __page
|
|
679
|
+
? observeSet(__page, function (__page) {
|
|
680
|
+
return self.updateContextBySetter(tslib.__assign(tslib.__assign({}, self.context), { __page: __page }));
|
|
681
|
+
})
|
|
682
|
+
: __page;
|
|
683
|
+
appVariables = appVariables
|
|
684
|
+
? observeSet(appVariables, function (appVariables) {
|
|
685
|
+
return self.updateContextBySetter(tslib.__assign(tslib.__assign({}, self.context), { appVariables: appVariables }));
|
|
686
|
+
})
|
|
687
|
+
: appVariables;
|
|
688
|
+
if (isInit) {
|
|
689
|
+
self.context.__page = __page;
|
|
690
|
+
self.context.appVariables = appVariables;
|
|
691
|
+
}
|
|
692
|
+
self.legacyGlobalTempContext.__page = __page;
|
|
693
|
+
self.legacyGlobalTempContext.appVariables = appVariables;
|
|
694
|
+
}
|
|
695
|
+
Object.assign(self.context, rest);
|
|
574
696
|
},
|
|
575
697
|
updateGlobalVarState: function (key, state) {
|
|
576
|
-
var origin = self.
|
|
698
|
+
var origin = self.globalVarTempStates.get(key);
|
|
577
699
|
var newState = tslib.__assign(tslib.__assign({}, (origin || globalVar.createGlobalVarState())), state);
|
|
578
|
-
self.
|
|
700
|
+
self.globalVarTempStates.set(key, newState);
|
|
579
701
|
},
|
|
580
702
|
setGlobalVars: setGlobalVars,
|
|
581
703
|
updateGlobalVarValue: updateGlobalVarValue,
|
|
@@ -592,6 +714,16 @@ var RootStore = service.ServiceStore.named('RootStore')
|
|
|
592
714
|
}
|
|
593
715
|
},
|
|
594
716
|
init: init,
|
|
717
|
+
syncGlobalVarStates: syncGlobalVarStates,
|
|
718
|
+
syncLegacyGlobalVarStates: syncLegacyGlobalVarStates,
|
|
719
|
+
addSyncGlobalVarStatePendingTask: addSyncGlobalVarStatePendingTask,
|
|
720
|
+
afterCreate: function () {
|
|
721
|
+
mobxStateTree.addDisposer(self, mobx.reaction(function () { return self.nextGlobalData; }, function () {
|
|
722
|
+
return self.addSyncGlobalVarStatePendingTask(function (callback) {
|
|
723
|
+
return requestAnimationFrame(callback);
|
|
724
|
+
});
|
|
725
|
+
}));
|
|
726
|
+
},
|
|
595
727
|
afterDestroy: function () {
|
|
596
728
|
lazySaveGlobalVarValues.flush();
|
|
597
729
|
}
|
package/lib/store/service.d.ts
CHANGED
|
@@ -16,8 +16,10 @@ export declare const ServiceStore: import("mobx-state-tree").IModelType<{
|
|
|
16
16
|
pristineRaw: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
17
17
|
upStreamData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
18
18
|
action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
19
|
+
dialogSchema: import("mobx-state-tree").IType<any, any, any>;
|
|
19
20
|
dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
20
21
|
dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
22
|
+
drawerSchema: import("mobx-state-tree").IType<any, any, any>;
|
|
21
23
|
drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
22
24
|
drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
23
25
|
} & {
|
|
@@ -48,6 +50,8 @@ export declare const ServiceStore: import("mobx-state-tree").IModelType<{
|
|
|
48
50
|
} & {
|
|
49
51
|
setTopStore(value: any): void;
|
|
50
52
|
initData(data?: object, skipSetPristine?: boolean, changeReason?: import("../types").DataChangeReason | undefined): void;
|
|
53
|
+
temporaryUpdateGlobalVars(globalVar: any): void;
|
|
54
|
+
unDoTemporaryUpdateGlobalVars(): void;
|
|
51
55
|
reset(): void;
|
|
52
56
|
updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined, changeReason?: import("../types").DataChangeReason | undefined): void;
|
|
53
57
|
changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined, changeReason?: import("../types").DataChangeReason | undefined): void;
|
package/lib/store/service.js
CHANGED
package/lib/store/status.js
CHANGED