@pisell/materials 6.12.52 → 6.12.54
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +1 -1
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +1 -1
- package/es/components/PisellSelectionFlow/PisellSelectionFlow.js +7 -1
- package/es/components/PisellSelectionFlow/hooks/useFlowNavigation.js +104 -3
- package/es/components/PisellSelectionFlow/index.d.ts +1 -1
- package/es/components/PisellSelectionFlow/types.d.ts +20 -1
- package/es/components/productCard/cartSkuCard/components/AmountFooter/index.less +1 -1
- package/es/components/productCard/cartSkuCard/index.less +0 -1
- package/es/index.d.ts +2 -2
- package/lib/components/PisellSelectionFlow/PisellSelectionFlow.js +7 -1
- package/lib/components/PisellSelectionFlow/hooks/useFlowNavigation.js +104 -3
- package/lib/components/PisellSelectionFlow/index.d.ts +1 -1
- package/lib/components/PisellSelectionFlow/types.d.ts +20 -1
- package/lib/components/productCard/cartSkuCard/components/AmountFooter/index.less +1 -1
- package/lib/components/productCard/cartSkuCard/index.less +0 -1
- package/lib/index.d.ts +2 -2
- package/package.json +3 -3
|
@@ -19,6 +19,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
19
19
|
const flowGenerationRef = useRef(0);
|
|
20
20
|
const draftRevisionRef = useRef(0);
|
|
21
21
|
const navigationRevisionRef = useRef(0);
|
|
22
|
+
const preparationRevisionRef = useRef(0);
|
|
22
23
|
const transitionPendingRef = useRef(false);
|
|
23
24
|
const processDraftChangeRef = useRef(() => void 0);
|
|
24
25
|
const onDraftChangeRef = useRef(onDraftChange);
|
|
@@ -82,6 +83,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
82
83
|
mountedRef.current = false;
|
|
83
84
|
if (flowGenerationRef.current === generation) flowGenerationRef.current += 1;
|
|
84
85
|
navigationRevisionRef.current += 1;
|
|
86
|
+
preparationRevisionRef.current += 1;
|
|
85
87
|
moduleInitializationRef.current.clear();
|
|
86
88
|
moduleDependencyLifecycleRef.current.clear();
|
|
87
89
|
pendingModuleChangeRef.current.clear();
|
|
@@ -297,7 +299,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
297
299
|
draft,
|
|
298
300
|
moduleState
|
|
299
301
|
});
|
|
300
|
-
const { validateCurrentStep, complete, next, back } = useFlowNavigation({
|
|
302
|
+
const { validateCurrentStep, prepareSteps, complete, next, back } = useFlowNavigation({
|
|
301
303
|
registry,
|
|
302
304
|
draftAdapter,
|
|
303
305
|
createRuntimeIssue,
|
|
@@ -313,6 +315,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
313
315
|
currentStepKeyRef,
|
|
314
316
|
validatedCompletionRef,
|
|
315
317
|
navigationRevisionRef,
|
|
318
|
+
preparationRevisionRef,
|
|
316
319
|
transitionPendingRef,
|
|
317
320
|
completedRef,
|
|
318
321
|
completionPromiseRef,
|
|
@@ -347,6 +350,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
347
350
|
back,
|
|
348
351
|
updateDraft,
|
|
349
352
|
validateCurrentStep,
|
|
353
|
+
prepareSteps,
|
|
350
354
|
complete,
|
|
351
355
|
getState
|
|
352
356
|
}), [
|
|
@@ -354,6 +358,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
354
358
|
complete,
|
|
355
359
|
getState,
|
|
356
360
|
next,
|
|
361
|
+
prepareSteps,
|
|
357
362
|
updateDraft,
|
|
358
363
|
validateCurrentStep
|
|
359
364
|
]);
|
|
@@ -377,6 +382,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
377
382
|
context: contextValue,
|
|
378
383
|
updateDraft,
|
|
379
384
|
validateCurrentStep,
|
|
385
|
+
prepareSteps,
|
|
380
386
|
complete,
|
|
381
387
|
next,
|
|
382
388
|
back,
|
|
@@ -5,7 +5,7 @@ import { getCompiledStepsFingerprint, getSelectionFlowErrorMessage, normalizeFlo
|
|
|
5
5
|
import { useCallback } from "react";
|
|
6
6
|
//#region src/components/PisellSelectionFlow/hooks/useFlowNavigation.ts
|
|
7
7
|
/** 导航、校验与提交门禁独立于模块加载生命周期。 */
|
|
8
|
-
const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mountedRef, moduleStateRef, moduleRevisionRef, draftRevisionRef, flowGenerationRef, moduleHandlesRef, configurationErrorRef, compiledStepsRef, currentStepIndexRef, currentStepKeyRef, validatedCompletionRef, navigationRevisionRef, transitionPendingRef, completedRef, completionPromiseRef, isCompletingRef, draftRef, onCompleteRef, ensureModuleReady, commitModuleState, getFreshContext, onValidationFailed, setCurrentStepIndex, setCompletionError, setCompletionReason, setIsCompleting }) => {
|
|
8
|
+
const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mountedRef, moduleStateRef, moduleRevisionRef, draftRevisionRef, flowGenerationRef, moduleHandlesRef, configurationErrorRef, compiledStepsRef, currentStepIndexRef, currentStepKeyRef, validatedCompletionRef, navigationRevisionRef, preparationRevisionRef, transitionPendingRef, completedRef, completionPromiseRef, isCompletingRef, draftRef, onCompleteRef, ensureModuleReady, commitModuleState, getFreshContext, onValidationFailed, setCurrentStepIndex, setCompletionError, setCompletionReason, setIsCompleting }) => {
|
|
9
9
|
const validateModule = useCallback(function() {
|
|
10
10
|
var _ref = _asyncToGenerator(function* (module) {
|
|
11
11
|
const adapter = resolveFlowModuleAdapter(registry, module.type);
|
|
@@ -104,6 +104,106 @@ const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mounted
|
|
|
104
104
|
for (const module of step.modules) if (!(yield validateModule(module))) return false;
|
|
105
105
|
return true;
|
|
106
106
|
}), [validateModule]);
|
|
107
|
+
const prepareSteps = useCallback(_asyncToGenerator(function* (options = {}) {
|
|
108
|
+
var _options$fromStepInde;
|
|
109
|
+
if (!mountedRef.current || configurationErrorRef.current) return {
|
|
110
|
+
prepared: false,
|
|
111
|
+
cancelled: !mountedRef.current
|
|
112
|
+
};
|
|
113
|
+
const preparationRevision = preparationRevisionRef.current + 1;
|
|
114
|
+
preparationRevisionRef.current = preparationRevision;
|
|
115
|
+
const navigationRevision = navigationRevisionRef.current;
|
|
116
|
+
const flowGeneration = flowGenerationRef.current;
|
|
117
|
+
const compiledFingerprint = getCompiledStepsFingerprint(compiledStepsRef.current);
|
|
118
|
+
const fromStepIndex = Math.max(0, (_options$fromStepInde = options.fromStepIndex) !== null && _options$fromStepInde !== void 0 ? _options$fromStepInde : currentStepIndexRef.current + 1);
|
|
119
|
+
const isCurrentPreparation = () => mountedRef.current && preparationRevisionRef.current === preparationRevision && navigationRevisionRef.current === navigationRevision && flowGenerationRef.current === flowGeneration && getCompiledStepsFingerprint(compiledStepsRef.current) === compiledFingerprint;
|
|
120
|
+
const targetModules = compiledStepsRef.current.filter((step) => step.index >= fromStepIndex).flatMap((step) => step.modules.map((module) => ({
|
|
121
|
+
step,
|
|
122
|
+
module
|
|
123
|
+
})));
|
|
124
|
+
for (let pass = 0; pass <= targetModules.length; pass += 1) {
|
|
125
|
+
for (const { step, module } of targetModules) {
|
|
126
|
+
if (!isCurrentPreparation()) return {
|
|
127
|
+
prepared: false,
|
|
128
|
+
cancelled: true
|
|
129
|
+
};
|
|
130
|
+
const adapter = resolveFlowModuleAdapter(registry, module.type);
|
|
131
|
+
if (!(adapter === null || adapter === void 0 ? void 0 : adapter.validateAutoResolution)) return {
|
|
132
|
+
prepared: false,
|
|
133
|
+
firstUnresolvedStepIndex: step.index,
|
|
134
|
+
moduleKey: module.key
|
|
135
|
+
};
|
|
136
|
+
if (!(yield ensureModuleReady(module))) {
|
|
137
|
+
const state = moduleStateRef.current[module.key];
|
|
138
|
+
return isCurrentPreparation() ? {
|
|
139
|
+
prepared: false,
|
|
140
|
+
firstUnresolvedStepIndex: step.index,
|
|
141
|
+
moduleKey: module.key,
|
|
142
|
+
message: state === null || state === void 0 ? void 0 : state.message
|
|
143
|
+
} : {
|
|
144
|
+
prepared: false,
|
|
145
|
+
cancelled: true
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (!isCurrentPreparation()) return {
|
|
149
|
+
prepared: false,
|
|
150
|
+
cancelled: true
|
|
151
|
+
};
|
|
152
|
+
const validationDraftRevision = draftRevisionRef.current;
|
|
153
|
+
try {
|
|
154
|
+
const context = getFreshContext();
|
|
155
|
+
if (!context) return {
|
|
156
|
+
prepared: false,
|
|
157
|
+
cancelled: true
|
|
158
|
+
};
|
|
159
|
+
const result = normalizeFlowValidationResult(yield adapter.validateAutoResolution(context, module));
|
|
160
|
+
if (!isCurrentPreparation() || draftRevisionRef.current !== validationDraftRevision) return {
|
|
161
|
+
prepared: false,
|
|
162
|
+
cancelled: true
|
|
163
|
+
};
|
|
164
|
+
if (!result.valid) return {
|
|
165
|
+
prepared: false,
|
|
166
|
+
firstUnresolvedStepIndex: step.index,
|
|
167
|
+
moduleKey: module.key,
|
|
168
|
+
message: result.message
|
|
169
|
+
};
|
|
170
|
+
} catch (error) {
|
|
171
|
+
return isCurrentPreparation() ? {
|
|
172
|
+
prepared: false,
|
|
173
|
+
firstUnresolvedStepIndex: step.index,
|
|
174
|
+
moduleKey: module.key,
|
|
175
|
+
message: getSelectionFlowErrorMessage(error)
|
|
176
|
+
} : {
|
|
177
|
+
prepared: false,
|
|
178
|
+
cancelled: true
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (!targetModules.find(({ module }) => {
|
|
183
|
+
var _moduleStateRef$curre;
|
|
184
|
+
return ((_moduleStateRef$curre = moduleStateRef.current[module.key]) === null || _moduleStateRef$curre === void 0 ? void 0 : _moduleStateRef$curre.status) !== "ready";
|
|
185
|
+
})) return isCurrentPreparation() ? { prepared: true } : {
|
|
186
|
+
prepared: false,
|
|
187
|
+
cancelled: true
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
const unresolved = targetModules.find(({ module }) => {
|
|
191
|
+
var _moduleStateRef$curre2;
|
|
192
|
+
return ((_moduleStateRef$curre2 = moduleStateRef.current[module.key]) === null || _moduleStateRef$curre2 === void 0 ? void 0 : _moduleStateRef$curre2.status) !== "ready";
|
|
193
|
+
});
|
|
194
|
+
return unresolved ? {
|
|
195
|
+
prepared: false,
|
|
196
|
+
firstUnresolvedStepIndex: unresolved.step.index,
|
|
197
|
+
moduleKey: unresolved.module.key
|
|
198
|
+
} : {
|
|
199
|
+
prepared: false,
|
|
200
|
+
cancelled: true
|
|
201
|
+
};
|
|
202
|
+
}), [
|
|
203
|
+
ensureModuleReady,
|
|
204
|
+
getFreshContext,
|
|
205
|
+
registry
|
|
206
|
+
]);
|
|
107
207
|
const runBeforeLeaveForCurrentStep = useCallback(_asyncToGenerator(function* () {
|
|
108
208
|
if (configurationErrorRef.current) return false;
|
|
109
209
|
const stepIndex = currentStepIndexRef.current;
|
|
@@ -188,8 +288,8 @@ const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mounted
|
|
|
188
288
|
const latestRevisionFingerprint = latestSteps.flatMap((step) => step.modules).map((module) => `${module.key}:${moduleRevisionRef.current.get(module.key) || 0}`).join("|");
|
|
189
289
|
if (compiledFingerprint !== latestCompiledFingerprint || revisionFingerprint !== latestRevisionFingerprint || draftRevision !== draftRevisionRef.current) {
|
|
190
290
|
const targetStep = latestSteps.find((step) => step.modules.some((module) => {
|
|
191
|
-
var _moduleStateRef$
|
|
192
|
-
return ((_moduleStateRef$
|
|
291
|
+
var _moduleStateRef$curre3;
|
|
292
|
+
return ((_moduleStateRef$curre3 = moduleStateRef.current[module.key]) === null || _moduleStateRef$curre3 === void 0 ? void 0 : _moduleStateRef$curre3.status) !== "ready";
|
|
193
293
|
})) || latestSteps[0];
|
|
194
294
|
const targetModule = targetStep === null || targetStep === void 0 ? void 0 : targetStep.modules[0];
|
|
195
295
|
if (targetStep && targetModule) {
|
|
@@ -274,6 +374,7 @@ const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mounted
|
|
|
274
374
|
]);
|
|
275
375
|
return {
|
|
276
376
|
validateCurrentStep,
|
|
377
|
+
prepareSteps,
|
|
277
378
|
runBeforeLeaveForCurrentStep,
|
|
278
379
|
complete,
|
|
279
380
|
next: useCallback(_asyncToGenerator(function* () {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback } from "./types.js";
|
|
1
|
+
import { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowPrepareStepsOptions, SelectionFlowPrepareStepsResult, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback } from "./types.js";
|
|
2
2
|
import { _default } from "./PisellSelectionFlow.js";
|
|
3
3
|
import { useSelectionFlowContext, useTypedSelectionFlowContext } from "./context.js";
|
|
4
4
|
import { compileSelectionFlow, compileSelectionFlowSteps, hasSelectionDraftFieldValue, isSelectionModuleType, resolveFlowModuleAdapter } from "./compiler.js";
|
|
@@ -57,6 +57,18 @@ type FlowModuleValidationResult = boolean | {
|
|
|
57
57
|
message?: string;
|
|
58
58
|
};
|
|
59
59
|
type FlowModuleValidationReturn = FlowModuleValidationResult | Promise<FlowModuleValidationResult>;
|
|
60
|
+
interface SelectionFlowPrepareStepsOptions {
|
|
61
|
+
/** 从哪个已编译步骤开始准备;默认从当前步骤的下一步开始。 */
|
|
62
|
+
fromStepIndex?: number;
|
|
63
|
+
}
|
|
64
|
+
interface SelectionFlowPrepareStepsResult {
|
|
65
|
+
prepared: boolean;
|
|
66
|
+
/** 新一轮准备、导航、重新编译或卸载使本轮结果失效。 */
|
|
67
|
+
cancelled?: boolean;
|
|
68
|
+
firstUnresolvedStepIndex?: number;
|
|
69
|
+
moduleKey?: string;
|
|
70
|
+
message?: string;
|
|
71
|
+
}
|
|
60
72
|
type FlowModuleBeforeLeaveResult = boolean | {
|
|
61
73
|
allowed: boolean;
|
|
62
74
|
message?: string;
|
|
@@ -98,6 +110,11 @@ interface SelectionFlowModuleAdapter<TDraft, TDraftUpdate, TField extends string
|
|
|
98
110
|
reconcile?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, change: SelectionFlowDraftChange<TDraft, TField, TModuleType>, module: CompiledSelectionFlowModuleConfig<TModuleType>) => void | Promise<void>;
|
|
99
111
|
clearDependencies?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, change: SelectionFlowDraftChange<TDraft, TField, TModuleType>, module: CompiledSelectionFlowModuleConfig<TModuleType>) => void | Promise<void>;
|
|
100
112
|
validate?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, handle: FlowModuleHandle | null, module: CompiledSelectionFlowModuleConfig<TModuleType>) => FlowModuleValidationReturn;
|
|
113
|
+
/**
|
|
114
|
+
* 模块完成 refresh 后,判断当前值能否在无界面的情况下安全采用。
|
|
115
|
+
* 不提供即表示该模块必须由用户进入步骤确认。
|
|
116
|
+
*/
|
|
117
|
+
validateAutoResolution?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, module: CompiledSelectionFlowModuleConfig<TModuleType>) => FlowModuleValidationReturn;
|
|
101
118
|
beforeLeave?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, handle: FlowModuleHandle | null, module: CompiledSelectionFlowModuleConfig<TModuleType>) => FlowModuleBeforeLeaveReturn;
|
|
102
119
|
}
|
|
103
120
|
type SelectionFlowModuleRegistry<TDraft, TDraftUpdate, TField extends string, TModuleType extends string, TServices = unknown, THostContext = unknown> = Record<TModuleType, SelectionFlowModuleAdapter<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>>;
|
|
@@ -117,6 +134,7 @@ interface SelectionFlowRef<TDraft, TDraftUpdate, TField extends string = string,
|
|
|
117
134
|
back: () => boolean;
|
|
118
135
|
updateDraft: (update: TDraftUpdate, meta: SelectionFlowDraftUpdateMeta<TField, TModuleType>) => void;
|
|
119
136
|
validateCurrentStep: () => Promise<boolean>;
|
|
137
|
+
prepareSteps: (options?: SelectionFlowPrepareStepsOptions) => Promise<SelectionFlowPrepareStepsResult>;
|
|
120
138
|
complete: () => Promise<boolean>;
|
|
121
139
|
getState: () => SelectionFlowSnapshot<TDraft, TModuleType>;
|
|
122
140
|
}
|
|
@@ -139,6 +157,7 @@ interface PisellSelectionFlowController<TDraft, TDraftUpdate, TField extends str
|
|
|
139
157
|
completionReason?: SelectionFlowRuntimeIssue;
|
|
140
158
|
updateDraft: (update: TDraftUpdate, meta: SelectionFlowDraftUpdateMeta<TField, TModuleType>) => void;
|
|
141
159
|
validateCurrentStep: () => Promise<boolean>;
|
|
160
|
+
prepareSteps: (options?: SelectionFlowPrepareStepsOptions) => Promise<SelectionFlowPrepareStepsResult>;
|
|
142
161
|
complete: () => Promise<boolean>;
|
|
143
162
|
next: () => Promise<boolean>;
|
|
144
163
|
back: () => boolean;
|
|
@@ -176,4 +195,4 @@ declare class SelectionFlowCompileError extends Error {
|
|
|
176
195
|
constructor(issues: readonly SelectionFlowCompileIssue[]);
|
|
177
196
|
}
|
|
178
197
|
//#endregion
|
|
179
|
-
export { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback };
|
|
198
|
+
export { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowPrepareStepsOptions, SelectionFlowPrepareStepsResult, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback };
|
package/es/index.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ import { Provider as Provider$4 } from "./components/PisellCards/components/Text
|
|
|
79
79
|
import { PisellStepItem, PisellStepsProps } from "./components/PisellSteps/types.js";
|
|
80
80
|
import { PisellProcedureProps, PisellProcedureRef, ProcedureBodyProps, ProcedureFooterProps, ProcedureHeaderProps as ProcedureHeaderProps$1 } from "./components/PisellProcedure/types.js";
|
|
81
81
|
import { PisellProcedure } from "./components/PisellProcedure/PisellProcedure.js";
|
|
82
|
-
import { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback } from "./components/PisellSelectionFlow/types.js";
|
|
82
|
+
import { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowPrepareStepsOptions, SelectionFlowPrepareStepsResult, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback } from "./components/PisellSelectionFlow/types.js";
|
|
83
83
|
import { _default as _default$15 } from "./components/PisellSelectionFlow/PisellSelectionFlow.js";
|
|
84
84
|
import { useSelectionFlowContext, useTypedSelectionFlowContext } from "./components/PisellSelectionFlow/context.js";
|
|
85
85
|
import { compileSelectionFlow, compileSelectionFlowSteps, hasSelectionDraftFieldValue, isSelectionModuleType, resolveFlowModuleAdapter } from "./components/PisellSelectionFlow/compiler.js";
|
|
@@ -279,4 +279,4 @@ import { Number } from "./components/virtual-keyboard/Number/index.js";
|
|
|
279
279
|
import { VirtualInput } from "./components/virtualInput/index.js";
|
|
280
280
|
import { WalletCard } from "./components/walletCard/index.js";
|
|
281
281
|
import { Affix, Alert, Anchor, Avatar, Breadcrumb, Card, Carousel, Col, ColorPicker, Descriptions, Divider, Empty, Grid, InputNumber as InputNumber$1, Mentions, Menu, Pagination, Popconfirm, Popover, Progress, Rate, Result, Row, Space, Spin, Statistic, Steps, Switch as Switch$1, Tag, Timeline, Tooltip, Transfer, Tree, message, notification, version } from "antd";
|
|
282
|
-
export { type AdaptColumnsForPhoneLayoutOptions, Affix, Alert, Anchor, AppVersionControl, AutoComplete, AutoCompleteNumber, AutoResizeText, Avatar, Badge, type BadgeConfig, Translation as BaseTranslation, type BatchActionBarPosition, type BatchActionConfirmConfig, type BatchActionItem, BatchEditor, Breadcrumb, Button, _default as ButtonGroupEdit, _default$1 as ButtonGroupPreview, Calendar, type CalendarPersistContextValue, type CalendarPersistKind, CalendarPersistProvider, Card, CardMetricItem, type PisellStatisticProps as CardMetricItemProps, _default$2 as CardPro, Carousel, type CartSkuCardA12Display, type CartSkuCardA12Presentation, type CartSkuCardA12Slots, type CartSkuCardVariant, Cascader, Checkbox, ClassicLayout, Col, Collapse, ColorPicker, type CompiledSelectionFlowModuleConfig, type CompiledSelectionFlowStep, Component, type CompoundedComponent, ConfigProvider, type CountryCode, type CreateShopFloorPlanClientOptions, CropPhoto, type CursorMode, CustomSelect, DEFAULT_CALENDAR_SLOT_STEP_MINUTES, DEFAULT_RESOURCE_WALL_FILTER_FIELD_KEY, DEFAULT_RESOURCE_WALL_LAYOUT_PERSIST, type DataSourceContainerProps, _default$3 as DataSourceForm, DataSourceImage, DataSourceMenu, DataSourceQRCode, DataSourceSubForm, type DataSourceSubFormProps, _default$4 as DataSourceTable, DataSourceTypography, DataSourceWrapper, DatePicker, type DefaultActionsConfig, Descriptions, _default$5 as Div, Divider, DragSortTree, Drawer, Dropdown, EMPTY_FLOOR_MAP_LAYOUT_CONTEXT, Empty, type EnsureShopFloorPlanByCodeOptions, FIND_FALLBACK_SCANNER_COUNT_KEY, FLOOR_MAP_BUILTIN_SHAPES, FLOOR_MAP_BUILTIN_SHAPE_ELEMENT_KIND, FLOOR_MAP_IMAGE_ELEMENT_KIND, FLOOR_MAP_SELECTION_ZONE_ELEMENT_KIND, FLOOR_MAP_STAGE_ELEMENT_KIND, Filter, type FloorMapBindingPlaceholderReason, FloorMapBuiltinShapeElement, type FloorMapCanvasNameI18n, type FloorMapDataSourceRow, type FloorMapDataSources, type FloorMapEdge, type FloorMapEdgeAnchor, type FloorMapEdgeStatus, type FloorMapElementKindCategory, type FloorMapElementKindConfig, type FloorMapFullscreenMode, FloorMapImageElement, type FloorMapItemBase, type FloorMapLayoutContextValue, FloorMapLayoutProvider, type FloorMapLayoutProviderProps, type FloorMapMergedItem, type FloorMapRenderOptions, type FloorMapResourcePickerRecord, type FloorMapResourcePickerSlotProps, type FloorMapSceneElement, FloorMapSelectionZoneElement, type FloorMapViewConfig, type FloorMapViewportOverlayRenderArgs, type FlowModuleBeforeLeaveResult, type FlowModuleBeforeLeaveReturn, type FlowModuleDataMap, type FlowModuleHandle, type FlowModuleState, type FlowModuleStateMap, type FlowModuleStatus, type FlowModuleValidationResult, type FlowModuleValidationReturn, _default$6 as Form, FormGroup, Checkbox$1 as FormItemCheckbox, ColorPicker$1 as FormItemColorPicker, DatePicker$1 as FormItemDatePicker, IconSelect as FormItemIconSelect, Input as FormItemInput, InputNumber as FormItemInputNumber, Radio as FormItemRadio, RecordListWrapperWithDataSource as FormItemRecordListWrapper, SelectWithDataSource as FormItemSelect, Switch as FormItemSwitch, FormItemTabs, TimePicker as FormItemTimePicker, Translation$1 as FormItemTranslation, Upload as FormItemUpload, Provider as GraphicTextCard, type GraphicTextCardProps, type GraphicTextCardSize, type GraphicTextCardVariant, Grid, type GridProProps, type GridViewProps, type GroupBlocks, type GroupModel, type GroupViewVariant, PREFIX_CLS as HIERARCHICAL_SUMMARY_LIST_PREFIX_CLS, _default$7 as Icon, IconSelect$1 as IconSelect, IconFont as Iconfont, Image, type ImageDataSource, type ImageFillMode, Input$1 as Input, InputNumber$1 as InputNumber, InputNumberRange, type ItemContext, type ItemLayout, JsonWrapperProvider as JsonWrapper, _default$8 as Keyboard, type LevelType, List, type LookupInputRenderContext, LowCodePage, type MailtoOptions, Mentions, Menu, Modal, Provider$1 as MultilevelCard, type MultilevelCardProps, type MultipleSelectRef, NAME_AS_TITLE_EXT_KEY, OrganizationTenantSwitcher, Page, PageHeader, Pagination, PisellAdjustPrice, PisellAdjustPriceInputNumber, PisellAlert, PisellAnchor, PisellAppCard, type PisellAppCardProps, PisellAvatar, type PisellBasicCardProps, MemoizedPisellBasicGrid as PisellBasicGrid, type PisellBasicGridProps, PisellBatchActionBar, type PisellBatchActionBarProps, PisellCard, _default$9 as PisellCardList, type PisellCardPickerCardMeta, type PisellCardPickerCategoryConfig, type PisellCardPickerCategoryLevelConfig, type PisellCardPickerCategoryMode, type PisellCardPickerCategoryPath, type PisellCardPickerItem, type PisellCardPickerMode, PisellCards, PisellCheckboxGroup, PisellConfigProvider, PisellContainer, PisellContent, PisellContext, PisellCountdown, MemoizedPisellCurrency as PisellCurrency, type PisellCurrencyProps, PisellCustomCheckboxGroup, PisellDataSourceContainer, PisellDatePicker, _default$10 as PisellDateTimeDisplay, type PisellDateTimeDisplayProps, Demo as PisellDraggable, PisellDropSort, PisellDropdown, _default$11 as PisellEmail, type PisellEmailProps, PisellEmpty, PisellFields, PisellFilter, type PisellFilterProps, PisellFind, type PisellFindProps, type PisellFindRef, PisellFloatingPanel, PisellFloorMapLayout, type PisellFloorMapLayoutProps, type PisellFloorMapLayoutRef, PisellFooter, index as PisellGoodPassCard, PisellGridPro, GridView as PisellGridView, MemoizedPisellGroupView as PisellGroupView, type PisellGroupViewProps, PisellHeader, PisellHeaderProgressBar, PisellHierarchicalSummaryList, type PisellHierarchicalSummaryListAggregateConfig, type PisellHierarchicalSummaryListAggregateMode, type PisellHierarchicalSummaryListItem, type PisellHierarchicalSummaryListKey, type PisellHierarchicalSummaryListLevelConfig, type PisellHierarchicalSummaryListProps, Provider$2 as PisellImageCard, type PisellImageCardProps, PisellImageCarousels, PisellInformationEntry, PisellInput, PisellLayout, type PisellLayoutProps, PisellLayouts, PisellList01, PisellLoading, _default$12 as PisellLongText, type PisellLongTextProps, PisellLookup, type PisellLookupProps, type PisellLookupRef, PisellMenu, type PisellMenuProps, PisellMetricCard, type PisellMetricCardProps, PisellMetrics, PisellMobileDateRangePicker, type PisellMobileDateRangePickerProps, PisellModal, PisellMultipleSelect, type PisellMultipleSelectProps, PisellNavigationMenu, MemoizedPisellNumber as PisellNumber, Number as PisellNumberKeyboard, type PisellNumberProps, MemoizedPisellPercent as PisellPercent, type PisellPercentProps, _default$13 as PisellPhone, type PisellPhoneProps, Amount as PisellPriceKeyboard, PisellProcedure, ProcedureHeader as PisellProcedureHeader, type ProcedureHeaderProps as PisellProcedureHeaderProps, type PisellProcedureProps, type PisellProcedureRef, PisellQRScanner, type PisellQRScannerProps, PisellQrcode, pisellQuickFilter as PisellQuickFilter, type PisellQuickFilterProps, _default$14 as PisellRating, type PisellRatingProps, PisellRecordBoard, PisellRecordBoardCalendarView, type PisellRecordBoardCalendarViewProps, PisellRecordBoardResourceWallView, PisellReservationSchedule, PisellReservationScheduleBand, type PisellReservationScheduleBandProps, type PisellReservationScheduleProps, PisellRow, type PisellRowProps, PisellScan, PisellScrollView, type PisellScrollViewProps, PisellSectionHeaders, _default$15 as PisellSelectionFlow, type PisellSelectionFlowController, type PisellSelectionFlowProps, PisellShellFrame, type PisellShellFrameConfig, type PisellShellFrameProps, type PisellShellFrameScrollConfig, PisellSider, _default$16 as PisellSingleLineText, type PisellSingleLineTextProps, PisellSingleSelect, type PisellSingleSelectProps, PisellSort, type PisellSortProps, PisellStatisticList, type PisellStatisticListProps, type PisellStatisticProps, type PisellStepItem, PisellSteps, type PisellStepsProps, _default$17 as PisellSuperTabs, type PisellSuperTabsProps, PisellTabbar, PisellTabbar$1 as PisellTabbar2, type PisellTabbarProps, _default$18 as PisellTabbarTemplate1, type PisellTabbarTemplate1Direction, type PisellTabbarTemplate1Props, PisellTags, type PisellTagsProps, PisellText, PisellTimeNavigator, type PisellTimeNavigatorProps, PisellTimeRangeDisplay, type PisellTimeRangeDisplayProps, PisellToast, Toolbar as PisellToolBar, PisellTooltip, PisellUpload, _default$19 as PisellUrl, type PisellUrlProps, PisellViewGrid, PisellWalletPassCard, type PisellWalletPassCardProps, Popconfirm, Popover, type PostShopFloorPlanBody, type ProcedureBodyProps, type ProcedureFooterProps, type ProcedureHeaderProps$1 as ProcedureHeaderProps, ProductCard, ProfileMenu, Progress, PublishVersionModal, type PutShopFloorPlanBody, QRCode, RECORD_BOARD_PHONE_GRID_CLASS, Radio$1 as Radio, Rate, type RecordBoardBlockedTimeMergedRange, type RecordBoardBlockedTimePanelPayload, type RecordBoardBodyView, type RecordBoardBookingMoveDraft, type RecordBoardCalendarBlockedTimePayload, type RecordBoardCalendarBookingLike, type RecordBoardCalendarBookingRenderArgs, type RecordBoardCalendarDayOverlayBooking, type RecordBoardCalendarProps, type RecordBoardCalendarResource, type RecordBoardCalendarResourceRenderArgs, type RecordBoardCalendarSelectedFreeSlot, type RecordBoardCalendarTimelineHeaderGroup, type RecordBoardCalendarTimelineHeaderRenderContext, type RecordBoardChildComponentProps, type RecordBoardColumnFilterConfig, type RecordBoardColumnType, type RecordBoardContextValue, type RecordBoardCreateBookingDayGroup, type RecordBoardCreateBookingFromSelectionPayload, type RecordBoardFieldType, type RecordBoardFloorMapProps, type RecordBoardGetOptions, type RecordBoardGridProps, type RecordBoardLayoutType, type RecordBoardLayoutVariant, type RecordBoardOptionItem, type RecordBoardProps, type RecordBoardResourceWallCardModel, type RecordBoardResourceWallLayoutPersist, type RecordBoardResourceWallProps, type RecordBoardToolBarProps, _default$20 as RecordView, type ReservationScheduleBandValue, type ReservationScheduleValue, Result, Row, SHOP_FLOOR_PLAN_DUPLICATE_CODE, SafeAreaTop, SectionFooters, Segmented, Select, SelectTime, SelectionFlowCompileError, type SelectionFlowCompileIssue, type SelectionFlowCompileIssueCode, type SelectionFlowContextValue, type SelectionFlowDraftAdapter, type SelectionFlowDraftChange, type SelectionFlowDraftUpdateMeta, type SelectionFlowMessageCode, type SelectionFlowMetadata, type SelectionFlowModuleAdapter, type SelectionFlowModuleConfig, type SelectionFlowModuleInput, type SelectionFlowModuleRegistry, type SelectionFlowRef, type SelectionFlowRuntimeIssue, type SelectionFlowSnapshot, type SelectionFlowStepConfig, type SelectionFlowValidationFeedback, type ShopFloorPlanByCodeRequestOptions, type ShopFloorPlanDetail, type ShopFloorPlanHttpAdapter, type ShopFloorPlanLayoutItem, type SingleSelectRef, Skeleton, SliderOuter as Slider, Sort, SortableList, Space, Spin, Statistic, Steps, SubmitButton, Switch$1 as Switch, Provider$3 as TabCard, type TabCardProps, type TabDataItem, type TabbarActionItem, type TabbarDataSource, _default$21 as Table, Tabs, Tag, Provider$4 as TextCard, type TimeNavigatorOrientation, type TimeNavigatorPassthroughProps, type TimeNavigatorValue, TimePicker$1 as TimePicker, type TimeRangeOption, Timeline, type ToolBarProps, Tooltip, Transfer, Translation$2 as Translation, Tree, TreeSelect, Typography, Upload$1 as Upload, type VenueWallAppearanceSlot, type VenueWallAppearanceTheme, type VenueWallStatusKey, type VenueWallStatusTone, type VenueWallStatusToneOverrides, VirtualInput, VirtualKeyboard, VirtualKeyboardTime, WalletCard, type WrapFloorMapOnSaveWithRemotePersistParams, adaptColumnsForPhoneLayout, buildCalendarHourSlotsFromRange, buildCalendarTimelineSlotStartsFromRange, buildFloorPlanPutBody, buildNameAsTitleExtensionsPatch, compileSelectionFlow, compileSelectionFlowSteps, computeSelectionZoneMemberIds, createShopFloorPlanClient, diffVenueWallStatusToneOverrides, findFloorMapRowByDataBinding, _default$22 as floorMapLayoutLocales, floorMapResourcePickerRecordSearchText, floorMapSavedConfigToRemotePatch, formatScheduleAtLabel, getBankCardTypeImg, getFigmaTableCardFromMerged, getFloorMapBindingPlaceholderReason, getFloorMapBuiltinShapeDef, getFloorMapCardPickerCategoryConfig, getFloorMapDisplayLocale, getFloorMapResourcePickerCardMeta, getHorizontalAxisSlotCount, getRangeBounds, getRenderItemByKindRoundTable, getRenderItemByKindTable, getVenueWallStatusToneMap, globalConfig, hasSelectionDraftFieldValue, inferCanvasSizeFromScene, initFloorMapLayoutLocales, isElementNameAsTitleEnabled, isFloorMapBuiltinShapeElementKind, isFloorMapImageElementKind, isFloorPlanDuplicateCodeError, isHttpNotFoundError, isSelectionModuleType, isSelectionZoneItem, isShopFloorPlanNotFoundResponse, loginAndRegister, mergeFloorMapLayoutPropsFromContext, mergeFloorPlanViewRemote, message, notification, parseLayoutFieldToViewConfigPatch, parseNestedPathSegments, pickFloorPlanDetail, pickReferenceDateContainingNow, _default$23 as pisellTimeNavigatorLocales, renderFigmaStyleRoundTableCard, renderFigmaStyleTableCard, renderFloorMapFallbackPlaceholder, resolveFlowModuleAdapter, resolveSceneElementDisplayTitle, sceneElementsToShopLayout, shopLayoutToSceneElements, useFloorMapLayoutContext, usePisellConfig, useRecordBoardContext, useRecordBoardShellBodyMeta, useSelectionFlowContext, useShopFloorPlanSubscription, useToast, useTypedSelectionFlowContext, version, viewConfigToLayoutPayload, wrapFloorMapOnSaveWithRemotePersist };
|
|
282
|
+
export { type AdaptColumnsForPhoneLayoutOptions, Affix, Alert, Anchor, AppVersionControl, AutoComplete, AutoCompleteNumber, AutoResizeText, Avatar, Badge, type BadgeConfig, Translation as BaseTranslation, type BatchActionBarPosition, type BatchActionConfirmConfig, type BatchActionItem, BatchEditor, Breadcrumb, Button, _default as ButtonGroupEdit, _default$1 as ButtonGroupPreview, Calendar, type CalendarPersistContextValue, type CalendarPersistKind, CalendarPersistProvider, Card, CardMetricItem, type PisellStatisticProps as CardMetricItemProps, _default$2 as CardPro, Carousel, type CartSkuCardA12Display, type CartSkuCardA12Presentation, type CartSkuCardA12Slots, type CartSkuCardVariant, Cascader, Checkbox, ClassicLayout, Col, Collapse, ColorPicker, type CompiledSelectionFlowModuleConfig, type CompiledSelectionFlowStep, Component, type CompoundedComponent, ConfigProvider, type CountryCode, type CreateShopFloorPlanClientOptions, CropPhoto, type CursorMode, CustomSelect, DEFAULT_CALENDAR_SLOT_STEP_MINUTES, DEFAULT_RESOURCE_WALL_FILTER_FIELD_KEY, DEFAULT_RESOURCE_WALL_LAYOUT_PERSIST, type DataSourceContainerProps, _default$3 as DataSourceForm, DataSourceImage, DataSourceMenu, DataSourceQRCode, DataSourceSubForm, type DataSourceSubFormProps, _default$4 as DataSourceTable, DataSourceTypography, DataSourceWrapper, DatePicker, type DefaultActionsConfig, Descriptions, _default$5 as Div, Divider, DragSortTree, Drawer, Dropdown, EMPTY_FLOOR_MAP_LAYOUT_CONTEXT, Empty, type EnsureShopFloorPlanByCodeOptions, FIND_FALLBACK_SCANNER_COUNT_KEY, FLOOR_MAP_BUILTIN_SHAPES, FLOOR_MAP_BUILTIN_SHAPE_ELEMENT_KIND, FLOOR_MAP_IMAGE_ELEMENT_KIND, FLOOR_MAP_SELECTION_ZONE_ELEMENT_KIND, FLOOR_MAP_STAGE_ELEMENT_KIND, Filter, type FloorMapBindingPlaceholderReason, FloorMapBuiltinShapeElement, type FloorMapCanvasNameI18n, type FloorMapDataSourceRow, type FloorMapDataSources, type FloorMapEdge, type FloorMapEdgeAnchor, type FloorMapEdgeStatus, type FloorMapElementKindCategory, type FloorMapElementKindConfig, type FloorMapFullscreenMode, FloorMapImageElement, type FloorMapItemBase, type FloorMapLayoutContextValue, FloorMapLayoutProvider, type FloorMapLayoutProviderProps, type FloorMapMergedItem, type FloorMapRenderOptions, type FloorMapResourcePickerRecord, type FloorMapResourcePickerSlotProps, type FloorMapSceneElement, FloorMapSelectionZoneElement, type FloorMapViewConfig, type FloorMapViewportOverlayRenderArgs, type FlowModuleBeforeLeaveResult, type FlowModuleBeforeLeaveReturn, type FlowModuleDataMap, type FlowModuleHandle, type FlowModuleState, type FlowModuleStateMap, type FlowModuleStatus, type FlowModuleValidationResult, type FlowModuleValidationReturn, _default$6 as Form, FormGroup, Checkbox$1 as FormItemCheckbox, ColorPicker$1 as FormItemColorPicker, DatePicker$1 as FormItemDatePicker, IconSelect as FormItemIconSelect, Input as FormItemInput, InputNumber as FormItemInputNumber, Radio as FormItemRadio, RecordListWrapperWithDataSource as FormItemRecordListWrapper, SelectWithDataSource as FormItemSelect, Switch as FormItemSwitch, FormItemTabs, TimePicker as FormItemTimePicker, Translation$1 as FormItemTranslation, Upload as FormItemUpload, Provider as GraphicTextCard, type GraphicTextCardProps, type GraphicTextCardSize, type GraphicTextCardVariant, Grid, type GridProProps, type GridViewProps, type GroupBlocks, type GroupModel, type GroupViewVariant, PREFIX_CLS as HIERARCHICAL_SUMMARY_LIST_PREFIX_CLS, _default$7 as Icon, IconSelect$1 as IconSelect, IconFont as Iconfont, Image, type ImageDataSource, type ImageFillMode, Input$1 as Input, InputNumber$1 as InputNumber, InputNumberRange, type ItemContext, type ItemLayout, JsonWrapperProvider as JsonWrapper, _default$8 as Keyboard, type LevelType, List, type LookupInputRenderContext, LowCodePage, type MailtoOptions, Mentions, Menu, Modal, Provider$1 as MultilevelCard, type MultilevelCardProps, type MultipleSelectRef, NAME_AS_TITLE_EXT_KEY, OrganizationTenantSwitcher, Page, PageHeader, Pagination, PisellAdjustPrice, PisellAdjustPriceInputNumber, PisellAlert, PisellAnchor, PisellAppCard, type PisellAppCardProps, PisellAvatar, type PisellBasicCardProps, MemoizedPisellBasicGrid as PisellBasicGrid, type PisellBasicGridProps, PisellBatchActionBar, type PisellBatchActionBarProps, PisellCard, _default$9 as PisellCardList, type PisellCardPickerCardMeta, type PisellCardPickerCategoryConfig, type PisellCardPickerCategoryLevelConfig, type PisellCardPickerCategoryMode, type PisellCardPickerCategoryPath, type PisellCardPickerItem, type PisellCardPickerMode, PisellCards, PisellCheckboxGroup, PisellConfigProvider, PisellContainer, PisellContent, PisellContext, PisellCountdown, MemoizedPisellCurrency as PisellCurrency, type PisellCurrencyProps, PisellCustomCheckboxGroup, PisellDataSourceContainer, PisellDatePicker, _default$10 as PisellDateTimeDisplay, type PisellDateTimeDisplayProps, Demo as PisellDraggable, PisellDropSort, PisellDropdown, _default$11 as PisellEmail, type PisellEmailProps, PisellEmpty, PisellFields, PisellFilter, type PisellFilterProps, PisellFind, type PisellFindProps, type PisellFindRef, PisellFloatingPanel, PisellFloorMapLayout, type PisellFloorMapLayoutProps, type PisellFloorMapLayoutRef, PisellFooter, index as PisellGoodPassCard, PisellGridPro, GridView as PisellGridView, MemoizedPisellGroupView as PisellGroupView, type PisellGroupViewProps, PisellHeader, PisellHeaderProgressBar, PisellHierarchicalSummaryList, type PisellHierarchicalSummaryListAggregateConfig, type PisellHierarchicalSummaryListAggregateMode, type PisellHierarchicalSummaryListItem, type PisellHierarchicalSummaryListKey, type PisellHierarchicalSummaryListLevelConfig, type PisellHierarchicalSummaryListProps, Provider$2 as PisellImageCard, type PisellImageCardProps, PisellImageCarousels, PisellInformationEntry, PisellInput, PisellLayout, type PisellLayoutProps, PisellLayouts, PisellList01, PisellLoading, _default$12 as PisellLongText, type PisellLongTextProps, PisellLookup, type PisellLookupProps, type PisellLookupRef, PisellMenu, type PisellMenuProps, PisellMetricCard, type PisellMetricCardProps, PisellMetrics, PisellMobileDateRangePicker, type PisellMobileDateRangePickerProps, PisellModal, PisellMultipleSelect, type PisellMultipleSelectProps, PisellNavigationMenu, MemoizedPisellNumber as PisellNumber, Number as PisellNumberKeyboard, type PisellNumberProps, MemoizedPisellPercent as PisellPercent, type PisellPercentProps, _default$13 as PisellPhone, type PisellPhoneProps, Amount as PisellPriceKeyboard, PisellProcedure, ProcedureHeader as PisellProcedureHeader, type ProcedureHeaderProps as PisellProcedureHeaderProps, type PisellProcedureProps, type PisellProcedureRef, PisellQRScanner, type PisellQRScannerProps, PisellQrcode, pisellQuickFilter as PisellQuickFilter, type PisellQuickFilterProps, _default$14 as PisellRating, type PisellRatingProps, PisellRecordBoard, PisellRecordBoardCalendarView, type PisellRecordBoardCalendarViewProps, PisellRecordBoardResourceWallView, PisellReservationSchedule, PisellReservationScheduleBand, type PisellReservationScheduleBandProps, type PisellReservationScheduleProps, PisellRow, type PisellRowProps, PisellScan, PisellScrollView, type PisellScrollViewProps, PisellSectionHeaders, _default$15 as PisellSelectionFlow, type PisellSelectionFlowController, type PisellSelectionFlowProps, PisellShellFrame, type PisellShellFrameConfig, type PisellShellFrameProps, type PisellShellFrameScrollConfig, PisellSider, _default$16 as PisellSingleLineText, type PisellSingleLineTextProps, PisellSingleSelect, type PisellSingleSelectProps, PisellSort, type PisellSortProps, PisellStatisticList, type PisellStatisticListProps, type PisellStatisticProps, type PisellStepItem, PisellSteps, type PisellStepsProps, _default$17 as PisellSuperTabs, type PisellSuperTabsProps, PisellTabbar, PisellTabbar$1 as PisellTabbar2, type PisellTabbarProps, _default$18 as PisellTabbarTemplate1, type PisellTabbarTemplate1Direction, type PisellTabbarTemplate1Props, PisellTags, type PisellTagsProps, PisellText, PisellTimeNavigator, type PisellTimeNavigatorProps, PisellTimeRangeDisplay, type PisellTimeRangeDisplayProps, PisellToast, Toolbar as PisellToolBar, PisellTooltip, PisellUpload, _default$19 as PisellUrl, type PisellUrlProps, PisellViewGrid, PisellWalletPassCard, type PisellWalletPassCardProps, Popconfirm, Popover, type PostShopFloorPlanBody, type ProcedureBodyProps, type ProcedureFooterProps, type ProcedureHeaderProps$1 as ProcedureHeaderProps, ProductCard, ProfileMenu, Progress, PublishVersionModal, type PutShopFloorPlanBody, QRCode, RECORD_BOARD_PHONE_GRID_CLASS, Radio$1 as Radio, Rate, type RecordBoardBlockedTimeMergedRange, type RecordBoardBlockedTimePanelPayload, type RecordBoardBodyView, type RecordBoardBookingMoveDraft, type RecordBoardCalendarBlockedTimePayload, type RecordBoardCalendarBookingLike, type RecordBoardCalendarBookingRenderArgs, type RecordBoardCalendarDayOverlayBooking, type RecordBoardCalendarProps, type RecordBoardCalendarResource, type RecordBoardCalendarResourceRenderArgs, type RecordBoardCalendarSelectedFreeSlot, type RecordBoardCalendarTimelineHeaderGroup, type RecordBoardCalendarTimelineHeaderRenderContext, type RecordBoardChildComponentProps, type RecordBoardColumnFilterConfig, type RecordBoardColumnType, type RecordBoardContextValue, type RecordBoardCreateBookingDayGroup, type RecordBoardCreateBookingFromSelectionPayload, type RecordBoardFieldType, type RecordBoardFloorMapProps, type RecordBoardGetOptions, type RecordBoardGridProps, type RecordBoardLayoutType, type RecordBoardLayoutVariant, type RecordBoardOptionItem, type RecordBoardProps, type RecordBoardResourceWallCardModel, type RecordBoardResourceWallLayoutPersist, type RecordBoardResourceWallProps, type RecordBoardToolBarProps, _default$20 as RecordView, type ReservationScheduleBandValue, type ReservationScheduleValue, Result, Row, SHOP_FLOOR_PLAN_DUPLICATE_CODE, SafeAreaTop, SectionFooters, Segmented, Select, SelectTime, SelectionFlowCompileError, type SelectionFlowCompileIssue, type SelectionFlowCompileIssueCode, type SelectionFlowContextValue, type SelectionFlowDraftAdapter, type SelectionFlowDraftChange, type SelectionFlowDraftUpdateMeta, type SelectionFlowMessageCode, type SelectionFlowMetadata, type SelectionFlowModuleAdapter, type SelectionFlowModuleConfig, type SelectionFlowModuleInput, type SelectionFlowModuleRegistry, type SelectionFlowPrepareStepsOptions, type SelectionFlowPrepareStepsResult, type SelectionFlowRef, type SelectionFlowRuntimeIssue, type SelectionFlowSnapshot, type SelectionFlowStepConfig, type SelectionFlowValidationFeedback, type ShopFloorPlanByCodeRequestOptions, type ShopFloorPlanDetail, type ShopFloorPlanHttpAdapter, type ShopFloorPlanLayoutItem, type SingleSelectRef, Skeleton, SliderOuter as Slider, Sort, SortableList, Space, Spin, Statistic, Steps, SubmitButton, Switch$1 as Switch, Provider$3 as TabCard, type TabCardProps, type TabDataItem, type TabbarActionItem, type TabbarDataSource, _default$21 as Table, Tabs, Tag, Provider$4 as TextCard, type TimeNavigatorOrientation, type TimeNavigatorPassthroughProps, type TimeNavigatorValue, TimePicker$1 as TimePicker, type TimeRangeOption, Timeline, type ToolBarProps, Tooltip, Transfer, Translation$2 as Translation, Tree, TreeSelect, Typography, Upload$1 as Upload, type VenueWallAppearanceSlot, type VenueWallAppearanceTheme, type VenueWallStatusKey, type VenueWallStatusTone, type VenueWallStatusToneOverrides, VirtualInput, VirtualKeyboard, VirtualKeyboardTime, WalletCard, type WrapFloorMapOnSaveWithRemotePersistParams, adaptColumnsForPhoneLayout, buildCalendarHourSlotsFromRange, buildCalendarTimelineSlotStartsFromRange, buildFloorPlanPutBody, buildNameAsTitleExtensionsPatch, compileSelectionFlow, compileSelectionFlowSteps, computeSelectionZoneMemberIds, createShopFloorPlanClient, diffVenueWallStatusToneOverrides, findFloorMapRowByDataBinding, _default$22 as floorMapLayoutLocales, floorMapResourcePickerRecordSearchText, floorMapSavedConfigToRemotePatch, formatScheduleAtLabel, getBankCardTypeImg, getFigmaTableCardFromMerged, getFloorMapBindingPlaceholderReason, getFloorMapBuiltinShapeDef, getFloorMapCardPickerCategoryConfig, getFloorMapDisplayLocale, getFloorMapResourcePickerCardMeta, getHorizontalAxisSlotCount, getRangeBounds, getRenderItemByKindRoundTable, getRenderItemByKindTable, getVenueWallStatusToneMap, globalConfig, hasSelectionDraftFieldValue, inferCanvasSizeFromScene, initFloorMapLayoutLocales, isElementNameAsTitleEnabled, isFloorMapBuiltinShapeElementKind, isFloorMapImageElementKind, isFloorPlanDuplicateCodeError, isHttpNotFoundError, isSelectionModuleType, isSelectionZoneItem, isShopFloorPlanNotFoundResponse, loginAndRegister, mergeFloorMapLayoutPropsFromContext, mergeFloorPlanViewRemote, message, notification, parseLayoutFieldToViewConfigPatch, parseNestedPathSegments, pickFloorPlanDetail, pickReferenceDateContainingNow, _default$23 as pisellTimeNavigatorLocales, renderFigmaStyleRoundTableCard, renderFigmaStyleTableCard, renderFloorMapFallbackPlaceholder, resolveFlowModuleAdapter, resolveSceneElementDisplayTitle, sceneElementsToShopLayout, shopLayoutToSceneElements, useFloorMapLayoutContext, usePisellConfig, useRecordBoardContext, useRecordBoardShellBodyMeta, useSelectionFlowContext, useShopFloorPlanSubscription, useToast, useTypedSelectionFlowContext, version, viewConfigToLayoutPayload, wrapFloorMapOnSaveWithRemotePersist };
|
|
@@ -21,6 +21,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
21
21
|
const flowGenerationRef = (0, react.useRef)(0);
|
|
22
22
|
const draftRevisionRef = (0, react.useRef)(0);
|
|
23
23
|
const navigationRevisionRef = (0, react.useRef)(0);
|
|
24
|
+
const preparationRevisionRef = (0, react.useRef)(0);
|
|
24
25
|
const transitionPendingRef = (0, react.useRef)(false);
|
|
25
26
|
const processDraftChangeRef = (0, react.useRef)(() => void 0);
|
|
26
27
|
const onDraftChangeRef = (0, react.useRef)(onDraftChange);
|
|
@@ -84,6 +85,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
84
85
|
mountedRef.current = false;
|
|
85
86
|
if (flowGenerationRef.current === generation) flowGenerationRef.current += 1;
|
|
86
87
|
navigationRevisionRef.current += 1;
|
|
88
|
+
preparationRevisionRef.current += 1;
|
|
87
89
|
moduleInitializationRef.current.clear();
|
|
88
90
|
moduleDependencyLifecycleRef.current.clear();
|
|
89
91
|
pendingModuleChangeRef.current.clear();
|
|
@@ -299,7 +301,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
299
301
|
draft,
|
|
300
302
|
moduleState
|
|
301
303
|
});
|
|
302
|
-
const { validateCurrentStep, complete, next, back } = require_useFlowNavigation.useFlowNavigation({
|
|
304
|
+
const { validateCurrentStep, prepareSteps, complete, next, back } = require_useFlowNavigation.useFlowNavigation({
|
|
303
305
|
registry,
|
|
304
306
|
draftAdapter,
|
|
305
307
|
createRuntimeIssue,
|
|
@@ -315,6 +317,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
315
317
|
currentStepKeyRef,
|
|
316
318
|
validatedCompletionRef,
|
|
317
319
|
navigationRevisionRef,
|
|
320
|
+
preparationRevisionRef,
|
|
318
321
|
transitionPendingRef,
|
|
319
322
|
completedRef,
|
|
320
323
|
completionPromiseRef,
|
|
@@ -349,6 +352,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
349
352
|
back,
|
|
350
353
|
updateDraft,
|
|
351
354
|
validateCurrentStep,
|
|
355
|
+
prepareSteps,
|
|
352
356
|
complete,
|
|
353
357
|
getState
|
|
354
358
|
}), [
|
|
@@ -356,6 +360,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
356
360
|
complete,
|
|
357
361
|
getState,
|
|
358
362
|
next,
|
|
363
|
+
prepareSteps,
|
|
359
364
|
updateDraft,
|
|
360
365
|
validateCurrentStep
|
|
361
366
|
]);
|
|
@@ -379,6 +384,7 @@ const SelectionFlow = ({ registry, draftAdapter, steps, initialDraft, initialSte
|
|
|
379
384
|
context: contextValue,
|
|
380
385
|
updateDraft,
|
|
381
386
|
validateCurrentStep,
|
|
387
|
+
prepareSteps,
|
|
382
388
|
complete,
|
|
383
389
|
next,
|
|
384
390
|
back,
|
|
@@ -6,7 +6,7 @@ const require_utils = require("../utils.js");
|
|
|
6
6
|
let react = require("react");
|
|
7
7
|
//#region src/components/PisellSelectionFlow/hooks/useFlowNavigation.ts
|
|
8
8
|
/** 导航、校验与提交门禁独立于模块加载生命周期。 */
|
|
9
|
-
const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mountedRef, moduleStateRef, moduleRevisionRef, draftRevisionRef, flowGenerationRef, moduleHandlesRef, configurationErrorRef, compiledStepsRef, currentStepIndexRef, currentStepKeyRef, validatedCompletionRef, navigationRevisionRef, transitionPendingRef, completedRef, completionPromiseRef, isCompletingRef, draftRef, onCompleteRef, ensureModuleReady, commitModuleState, getFreshContext, onValidationFailed, setCurrentStepIndex, setCompletionError, setCompletionReason, setIsCompleting }) => {
|
|
9
|
+
const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mountedRef, moduleStateRef, moduleRevisionRef, draftRevisionRef, flowGenerationRef, moduleHandlesRef, configurationErrorRef, compiledStepsRef, currentStepIndexRef, currentStepKeyRef, validatedCompletionRef, navigationRevisionRef, preparationRevisionRef, transitionPendingRef, completedRef, completionPromiseRef, isCompletingRef, draftRef, onCompleteRef, ensureModuleReady, commitModuleState, getFreshContext, onValidationFailed, setCurrentStepIndex, setCompletionError, setCompletionReason, setIsCompleting }) => {
|
|
10
10
|
const validateModule = (0, react.useCallback)(function() {
|
|
11
11
|
var _ref = require_asyncToGenerator._asyncToGenerator(function* (module) {
|
|
12
12
|
const adapter = require_compiler.resolveFlowModuleAdapter(registry, module.type);
|
|
@@ -105,6 +105,106 @@ const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mounted
|
|
|
105
105
|
for (const module of step.modules) if (!(yield validateModule(module))) return false;
|
|
106
106
|
return true;
|
|
107
107
|
}), [validateModule]);
|
|
108
|
+
const prepareSteps = (0, react.useCallback)(require_asyncToGenerator._asyncToGenerator(function* (options = {}) {
|
|
109
|
+
var _options$fromStepInde;
|
|
110
|
+
if (!mountedRef.current || configurationErrorRef.current) return {
|
|
111
|
+
prepared: false,
|
|
112
|
+
cancelled: !mountedRef.current
|
|
113
|
+
};
|
|
114
|
+
const preparationRevision = preparationRevisionRef.current + 1;
|
|
115
|
+
preparationRevisionRef.current = preparationRevision;
|
|
116
|
+
const navigationRevision = navigationRevisionRef.current;
|
|
117
|
+
const flowGeneration = flowGenerationRef.current;
|
|
118
|
+
const compiledFingerprint = require_utils.getCompiledStepsFingerprint(compiledStepsRef.current);
|
|
119
|
+
const fromStepIndex = Math.max(0, (_options$fromStepInde = options.fromStepIndex) !== null && _options$fromStepInde !== void 0 ? _options$fromStepInde : currentStepIndexRef.current + 1);
|
|
120
|
+
const isCurrentPreparation = () => mountedRef.current && preparationRevisionRef.current === preparationRevision && navigationRevisionRef.current === navigationRevision && flowGenerationRef.current === flowGeneration && require_utils.getCompiledStepsFingerprint(compiledStepsRef.current) === compiledFingerprint;
|
|
121
|
+
const targetModules = compiledStepsRef.current.filter((step) => step.index >= fromStepIndex).flatMap((step) => step.modules.map((module) => ({
|
|
122
|
+
step,
|
|
123
|
+
module
|
|
124
|
+
})));
|
|
125
|
+
for (let pass = 0; pass <= targetModules.length; pass += 1) {
|
|
126
|
+
for (const { step, module } of targetModules) {
|
|
127
|
+
if (!isCurrentPreparation()) return {
|
|
128
|
+
prepared: false,
|
|
129
|
+
cancelled: true
|
|
130
|
+
};
|
|
131
|
+
const adapter = require_compiler.resolveFlowModuleAdapter(registry, module.type);
|
|
132
|
+
if (!(adapter === null || adapter === void 0 ? void 0 : adapter.validateAutoResolution)) return {
|
|
133
|
+
prepared: false,
|
|
134
|
+
firstUnresolvedStepIndex: step.index,
|
|
135
|
+
moduleKey: module.key
|
|
136
|
+
};
|
|
137
|
+
if (!(yield ensureModuleReady(module))) {
|
|
138
|
+
const state = moduleStateRef.current[module.key];
|
|
139
|
+
return isCurrentPreparation() ? {
|
|
140
|
+
prepared: false,
|
|
141
|
+
firstUnresolvedStepIndex: step.index,
|
|
142
|
+
moduleKey: module.key,
|
|
143
|
+
message: state === null || state === void 0 ? void 0 : state.message
|
|
144
|
+
} : {
|
|
145
|
+
prepared: false,
|
|
146
|
+
cancelled: true
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (!isCurrentPreparation()) return {
|
|
150
|
+
prepared: false,
|
|
151
|
+
cancelled: true
|
|
152
|
+
};
|
|
153
|
+
const validationDraftRevision = draftRevisionRef.current;
|
|
154
|
+
try {
|
|
155
|
+
const context = getFreshContext();
|
|
156
|
+
if (!context) return {
|
|
157
|
+
prepared: false,
|
|
158
|
+
cancelled: true
|
|
159
|
+
};
|
|
160
|
+
const result = require_utils.normalizeFlowValidationResult(yield adapter.validateAutoResolution(context, module));
|
|
161
|
+
if (!isCurrentPreparation() || draftRevisionRef.current !== validationDraftRevision) return {
|
|
162
|
+
prepared: false,
|
|
163
|
+
cancelled: true
|
|
164
|
+
};
|
|
165
|
+
if (!result.valid) return {
|
|
166
|
+
prepared: false,
|
|
167
|
+
firstUnresolvedStepIndex: step.index,
|
|
168
|
+
moduleKey: module.key,
|
|
169
|
+
message: result.message
|
|
170
|
+
};
|
|
171
|
+
} catch (error) {
|
|
172
|
+
return isCurrentPreparation() ? {
|
|
173
|
+
prepared: false,
|
|
174
|
+
firstUnresolvedStepIndex: step.index,
|
|
175
|
+
moduleKey: module.key,
|
|
176
|
+
message: require_utils.getSelectionFlowErrorMessage(error)
|
|
177
|
+
} : {
|
|
178
|
+
prepared: false,
|
|
179
|
+
cancelled: true
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (!targetModules.find(({ module }) => {
|
|
184
|
+
var _moduleStateRef$curre;
|
|
185
|
+
return ((_moduleStateRef$curre = moduleStateRef.current[module.key]) === null || _moduleStateRef$curre === void 0 ? void 0 : _moduleStateRef$curre.status) !== "ready";
|
|
186
|
+
})) return isCurrentPreparation() ? { prepared: true } : {
|
|
187
|
+
prepared: false,
|
|
188
|
+
cancelled: true
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const unresolved = targetModules.find(({ module }) => {
|
|
192
|
+
var _moduleStateRef$curre2;
|
|
193
|
+
return ((_moduleStateRef$curre2 = moduleStateRef.current[module.key]) === null || _moduleStateRef$curre2 === void 0 ? void 0 : _moduleStateRef$curre2.status) !== "ready";
|
|
194
|
+
});
|
|
195
|
+
return unresolved ? {
|
|
196
|
+
prepared: false,
|
|
197
|
+
firstUnresolvedStepIndex: unresolved.step.index,
|
|
198
|
+
moduleKey: unresolved.module.key
|
|
199
|
+
} : {
|
|
200
|
+
prepared: false,
|
|
201
|
+
cancelled: true
|
|
202
|
+
};
|
|
203
|
+
}), [
|
|
204
|
+
ensureModuleReady,
|
|
205
|
+
getFreshContext,
|
|
206
|
+
registry
|
|
207
|
+
]);
|
|
108
208
|
const runBeforeLeaveForCurrentStep = (0, react.useCallback)(require_asyncToGenerator._asyncToGenerator(function* () {
|
|
109
209
|
if (configurationErrorRef.current) return false;
|
|
110
210
|
const stepIndex = currentStepIndexRef.current;
|
|
@@ -189,8 +289,8 @@ const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mounted
|
|
|
189
289
|
const latestRevisionFingerprint = latestSteps.flatMap((step) => step.modules).map((module) => `${module.key}:${moduleRevisionRef.current.get(module.key) || 0}`).join("|");
|
|
190
290
|
if (compiledFingerprint !== latestCompiledFingerprint || revisionFingerprint !== latestRevisionFingerprint || draftRevision !== draftRevisionRef.current) {
|
|
191
291
|
const targetStep = latestSteps.find((step) => step.modules.some((module) => {
|
|
192
|
-
var _moduleStateRef$
|
|
193
|
-
return ((_moduleStateRef$
|
|
292
|
+
var _moduleStateRef$curre3;
|
|
293
|
+
return ((_moduleStateRef$curre3 = moduleStateRef.current[module.key]) === null || _moduleStateRef$curre3 === void 0 ? void 0 : _moduleStateRef$curre3.status) !== "ready";
|
|
194
294
|
})) || latestSteps[0];
|
|
195
295
|
const targetModule = targetStep === null || targetStep === void 0 ? void 0 : targetStep.modules[0];
|
|
196
296
|
if (targetStep && targetModule) {
|
|
@@ -275,6 +375,7 @@ const useFlowNavigation = ({ registry, draftAdapter, createRuntimeIssue, mounted
|
|
|
275
375
|
]);
|
|
276
376
|
return {
|
|
277
377
|
validateCurrentStep,
|
|
378
|
+
prepareSteps,
|
|
278
379
|
runBeforeLeaveForCurrentStep,
|
|
279
380
|
complete,
|
|
280
381
|
next: (0, react.useCallback)(require_asyncToGenerator._asyncToGenerator(function* () {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback } from "./types.js";
|
|
1
|
+
import { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowPrepareStepsOptions, SelectionFlowPrepareStepsResult, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback } from "./types.js";
|
|
2
2
|
import { _default } from "./PisellSelectionFlow.js";
|
|
3
3
|
import { useSelectionFlowContext, useTypedSelectionFlowContext } from "./context.js";
|
|
4
4
|
import { compileSelectionFlow, compileSelectionFlowSteps, hasSelectionDraftFieldValue, isSelectionModuleType, resolveFlowModuleAdapter } from "./compiler.js";
|
|
@@ -57,6 +57,18 @@ type FlowModuleValidationResult = boolean | {
|
|
|
57
57
|
message?: string;
|
|
58
58
|
};
|
|
59
59
|
type FlowModuleValidationReturn = FlowModuleValidationResult | Promise<FlowModuleValidationResult>;
|
|
60
|
+
interface SelectionFlowPrepareStepsOptions {
|
|
61
|
+
/** 从哪个已编译步骤开始准备;默认从当前步骤的下一步开始。 */
|
|
62
|
+
fromStepIndex?: number;
|
|
63
|
+
}
|
|
64
|
+
interface SelectionFlowPrepareStepsResult {
|
|
65
|
+
prepared: boolean;
|
|
66
|
+
/** 新一轮准备、导航、重新编译或卸载使本轮结果失效。 */
|
|
67
|
+
cancelled?: boolean;
|
|
68
|
+
firstUnresolvedStepIndex?: number;
|
|
69
|
+
moduleKey?: string;
|
|
70
|
+
message?: string;
|
|
71
|
+
}
|
|
60
72
|
type FlowModuleBeforeLeaveResult = boolean | {
|
|
61
73
|
allowed: boolean;
|
|
62
74
|
message?: string;
|
|
@@ -98,6 +110,11 @@ interface SelectionFlowModuleAdapter<TDraft, TDraftUpdate, TField extends string
|
|
|
98
110
|
reconcile?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, change: SelectionFlowDraftChange<TDraft, TField, TModuleType>, module: CompiledSelectionFlowModuleConfig<TModuleType>) => void | Promise<void>;
|
|
99
111
|
clearDependencies?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, change: SelectionFlowDraftChange<TDraft, TField, TModuleType>, module: CompiledSelectionFlowModuleConfig<TModuleType>) => void | Promise<void>;
|
|
100
112
|
validate?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, handle: FlowModuleHandle | null, module: CompiledSelectionFlowModuleConfig<TModuleType>) => FlowModuleValidationReturn;
|
|
113
|
+
/**
|
|
114
|
+
* 模块完成 refresh 后,判断当前值能否在无界面的情况下安全采用。
|
|
115
|
+
* 不提供即表示该模块必须由用户进入步骤确认。
|
|
116
|
+
*/
|
|
117
|
+
validateAutoResolution?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, module: CompiledSelectionFlowModuleConfig<TModuleType>) => FlowModuleValidationReturn;
|
|
101
118
|
beforeLeave?: (context: SelectionFlowContextValue<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>, handle: FlowModuleHandle | null, module: CompiledSelectionFlowModuleConfig<TModuleType>) => FlowModuleBeforeLeaveReturn;
|
|
102
119
|
}
|
|
103
120
|
type SelectionFlowModuleRegistry<TDraft, TDraftUpdate, TField extends string, TModuleType extends string, TServices = unknown, THostContext = unknown> = Record<TModuleType, SelectionFlowModuleAdapter<TDraft, TDraftUpdate, TField, TModuleType, TServices, THostContext>>;
|
|
@@ -117,6 +134,7 @@ interface SelectionFlowRef<TDraft, TDraftUpdate, TField extends string = string,
|
|
|
117
134
|
back: () => boolean;
|
|
118
135
|
updateDraft: (update: TDraftUpdate, meta: SelectionFlowDraftUpdateMeta<TField, TModuleType>) => void;
|
|
119
136
|
validateCurrentStep: () => Promise<boolean>;
|
|
137
|
+
prepareSteps: (options?: SelectionFlowPrepareStepsOptions) => Promise<SelectionFlowPrepareStepsResult>;
|
|
120
138
|
complete: () => Promise<boolean>;
|
|
121
139
|
getState: () => SelectionFlowSnapshot<TDraft, TModuleType>;
|
|
122
140
|
}
|
|
@@ -139,6 +157,7 @@ interface PisellSelectionFlowController<TDraft, TDraftUpdate, TField extends str
|
|
|
139
157
|
completionReason?: SelectionFlowRuntimeIssue;
|
|
140
158
|
updateDraft: (update: TDraftUpdate, meta: SelectionFlowDraftUpdateMeta<TField, TModuleType>) => void;
|
|
141
159
|
validateCurrentStep: () => Promise<boolean>;
|
|
160
|
+
prepareSteps: (options?: SelectionFlowPrepareStepsOptions) => Promise<SelectionFlowPrepareStepsResult>;
|
|
142
161
|
complete: () => Promise<boolean>;
|
|
143
162
|
next: () => Promise<boolean>;
|
|
144
163
|
back: () => boolean;
|
|
@@ -176,4 +195,4 @@ declare class SelectionFlowCompileError extends Error {
|
|
|
176
195
|
constructor(issues: readonly SelectionFlowCompileIssue[]);
|
|
177
196
|
}
|
|
178
197
|
//#endregion
|
|
179
|
-
export { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback };
|
|
198
|
+
export { CompiledSelectionFlowModuleConfig, CompiledSelectionFlowStep, FlowModuleBeforeLeaveResult, FlowModuleBeforeLeaveReturn, FlowModuleDataMap, FlowModuleHandle, FlowModuleState, FlowModuleStateMap, FlowModuleStatus, FlowModuleValidationResult, FlowModuleValidationReturn, PisellSelectionFlowController, PisellSelectionFlowProps, SelectionFlowCompileError, SelectionFlowCompileIssue, SelectionFlowCompileIssueCode, SelectionFlowContextValue, SelectionFlowDraftAdapter, SelectionFlowDraftChange, SelectionFlowDraftUpdateMeta, SelectionFlowMessageCode, SelectionFlowMetadata, SelectionFlowModuleAdapter, SelectionFlowModuleConfig, SelectionFlowModuleInput, SelectionFlowModuleRegistry, SelectionFlowPrepareStepsOptions, SelectionFlowPrepareStepsResult, SelectionFlowRef, SelectionFlowRuntimeIssue, SelectionFlowSnapshot, SelectionFlowStepConfig, SelectionFlowValidationFeedback };
|