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/esm/store/root.d.ts
CHANGED
|
@@ -17,8 +17,10 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
|
|
|
17
17
|
pristineRaw: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
18
18
|
upStreamData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
19
19
|
action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
20
|
+
dialogSchema: import("mobx-state-tree").IType<any, any, any>;
|
|
20
21
|
dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
21
22
|
dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
23
|
+
drawerSchema: import("mobx-state-tree").IType<any, any, any>;
|
|
22
24
|
drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
23
25
|
drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
|
|
24
26
|
} & {
|
|
@@ -36,6 +38,7 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
|
|
|
36
38
|
runtimeErrorStack: import("mobx-state-tree").IType<any, any, any>;
|
|
37
39
|
query: import("mobx-state-tree").IType<any, any, any>;
|
|
38
40
|
ready: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
41
|
+
globalVarTempStates: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").IType<GlobalVariableState, GlobalVariableState, GlobalVariableState>>, [undefined]>;
|
|
39
42
|
globalVarStates: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").IType<GlobalVariableState, GlobalVariableState, GlobalVariableState>>, [undefined]>;
|
|
40
43
|
}, {
|
|
41
44
|
readonly parentStore: any;
|
|
@@ -55,6 +58,8 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
|
|
|
55
58
|
} & {
|
|
56
59
|
setTopStore(value: any): void;
|
|
57
60
|
initData(data?: object, skipSetPristine?: boolean, changeReason?: import("..").DataChangeReason | undefined): void;
|
|
61
|
+
temporaryUpdateGlobalVars(globalVar: any): void;
|
|
62
|
+
unDoTemporaryUpdateGlobalVars(): void;
|
|
58
63
|
reset(): void;
|
|
59
64
|
updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined, changeReason?: import("..").DataChangeReason | undefined): void;
|
|
60
65
|
changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined, changeReason?: import("..").DataChangeReason | undefined): void;
|
|
@@ -81,13 +86,16 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
|
|
|
81
86
|
fetchSchema: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
|
|
82
87
|
checkRemote: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
|
|
83
88
|
} & {
|
|
84
|
-
context:
|
|
89
|
+
context: any;
|
|
90
|
+
legacyGlobalTempContext: any;
|
|
85
91
|
globalVars: GlobalVariableItemFull[];
|
|
86
92
|
globalData: any;
|
|
87
93
|
} & {
|
|
94
|
+
readonly nextGlobalData: any;
|
|
88
95
|
readonly downStream: any;
|
|
89
96
|
} & {
|
|
90
|
-
|
|
97
|
+
updateContextBySetter(context: any): void;
|
|
98
|
+
updateContext(context: any, isInit?: boolean): void;
|
|
91
99
|
updateGlobalVarState(key: string, state: Partial<GlobalVariableState>): void;
|
|
92
100
|
setGlobalVars: (vars?: Array<GlobalVariableItem>) => Promise<any>;
|
|
93
101
|
updateGlobalVarValue: (key: string, value: any) => void;
|
|
@@ -99,6 +107,10 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
|
|
|
99
107
|
setRuntimeError(error: any, errorStack: any): void;
|
|
100
108
|
updateLocation(location?: any, parseFn?: Function): void;
|
|
101
109
|
init: (schema: any) => Promise<any>;
|
|
110
|
+
syncGlobalVarStates: () => void;
|
|
111
|
+
syncLegacyGlobalVarStates: () => void;
|
|
112
|
+
addSyncGlobalVarStatePendingTask: (fn: (callback: () => void) => void, callback?: () => void) => void;
|
|
113
|
+
afterCreate(): void;
|
|
102
114
|
afterDestroy(): void;
|
|
103
115
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
104
116
|
export type IRootStore = Instance<typeof RootStore>;
|
package/esm/store/root.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
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
|
|
|
6
|
-
import { __assign, __generator, __values, __awaiter, __read } from 'tslib';
|
|
7
|
-
import { types, flow } from 'mobx-state-tree';
|
|
6
|
+
import { __assign, __generator, __rest, __values, __awaiter, __read } from 'tslib';
|
|
7
|
+
import { types, flow, addDisposer, isAlive } from 'mobx-state-tree';
|
|
8
8
|
import { parseQuery, isObjectShallowModified } from '../utils/helper.js';
|
|
9
9
|
import { ServiceStore } from './service.js';
|
|
10
10
|
import '../utils/api.js';
|
|
@@ -13,7 +13,7 @@ import '../utils/browser.js';
|
|
|
13
13
|
import '../utils/ColorScale.js';
|
|
14
14
|
import 'react';
|
|
15
15
|
import 'lodash/chunk';
|
|
16
|
-
import { extractObjectChain, createObjectFromChain } from '../utils/object.js';
|
|
16
|
+
import { extractObjectChain, createObjectFromChain, cloneObject } from '../utils/object.js';
|
|
17
17
|
import '../utils/memoryParse.js';
|
|
18
18
|
import 'amis-formula';
|
|
19
19
|
import isPlainObject from 'lodash/isPlainObject';
|
|
@@ -46,7 +46,7 @@ import 'uncontrollable';
|
|
|
46
46
|
import 'hoist-non-react-statics';
|
|
47
47
|
import '../utils/validations.js';
|
|
48
48
|
import '../utils/resolveCondition.js';
|
|
49
|
-
import 'mobx';
|
|
49
|
+
import { reaction } from 'mobx';
|
|
50
50
|
import '../utils/Animation.js';
|
|
51
51
|
import { createGlobalVarState, buildGlobalVariable } from '../globalVar.js';
|
|
52
52
|
|
|
@@ -56,11 +56,17 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
56
56
|
runtimeErrorStack: types.frozen(),
|
|
57
57
|
query: types.frozen(),
|
|
58
58
|
ready: false,
|
|
59
|
+
// 临时变更,等 react 完成一轮渲染后,将临时变更切成正式变更
|
|
60
|
+
// 主要是为了让可能需要重新渲染的部分组件可以实现 this.props.data 和 prevProps.data 不一致
|
|
61
|
+
// 因为很多组件内部会 diff this.props.data 和 prevProps.data 来决定是否更新的逻辑
|
|
62
|
+
globalVarTempStates: types.optional(types.map(types.frozen()), {}),
|
|
63
|
+
// 正式变更
|
|
59
64
|
globalVarStates: types.optional(types.map(types.frozen()), {})
|
|
60
65
|
})
|
|
61
66
|
.volatile(function (self) {
|
|
62
67
|
return {
|
|
63
68
|
context: {},
|
|
69
|
+
legacyGlobalTempContext: {},
|
|
64
70
|
globalVars: [],
|
|
65
71
|
globalData: {
|
|
66
72
|
global: {},
|
|
@@ -69,45 +75,80 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
69
75
|
};
|
|
70
76
|
})
|
|
71
77
|
.views(function (self) { return ({
|
|
78
|
+
get nextGlobalData() {
|
|
79
|
+
var globalData = {};
|
|
80
|
+
var globalState = {};
|
|
81
|
+
var chain = extractObjectChain(self.data);
|
|
82
|
+
var touched = false;
|
|
83
|
+
var saved = true;
|
|
84
|
+
var errors = {};
|
|
85
|
+
var initialized = true;
|
|
86
|
+
self.globalVarTempStates.forEach(function (state, key) {
|
|
87
|
+
globalData[key] = state.value;
|
|
88
|
+
touched = touched || state.touched;
|
|
89
|
+
if (!state.saved) {
|
|
90
|
+
saved = false;
|
|
91
|
+
}
|
|
92
|
+
if (state.errorMessages.length) {
|
|
93
|
+
errors[key] = state.errorMessages;
|
|
94
|
+
}
|
|
95
|
+
if (!state.initialized) {
|
|
96
|
+
initialized = false;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
globalState = {
|
|
100
|
+
fields: self.globalVarTempStates.toJSON(),
|
|
101
|
+
initialized: initialized,
|
|
102
|
+
touched: touched,
|
|
103
|
+
saved: saved,
|
|
104
|
+
errors: errors,
|
|
105
|
+
valid: !Object.keys(errors).length
|
|
106
|
+
};
|
|
107
|
+
chain.unshift({
|
|
108
|
+
global: globalData,
|
|
109
|
+
globalState: globalState
|
|
110
|
+
});
|
|
111
|
+
chain.unshift(self.legacyGlobalTempContext);
|
|
112
|
+
chain.unshift(self.context);
|
|
113
|
+
return createObjectFromChain(chain);
|
|
114
|
+
},
|
|
72
115
|
get downStream() {
|
|
73
116
|
var result = self.data;
|
|
74
|
-
if (self.context || self.query
|
|
117
|
+
if (self.context || self.query) {
|
|
75
118
|
var chain = extractObjectChain(result);
|
|
76
119
|
// 数据链中添加 global 和 globalState
|
|
77
120
|
// 对应的是全局变量的值和全局变量的状态
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
self.context && chain.unshift(self.context);
|
|
121
|
+
var globalData_1 = {};
|
|
122
|
+
var touched_1 = false;
|
|
123
|
+
var saved_1 = true;
|
|
124
|
+
var errors_1 = {};
|
|
125
|
+
var initialized_1 = true;
|
|
126
|
+
self.globalVarStates.forEach(function (state, key) {
|
|
127
|
+
globalData_1[key] = state.value;
|
|
128
|
+
touched_1 = touched_1 || state.touched;
|
|
129
|
+
if (!state.saved) {
|
|
130
|
+
saved_1 = false;
|
|
131
|
+
}
|
|
132
|
+
if (state.errorMessages.length) {
|
|
133
|
+
errors_1[key] = state.errorMessages;
|
|
134
|
+
}
|
|
135
|
+
if (!state.initialized) {
|
|
136
|
+
initialized_1 = false;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
// 保存全局变量的值和状态
|
|
140
|
+
Object.assign(self.globalData.global, globalData_1);
|
|
141
|
+
Object.assign(self.globalData.globalState, {
|
|
142
|
+
fields: self.globalVarStates.toJSON(),
|
|
143
|
+
initialized: initialized_1,
|
|
144
|
+
touched: touched_1,
|
|
145
|
+
saved: saved_1,
|
|
146
|
+
errors: errors_1,
|
|
147
|
+
valid: !Object.keys(errors_1).length
|
|
148
|
+
});
|
|
149
|
+
// self.globalData 一直都是那个对象,这样组件里面始终拿到的都是最新的
|
|
150
|
+
chain.unshift(self.globalData);
|
|
151
|
+
chain.unshift(self.context);
|
|
111
152
|
self.query &&
|
|
112
153
|
chain.splice(chain.length - 1, 0, __assign(__assign({}, self.query), { __query: self.query }));
|
|
113
154
|
result = createObjectFromChain(chain);
|
|
@@ -200,7 +241,7 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
200
241
|
return [4 /*yield*/, getGlobalVarData(item, context, getter)];
|
|
201
242
|
case 1:
|
|
202
243
|
_a.sent();
|
|
203
|
-
state = self.
|
|
244
|
+
state = self.globalVarTempStates.get(item.key);
|
|
204
245
|
updateState(item.key, {
|
|
205
246
|
initialized: true,
|
|
206
247
|
pristine: state.value
|
|
@@ -274,7 +315,7 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
274
315
|
if (!variables.some(function (item) { return item.key === key; })) {
|
|
275
316
|
return "continue";
|
|
276
317
|
}
|
|
277
|
-
var state = self.
|
|
318
|
+
var state = self.globalVarTempStates.get(key);
|
|
278
319
|
if (state) {
|
|
279
320
|
updateState(key, {
|
|
280
321
|
value: data[key],
|
|
@@ -317,7 +358,7 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
317
358
|
bulkGetters = [];
|
|
318
359
|
itemsNotInitialized = [];
|
|
319
360
|
_loop_3 = function (item) {
|
|
320
|
-
var state = self.
|
|
361
|
+
var state = self.globalVarTempStates.get(item.key);
|
|
321
362
|
if (state === null || state === void 0 ? void 0 : state.initialized) {
|
|
322
363
|
return "continue";
|
|
323
364
|
}
|
|
@@ -381,8 +422,9 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
381
422
|
// 初始化全局变量
|
|
382
423
|
_b.globalVars = _c.sent();
|
|
383
424
|
removeVars.forEach(function (item) {
|
|
384
|
-
self.
|
|
425
|
+
self.globalVarTempStates.delete(item.key);
|
|
385
426
|
});
|
|
427
|
+
syncGlobalVarStates();
|
|
386
428
|
return [2 /*return*/];
|
|
387
429
|
}
|
|
388
430
|
});
|
|
@@ -393,7 +435,7 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
393
435
|
};
|
|
394
436
|
// 如果对应变量是个对象,那么可以通过这个扩充变量的值
|
|
395
437
|
var modifyGlobalVarValue = function (key, options) {
|
|
396
|
-
var state = self.
|
|
438
|
+
var state = self.globalVarTempStates.get(key);
|
|
397
439
|
if (!state) {
|
|
398
440
|
return;
|
|
399
441
|
}
|
|
@@ -488,7 +530,7 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
488
530
|
bulkSetters = [];
|
|
489
531
|
values = {};
|
|
490
532
|
_loop_4 = function (varItem) {
|
|
491
|
-
var state = self.
|
|
533
|
+
var state = self.globalVarTempStates.get(varItem.key);
|
|
492
534
|
if (!(state === null || state === void 0 ? void 0 : state.touched)) {
|
|
493
535
|
return "continue";
|
|
494
536
|
}
|
|
@@ -554,16 +596,96 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
554
596
|
trailing: true,
|
|
555
597
|
leading: false
|
|
556
598
|
});
|
|
599
|
+
function syncGlobalVarStates() {
|
|
600
|
+
self.globalVarStates.clear();
|
|
601
|
+
self.globalVarTempStates.forEach(function (state, key) {
|
|
602
|
+
self.globalVarStates.set(key, __assign({}, state));
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
function syncLegacyGlobalVarStates() {
|
|
606
|
+
if (self.legacyGlobalTempContext.__page !== self.context.__page ||
|
|
607
|
+
self.legacyGlobalTempContext.appVariables !== self.context.appVariables) {
|
|
608
|
+
Object.assign(self.context, self.legacyGlobalTempContext);
|
|
609
|
+
self.data = cloneObject(self.data);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
var pendingCount = 0;
|
|
613
|
+
var callbacks = [];
|
|
614
|
+
function addSyncGlobalVarStatePendingTask(fn, callback) {
|
|
615
|
+
pendingCount++;
|
|
616
|
+
callback && callbacks.push(callback);
|
|
617
|
+
fn(function () {
|
|
618
|
+
pendingCount--;
|
|
619
|
+
if (pendingCount === 0) {
|
|
620
|
+
callbacks.forEach(function (callback) { return callback(); });
|
|
621
|
+
callbacks = [];
|
|
622
|
+
if (isAlive(self)) {
|
|
623
|
+
self.syncGlobalVarStates();
|
|
624
|
+
self.syncLegacyGlobalVarStates();
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
function observeSet(obj, callback) {
|
|
630
|
+
if (!obj || obj.__observed) {
|
|
631
|
+
// 如果已经被观察过了,就不需要再观察了
|
|
632
|
+
return obj;
|
|
633
|
+
}
|
|
634
|
+
var timer = 0;
|
|
635
|
+
return new Proxy(__assign({}, obj), {
|
|
636
|
+
get: function (target, prop) {
|
|
637
|
+
if (prop === '__observed') {
|
|
638
|
+
return true;
|
|
639
|
+
}
|
|
640
|
+
return Reflect.get(target, prop);
|
|
641
|
+
},
|
|
642
|
+
set: function (target, prop, value) {
|
|
643
|
+
Reflect.set(target, prop, value);
|
|
644
|
+
cancelAnimationFrame(timer);
|
|
645
|
+
timer = requestAnimationFrame(function () { return callback(target); });
|
|
646
|
+
console.warn("Don't modify the context directly.");
|
|
647
|
+
return true;
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
}
|
|
557
651
|
return {
|
|
558
|
-
|
|
652
|
+
updateContextBySetter: function (context) {
|
|
653
|
+
this.updateContext(context);
|
|
654
|
+
self.data = cloneObject(self.data);
|
|
655
|
+
},
|
|
656
|
+
updateContext: function (context, isInit) {
|
|
559
657
|
// 因为 context 不是受控属性,直接共用引用好了
|
|
560
658
|
// 否则还会触发孩子节点的重新渲染
|
|
561
|
-
|
|
659
|
+
if (isInit === void 0) { isInit = false; }
|
|
660
|
+
var _a = context || {}, __page = _a.__page, appVariables = _a.appVariables, rest = __rest(_a, ["__page", "appVariables"]);
|
|
661
|
+
// 对历史用法做兼容
|
|
662
|
+
if (__page || appVariables) {
|
|
663
|
+
// 有部分用户直接在自定义动作脚本里面修改 __page 或者 appVariables 变量
|
|
664
|
+
// 奇怪的是之前的实现方式这种修改是会更新变更的
|
|
665
|
+
// 所以这里用 Proxy 来解决不更新的问题
|
|
666
|
+
__page = __page
|
|
667
|
+
? observeSet(__page, function (__page) {
|
|
668
|
+
return self.updateContextBySetter(__assign(__assign({}, self.context), { __page: __page }));
|
|
669
|
+
})
|
|
670
|
+
: __page;
|
|
671
|
+
appVariables = appVariables
|
|
672
|
+
? observeSet(appVariables, function (appVariables) {
|
|
673
|
+
return self.updateContextBySetter(__assign(__assign({}, self.context), { appVariables: appVariables }));
|
|
674
|
+
})
|
|
675
|
+
: appVariables;
|
|
676
|
+
if (isInit) {
|
|
677
|
+
self.context.__page = __page;
|
|
678
|
+
self.context.appVariables = appVariables;
|
|
679
|
+
}
|
|
680
|
+
self.legacyGlobalTempContext.__page = __page;
|
|
681
|
+
self.legacyGlobalTempContext.appVariables = appVariables;
|
|
682
|
+
}
|
|
683
|
+
Object.assign(self.context, rest);
|
|
562
684
|
},
|
|
563
685
|
updateGlobalVarState: function (key, state) {
|
|
564
|
-
var origin = self.
|
|
686
|
+
var origin = self.globalVarTempStates.get(key);
|
|
565
687
|
var newState = __assign(__assign({}, (origin || createGlobalVarState())), state);
|
|
566
|
-
self.
|
|
688
|
+
self.globalVarTempStates.set(key, newState);
|
|
567
689
|
},
|
|
568
690
|
setGlobalVars: setGlobalVars,
|
|
569
691
|
updateGlobalVarValue: updateGlobalVarValue,
|
|
@@ -580,6 +702,16 @@ var RootStore = ServiceStore.named('RootStore')
|
|
|
580
702
|
}
|
|
581
703
|
},
|
|
582
704
|
init: init,
|
|
705
|
+
syncGlobalVarStates: syncGlobalVarStates,
|
|
706
|
+
syncLegacyGlobalVarStates: syncLegacyGlobalVarStates,
|
|
707
|
+
addSyncGlobalVarStatePendingTask: addSyncGlobalVarStatePendingTask,
|
|
708
|
+
afterCreate: function () {
|
|
709
|
+
addDisposer(self, reaction(function () { return self.nextGlobalData; }, function () {
|
|
710
|
+
return self.addSyncGlobalVarStatePendingTask(function (callback) {
|
|
711
|
+
return requestAnimationFrame(callback);
|
|
712
|
+
});
|
|
713
|
+
}));
|
|
714
|
+
},
|
|
583
715
|
afterDestroy: function () {
|
|
584
716
|
lazySaveGlobalVarValues.flush();
|
|
585
717
|
}
|
package/esm/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/esm/store/service.js
CHANGED
package/esm/store/status.js
CHANGED