@picked/client 0.0.1-dev.1783575114714 → 0.0.1-dev.1783642866820
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/dist/{api-C8oFjhpj.js → api-4pMvd_kR.js} +1 -1
- package/dist/{api-Dr44uSJA.cjs → api-BXhgvSc-.cjs} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/dom-observer/index.js +1 -1
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/actions.mdx +16 -2
- package/dist/docs/sdk/actions.md +21 -3
- package/dist/{dom-CZyRgp2P.js → dom-BwmTHeT7.js} +12 -17
- package/dist/dom-CDrHc_j9.cjs +1 -0
- package/dist/esm/index.js +384 -488
- package/dist/esm/plugins/dom-observer/index.js +1 -1
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/plugins/history-browser-storage/index.js +11 -33
- package/dist/esm/server/index.js +2 -2
- package/dist/experience-instance-DunhI3b8.cjs +1 -0
- package/dist/{experience-instance-M2kR3nTp.js → experience-instance-pTMwxW1R.js} +207 -200
- package/dist/{plugin-8aSF9x8V.cjs → plugin-DDe5zJhy.cjs} +1 -1
- package/dist/{plugin-DiVy3Ubv.js → plugin-DfzEBtiA.js} +1 -1
- package/dist/types/entities/action/action.d.ts +7 -2
- package/dist/types/entities/action/action.d.ts.map +1 -1
- package/dist/types/entities/experience/experience.d.ts +2 -2
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/entities/experience-instance/experience-instance.d.ts +10 -23
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +16 -30
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/entities/response/response.d.ts +0 -1
- package/dist/types/entities/response/response.d.ts.map +1 -1
- package/dist/types/picked.d.ts +14 -10
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts +0 -17
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/utils/dom.d.ts +0 -94
- package/dist/types/utils/dom.d.ts.map +1 -1
- package/dist/types/utils/node-tree/get-next-node-from-action.d.ts +24 -0
- package/dist/types/utils/node-tree/get-next-node-from-action.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/dom-CdxDV3e-.cjs +0 -1
- package/dist/experience-instance-BbSXoRrr.cjs +0 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { n as e, t } from "./rules-logic-HesIUCu6.js";
|
|
2
2
|
import "./logger-DMN6TxJJ.js";
|
|
3
|
-
import { n,
|
|
4
|
-
import {
|
|
5
|
-
import { attach as a, combine as o, createApi as s, createDomain as c, createEffect as l, createEvent as u, sample as d, split as ee } from "effector";
|
|
3
|
+
import { n, o as r } from "./dom-BwmTHeT7.js";
|
|
4
|
+
import { attach as i, combine as a, createApi as o, createDomain as s, createEffect as c, createEvent as l, sample as u, split as d } from "effector";
|
|
6
5
|
import { createFactory as f, invoke as p } from "@withease/factories";
|
|
7
6
|
//#region src/utils/nodes.ts
|
|
8
7
|
function m(e) {
|
|
@@ -22,7 +21,7 @@ function v(e) {
|
|
|
22
21
|
}
|
|
23
22
|
//#endregion
|
|
24
23
|
//#region src/lifecycle/condition-selection.ts
|
|
25
|
-
var y = "conditions.", b =
|
|
24
|
+
var y = "conditions.", b = s("condition-results");
|
|
26
25
|
function x(e) {
|
|
27
26
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
28
27
|
}
|
|
@@ -40,7 +39,7 @@ function C(e) {
|
|
|
40
39
|
return JSON.stringify(S(e));
|
|
41
40
|
}
|
|
42
41
|
var w = f(() => {
|
|
43
|
-
let e = b.store({}), t =
|
|
42
|
+
let e = b.store({}), t = o(e, {
|
|
44
43
|
set(e, t) {
|
|
45
44
|
return {
|
|
46
45
|
...e,
|
|
@@ -141,7 +140,7 @@ async function M(e, t, n) {
|
|
|
141
140
|
var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add(n.id), h(n) && !r ? [n] : t.filter((e) => e.sourceNodeId === n.id).flatMap((n) => {
|
|
142
141
|
let r = e.find((e) => e.id === n.destinationNodeId);
|
|
143
142
|
return r ? N(e, t, r, !1, i) : [];
|
|
144
|
-
})),
|
|
143
|
+
})), ee = (e, t, n) => N(e, t, n, !0, /* @__PURE__ */ new Set()), P = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
|
|
145
144
|
if (i.has(n.id)) return [-1, -1];
|
|
146
145
|
i.add(n.id);
|
|
147
146
|
let a = t.filter((e) => e.sourceNodeId === n.id);
|
|
@@ -154,7 +153,7 @@ var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
|
|
|
154
153
|
a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
|
|
155
154
|
}
|
|
156
155
|
return o === Infinity ? [-1, -1] : [o, s];
|
|
157
|
-
},
|
|
156
|
+
}, te = (e, t, n) => P(e, t, n, !0, /* @__PURE__ */ new Set()), F = (e, t, n, r = /* @__PURE__ */ new Set()) => {
|
|
158
157
|
if (r.has(n.id)) return [-1, -1];
|
|
159
158
|
if (r.add(n.id), n.type === "origin") return [0, 0];
|
|
160
159
|
let i = t.filter((e) => e.destinationNodeId === n.id);
|
|
@@ -167,72 +166,90 @@ var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
|
|
|
167
166
|
s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
|
|
168
167
|
}
|
|
169
168
|
return a === Infinity ? [-1, -1] : [a, o];
|
|
170
|
-
},
|
|
169
|
+
}, ne = (e, t, n) => F(e, t, n, /* @__PURE__ */ new Set()), I = (e) => e.find((e) => e.type === "origin") || null, L = (e, t, n) => {
|
|
171
170
|
if (!e) return I(t);
|
|
172
171
|
let r = n.find((t) => t.sourceNodeId === e.id);
|
|
173
172
|
return r && t.find((e) => e.id === r.destinationNodeId) || null;
|
|
174
173
|
};
|
|
175
174
|
//#endregion
|
|
176
175
|
//#region src/utils/node-tree/get-next-node-from-condition.ts
|
|
177
|
-
async function
|
|
176
|
+
async function re(e, t, n, r) {
|
|
178
177
|
let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
|
|
179
178
|
return n.find((e) => e.id === a?.destinationNodeId);
|
|
180
179
|
}
|
|
181
180
|
//#endregion
|
|
182
|
-
//#region src/
|
|
181
|
+
//#region src/utils/node-tree/get-next-node-from-action.ts
|
|
183
182
|
function R(e, t, n, r) {
|
|
184
|
-
let i =
|
|
185
|
-
return
|
|
183
|
+
let i = r.filter((e) => e.sourceNodeId === t), a = e ? "true" : "false", o = i.find((e) => e.sourceHandle === a) ?? i.find((e) => e.sourceHandle == null);
|
|
184
|
+
return n.find((e) => e.id === o?.destinationNodeId);
|
|
186
185
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
186
|
+
//#endregion
|
|
187
|
+
//#region src/entities/experience-instance/experience-instance.ts
|
|
188
|
+
var z = s("experience-instance"), B = f(({ client: r, experience: s, target: f, options: p }) => {
|
|
189
|
+
let y = l(), b = l(), x = l(), S = l(), C = l(), w = l(), T = l(), E = s.componentStore, D = z.store("transitioning"), O = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), k = O.map((e) => e.filter((e) => h(e.node))), A = O.map((e) => e.at(-1)?.node || null), j = z.store(null);
|
|
190
|
+
u({
|
|
191
|
+
clock: [A, r.steps.listStore],
|
|
192
|
+
source: {
|
|
193
|
+
steps: r.steps.listStore,
|
|
194
|
+
node: A
|
|
195
|
+
},
|
|
196
|
+
filter: ({ node: e }) => e !== null && h(e),
|
|
197
|
+
fn: ({ steps: e, node: t }) => t && h(t) ? e.find((e) => e.id === t.stepId) ?? null : null,
|
|
198
|
+
target: j
|
|
192
199
|
});
|
|
193
|
-
let
|
|
200
|
+
let M = a(r.steps.listStore, k, (e, t) => {
|
|
194
201
|
let n = t.at(-2);
|
|
195
202
|
if (!n || !h(n.node)) return null;
|
|
196
203
|
let r = n.node;
|
|
197
204
|
return e.find((e) => e.id === r.stepId) || null;
|
|
198
|
-
}),
|
|
205
|
+
}), N = a(s.treeStore, A, ({ nodes: e, edges: t }, n) => n ? ee(e, t, n) : []), P = a(s.treeStore, A, ({ nodes: e, edges: t }, n) => n ? ne(e, t, n) : [-1, -1]), F = a(s.treeStore, A, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : [-1, -1]), B = z.store(!1), V = o(B, {
|
|
199
206
|
open: () => !0,
|
|
200
207
|
close: () => !1,
|
|
201
208
|
toggle: (e) => !e,
|
|
202
209
|
set: (e, t) => t
|
|
203
|
-
}),
|
|
204
|
-
r.history.back({
|
|
205
|
-
}),
|
|
206
|
-
source:
|
|
207
|
-
effect: (e, t) => {
|
|
210
|
+
}), H = c(async () => {
|
|
211
|
+
r.history.back({ experienceId: s.id });
|
|
212
|
+
}), ie = i({
|
|
213
|
+
source: s.treeStore,
|
|
214
|
+
effect: async (e, t) => {
|
|
208
215
|
let n = e.nodes.find((e) => h(e) && e.stepId === t);
|
|
209
216
|
n && r.history.push({
|
|
210
|
-
|
|
211
|
-
experienceId: c.id,
|
|
217
|
+
experienceId: s.id,
|
|
212
218
|
node: n
|
|
213
219
|
});
|
|
214
220
|
}
|
|
215
|
-
}),
|
|
216
|
-
source:
|
|
221
|
+
}), ae = i({
|
|
222
|
+
source: s.treeStore,
|
|
223
|
+
effect: async (e, t) => {
|
|
224
|
+
let n = e.steps.find((e) => e.key === t);
|
|
225
|
+
if (!n) return;
|
|
226
|
+
let i = e.nodes.find((e) => h(e) && e.stepId === n.id);
|
|
227
|
+
i && r.history.push({
|
|
228
|
+
experienceId: s.id,
|
|
229
|
+
node: i
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}), U = i({
|
|
233
|
+
source: A,
|
|
217
234
|
effect: (e) => {}
|
|
218
|
-
}),
|
|
219
|
-
source:
|
|
235
|
+
}), W = i({
|
|
236
|
+
source: s.treeStore,
|
|
220
237
|
effect: async ({ nodes: e }) => I(e)
|
|
221
|
-
}),
|
|
222
|
-
source:
|
|
238
|
+
}), G = i({
|
|
239
|
+
source: s.treeStore,
|
|
223
240
|
effect: async ({ nodes: e, edges: t }, n) => {
|
|
224
241
|
if (_(n)) return L(n, e, t);
|
|
225
242
|
}
|
|
226
|
-
}),
|
|
227
|
-
source:
|
|
243
|
+
}), K = i({
|
|
244
|
+
source: s.treeStore,
|
|
228
245
|
effect: async ({ nodes: e, edges: n, conditions: i }, a) => {
|
|
229
246
|
if (!m(a)) return;
|
|
230
247
|
let o = i.find((e) => e.id === a.conditionId)?.logic;
|
|
231
|
-
return o ?
|
|
248
|
+
return o ? re(!!await t(r, o), a.id, e, n) : void 0;
|
|
232
249
|
}
|
|
233
|
-
}),
|
|
250
|
+
}), q = i({
|
|
234
251
|
source: {
|
|
235
|
-
tree:
|
|
252
|
+
tree: s.treeStore,
|
|
236
253
|
actions: r.actions.listStore,
|
|
237
254
|
snapshot: r.stateSnapshotStore
|
|
238
255
|
},
|
|
@@ -245,50 +262,52 @@ var z = c("experience-instance"), B = f(({ client: r, experience: c, target: f,
|
|
|
245
262
|
return;
|
|
246
263
|
}
|
|
247
264
|
let s = t.find((e) => e.key === o)?.action;
|
|
248
|
-
if (
|
|
265
|
+
if (typeof s != "function") return `${o}`, R(!1, r.id, i, a) ?? null;
|
|
266
|
+
let c = !0;
|
|
249
267
|
try {
|
|
250
|
-
`${o}`, await s({
|
|
268
|
+
`${o}`, c = await s({
|
|
251
269
|
...n,
|
|
252
270
|
args: []
|
|
253
|
-
}, { experience: Q });
|
|
254
|
-
let e = R(r, a, i, "true");
|
|
255
|
-
return e ? (`${o}${e.id}`, e) : (`${r.id}`, null);
|
|
271
|
+
}, { experience: Q }) !== !1;
|
|
256
272
|
} catch {
|
|
257
|
-
`${o}
|
|
258
|
-
|
|
259
|
-
|
|
273
|
+
`${o}`, c = !1;
|
|
274
|
+
}
|
|
275
|
+
let l = R(c, r.id, i, a);
|
|
276
|
+
if (!l) {
|
|
277
|
+
let e = a.some((e) => e.sourceNodeId === r.id) ? "no edge for its outcome" : "no outgoing edge";
|
|
278
|
+
return `${r.id}${e}`, null;
|
|
260
279
|
}
|
|
280
|
+
return `${o}${l.id}`, l;
|
|
261
281
|
}
|
|
262
|
-
}),
|
|
282
|
+
}), oe = c((e) => {
|
|
263
283
|
g(e) && r.experiences.launch({ key: e.experienceKey });
|
|
264
|
-
}),
|
|
265
|
-
source: [
|
|
284
|
+
}), J = i({
|
|
285
|
+
source: [A, s.treeStore],
|
|
266
286
|
effect: async ([e, { nodes: t, edges: n }]) => L(e, t, n)
|
|
267
|
-
}),
|
|
268
|
-
source: [
|
|
287
|
+
}), Y = i({
|
|
288
|
+
source: [A, s.treeStore],
|
|
269
289
|
effect: async ([e, { nodes: t, edges: n }]) => L(e, t, n)
|
|
270
|
-
}),
|
|
290
|
+
}), se = c((e) => {
|
|
271
291
|
r.history.push({
|
|
272
|
-
|
|
273
|
-
experienceId: c.id,
|
|
292
|
+
experienceId: s.id,
|
|
274
293
|
node: e
|
|
275
294
|
});
|
|
276
|
-
}),
|
|
277
|
-
source:
|
|
295
|
+
}), X = i({
|
|
296
|
+
source: s.configStore,
|
|
278
297
|
effect: async ({ initializeOpenLogic: n }) => p?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : p.initialiseOpen
|
|
279
|
-
}),
|
|
298
|
+
}), Z = a(E, r.frameworks.listStore, (e, t) => {
|
|
280
299
|
if (!e) return null;
|
|
281
300
|
let n = t.find((t) => t.name === e.component.frameworkName);
|
|
282
301
|
return n ? {
|
|
283
302
|
component: e,
|
|
284
303
|
framework: n
|
|
285
304
|
} : null;
|
|
286
|
-
}, { skipVoid: !1 }), Q,
|
|
287
|
-
source:
|
|
305
|
+
}, { skipVoid: !1 }), Q, ce = i({
|
|
306
|
+
source: Z,
|
|
288
307
|
effect: (e) => {
|
|
289
308
|
if (!e) return;
|
|
290
309
|
if (!f) {
|
|
291
|
-
`${
|
|
310
|
+
`${s.id}`;
|
|
292
311
|
return;
|
|
293
312
|
}
|
|
294
313
|
let t = n(f);
|
|
@@ -298,179 +317,167 @@ var z = c("experience-instance"), B = f(({ client: r, experience: c, target: f,
|
|
|
298
317
|
}
|
|
299
318
|
});
|
|
300
319
|
Q = Object.freeze({
|
|
301
|
-
id:
|
|
302
|
-
experienceKey:
|
|
303
|
-
experienceId:
|
|
304
|
-
experienceName:
|
|
305
|
-
configStore:
|
|
320
|
+
id: Math.random().toString(36).substring(7),
|
|
321
|
+
experienceKey: s.key,
|
|
322
|
+
experienceId: s.id,
|
|
323
|
+
experienceName: s.name,
|
|
324
|
+
configStore: s.configStore,
|
|
306
325
|
target: f,
|
|
307
|
-
componentStore:
|
|
308
|
-
componentAndFrameworkStore:
|
|
309
|
-
stateStore:
|
|
310
|
-
isOpenStore:
|
|
311
|
-
open:
|
|
312
|
-
close:
|
|
313
|
-
toggleOpen:
|
|
314
|
-
setOpen:
|
|
315
|
-
treeStore:
|
|
316
|
-
currentNodeStore:
|
|
317
|
-
currentStepStore:
|
|
318
|
-
previousStepStore:
|
|
319
|
-
nextReachableStepNodesStore:
|
|
320
|
-
stepsToOriginStore:
|
|
321
|
-
stepsToLeafStore:
|
|
322
|
-
goToNextStep:
|
|
323
|
-
goToPreviousStep:
|
|
324
|
-
goToStepById:
|
|
325
|
-
|
|
326
|
-
stepsHistoryStore:
|
|
327
|
-
|
|
328
|
-
restart: T,
|
|
329
|
-
mountFx: de
|
|
326
|
+
componentStore: E,
|
|
327
|
+
componentAndFrameworkStore: Z,
|
|
328
|
+
stateStore: D,
|
|
329
|
+
isOpenStore: B,
|
|
330
|
+
open: V.open,
|
|
331
|
+
close: V.close,
|
|
332
|
+
toggleOpen: V.toggle,
|
|
333
|
+
setOpen: V.set,
|
|
334
|
+
treeStore: s.treeStore,
|
|
335
|
+
currentNodeStore: A,
|
|
336
|
+
currentStepStore: j,
|
|
337
|
+
previousStepStore: M,
|
|
338
|
+
nextReachableStepNodesStore: N,
|
|
339
|
+
stepsToOriginStore: P,
|
|
340
|
+
stepsToLeafStore: F,
|
|
341
|
+
goToNextStep: b,
|
|
342
|
+
goToPreviousStep: x,
|
|
343
|
+
goToStepById: S,
|
|
344
|
+
goToStepByKey: C,
|
|
345
|
+
stepsHistoryStore: k,
|
|
346
|
+
mountFx: ce
|
|
330
347
|
});
|
|
331
|
-
let $ =
|
|
332
|
-
|
|
333
|
-
clock:
|
|
348
|
+
let $ = l(), le = l();
|
|
349
|
+
return u({
|
|
350
|
+
clock: A,
|
|
334
351
|
target: $
|
|
335
|
-
}),
|
|
352
|
+
}), u({
|
|
336
353
|
clock: $,
|
|
337
354
|
filter: (e) => e === null,
|
|
338
|
-
target:
|
|
339
|
-
}),
|
|
355
|
+
target: W
|
|
356
|
+
}), u({
|
|
340
357
|
clock: $,
|
|
341
358
|
filter: (e) => e !== null,
|
|
342
|
-
target:
|
|
343
|
-
}),
|
|
344
|
-
source:
|
|
359
|
+
target: le
|
|
360
|
+
}), d({
|
|
361
|
+
source: le,
|
|
345
362
|
match: (e) => m(e) ? "condition" : h(e) ? "step" : g(e) ? "launchExperience" : _(e) ? "origin" : v(e) ? "action" : "other",
|
|
346
363
|
cases: {
|
|
347
|
-
origin:
|
|
348
|
-
condition:
|
|
349
|
-
step:
|
|
350
|
-
launchExperience:
|
|
351
|
-
action:
|
|
352
|
-
__:
|
|
364
|
+
origin: G,
|
|
365
|
+
condition: K,
|
|
366
|
+
step: U,
|
|
367
|
+
launchExperience: oe,
|
|
368
|
+
action: q,
|
|
369
|
+
__: l()
|
|
353
370
|
}
|
|
354
|
-
}),
|
|
371
|
+
}), u({
|
|
355
372
|
clock: [
|
|
356
|
-
J.doneData,
|
|
357
|
-
q.doneData,
|
|
358
373
|
K.doneData,
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
Y.doneData
|
|
374
|
+
G.doneData,
|
|
375
|
+
W.doneData,
|
|
376
|
+
Y.doneData,
|
|
377
|
+
J.doneData,
|
|
378
|
+
q.doneData
|
|
362
379
|
],
|
|
363
380
|
filter: Boolean,
|
|
364
|
-
target:
|
|
365
|
-
}),
|
|
366
|
-
clock:
|
|
367
|
-
target:
|
|
368
|
-
}),
|
|
369
|
-
clock:
|
|
370
|
-
source:
|
|
381
|
+
target: se
|
|
382
|
+
}), u({
|
|
383
|
+
clock: b,
|
|
384
|
+
target: Y
|
|
385
|
+
}), u({
|
|
386
|
+
clock: b,
|
|
387
|
+
source: j,
|
|
371
388
|
filter: Boolean,
|
|
372
389
|
target: r.eventBus.prepend((e) => ({
|
|
373
390
|
type: "step_submit",
|
|
374
391
|
step: e,
|
|
375
392
|
experience: Q
|
|
376
393
|
}))
|
|
377
|
-
}),
|
|
378
|
-
clock:
|
|
379
|
-
source:
|
|
394
|
+
}), u({
|
|
395
|
+
clock: Y.done,
|
|
396
|
+
source: j,
|
|
380
397
|
filter: Boolean,
|
|
381
398
|
target: r.eventBus.prepend((e) => ({
|
|
382
399
|
type: "step_submit_success",
|
|
383
400
|
step: e,
|
|
384
401
|
experience: Q
|
|
385
402
|
}))
|
|
386
|
-
}),
|
|
387
|
-
clock:
|
|
388
|
-
source:
|
|
403
|
+
}), u({
|
|
404
|
+
clock: Y.fail,
|
|
405
|
+
source: j,
|
|
389
406
|
filter: Boolean,
|
|
390
407
|
target: r.eventBus.prepend((e) => ({
|
|
391
408
|
type: "step_submit_error",
|
|
392
409
|
step: e,
|
|
393
410
|
experience: Q
|
|
394
411
|
}))
|
|
395
|
-
}),
|
|
412
|
+
}), u({
|
|
413
|
+
clock: x,
|
|
414
|
+
target: H
|
|
415
|
+
}), u({
|
|
396
416
|
clock: S,
|
|
397
|
-
target:
|
|
398
|
-
}),
|
|
417
|
+
target: ie
|
|
418
|
+
}), u({
|
|
399
419
|
clock: C,
|
|
400
|
-
target:
|
|
401
|
-
}),
|
|
402
|
-
|
|
403
|
-
fn: () => ({ instanceId: y }),
|
|
404
|
-
target: r.history.clearForInstance
|
|
405
|
-
});
|
|
406
|
-
let pe = l(() => {
|
|
407
|
-
r.responses.clearByExperience(c.id);
|
|
408
|
-
});
|
|
409
|
-
return d({
|
|
410
|
-
clock: T,
|
|
411
|
-
fn: () => ({ instanceId: y }),
|
|
412
|
-
target: r.history.clearForInstance
|
|
413
|
-
}), d({
|
|
414
|
-
clock: T,
|
|
415
|
-
target: pe
|
|
416
|
-
}), d({
|
|
417
|
-
source: o([
|
|
418
|
-
J.pending,
|
|
419
|
-
q.pending,
|
|
420
|
+
target: ae
|
|
421
|
+
}), u({
|
|
422
|
+
source: a([
|
|
420
423
|
K.pending,
|
|
421
|
-
|
|
424
|
+
G.pending,
|
|
425
|
+
W.pending,
|
|
426
|
+
Y.pending,
|
|
427
|
+
J.pending,
|
|
428
|
+
q.pending
|
|
422
429
|
]),
|
|
423
430
|
fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
|
|
424
|
-
target:
|
|
425
|
-
}),
|
|
426
|
-
clock:
|
|
427
|
-
source:
|
|
431
|
+
target: D
|
|
432
|
+
}), u({
|
|
433
|
+
clock: U.doneData,
|
|
434
|
+
source: j,
|
|
428
435
|
filter: Boolean,
|
|
429
436
|
target: r.eventBus.prepend((e) => ({
|
|
430
437
|
type: "step_enter",
|
|
431
438
|
step: e,
|
|
432
439
|
experience: Q
|
|
433
440
|
}))
|
|
434
|
-
}),
|
|
435
|
-
clock:
|
|
436
|
-
target:
|
|
437
|
-
}),
|
|
438
|
-
source:
|
|
441
|
+
}), u({
|
|
442
|
+
clock: T,
|
|
443
|
+
target: X
|
|
444
|
+
}), u({
|
|
445
|
+
source: X.doneData,
|
|
439
446
|
fn: Boolean,
|
|
440
|
-
target:
|
|
441
|
-
}),
|
|
442
|
-
source:
|
|
443
|
-
clock:
|
|
447
|
+
target: B
|
|
448
|
+
}), u({
|
|
449
|
+
source: A,
|
|
450
|
+
clock: y,
|
|
444
451
|
filter: (e) => e ? _(e) : !0,
|
|
445
|
-
target:
|
|
446
|
-
}),
|
|
447
|
-
source:
|
|
452
|
+
target: J
|
|
453
|
+
}), u({
|
|
454
|
+
source: B,
|
|
448
455
|
filter: Boolean,
|
|
449
|
-
target:
|
|
450
|
-
}),
|
|
451
|
-
source:
|
|
456
|
+
target: y
|
|
457
|
+
}), u({
|
|
458
|
+
source: B,
|
|
452
459
|
filter: Boolean,
|
|
453
460
|
target: r.eventBus.prepend(() => ({
|
|
454
461
|
type: "experience_open",
|
|
455
462
|
experience: Q
|
|
456
463
|
}))
|
|
457
|
-
}),
|
|
458
|
-
source:
|
|
464
|
+
}), u({
|
|
465
|
+
source: B,
|
|
459
466
|
filter: (e) => !e,
|
|
460
467
|
target: r.eventBus.prepend(() => ({
|
|
461
468
|
type: "experience_close",
|
|
462
469
|
experience: Q
|
|
463
470
|
}))
|
|
464
|
-
}),
|
|
465
|
-
clock:
|
|
466
|
-
target: [
|
|
467
|
-
}),
|
|
471
|
+
}), u({
|
|
472
|
+
clock: w,
|
|
473
|
+
target: [T]
|
|
474
|
+
}), w(), Q;
|
|
468
475
|
});
|
|
469
476
|
function V(e) {
|
|
470
477
|
return p(B, e);
|
|
471
478
|
}
|
|
472
479
|
var H = f(({ client: e }) => {
|
|
473
|
-
let t = z.store({}), n =
|
|
480
|
+
let t = z.store({}), n = l(), i = l(), a = l(), s = o(t, {
|
|
474
481
|
register(e, t) {
|
|
475
482
|
let n = [...e[t.experienceId] ?? []];
|
|
476
483
|
return n.push(t), {
|
|
@@ -485,68 +492,68 @@ var H = f(({ client: e }) => {
|
|
|
485
492
|
[n]: r ?? []
|
|
486
493
|
};
|
|
487
494
|
}
|
|
488
|
-
}),
|
|
495
|
+
}), d = c(({ experience: t, target: n, options: r }) => V({
|
|
489
496
|
client: e,
|
|
490
497
|
experience: t,
|
|
491
498
|
target: n,
|
|
492
499
|
options: r
|
|
493
|
-
})),
|
|
494
|
-
|
|
495
|
-
}),
|
|
500
|
+
})), f = c((e) => {
|
|
501
|
+
s.register(e);
|
|
502
|
+
}), p = c((e) => {
|
|
496
503
|
e.target && r(e.target, () => {
|
|
497
504
|
a(e);
|
|
498
505
|
});
|
|
499
|
-
}),
|
|
500
|
-
|
|
501
|
-
}),
|
|
506
|
+
}), m = c((e) => {
|
|
507
|
+
s.unregister(e);
|
|
508
|
+
}), h = c(async (e) => {
|
|
502
509
|
await e.mountFx();
|
|
503
510
|
});
|
|
504
|
-
|
|
511
|
+
u({
|
|
505
512
|
clock: n,
|
|
506
|
-
target:
|
|
507
|
-
}),
|
|
513
|
+
target: d
|
|
514
|
+
}), u({
|
|
508
515
|
clock: a,
|
|
509
|
-
target:
|
|
510
|
-
}),
|
|
511
|
-
clock:
|
|
516
|
+
target: m
|
|
517
|
+
}), u({
|
|
518
|
+
clock: d.doneData,
|
|
512
519
|
target: [
|
|
513
|
-
ee,
|
|
514
520
|
f,
|
|
521
|
+
p,
|
|
515
522
|
i
|
|
516
523
|
]
|
|
517
|
-
}),
|
|
518
|
-
clock:
|
|
524
|
+
}), u({
|
|
525
|
+
clock: d.doneData,
|
|
519
526
|
target: e.eventBus.prepend((e) => ({
|
|
520
527
|
type: "experience_initialize",
|
|
521
528
|
experience: e
|
|
522
529
|
}))
|
|
523
|
-
}),
|
|
530
|
+
}), u({
|
|
524
531
|
clock: i,
|
|
525
|
-
target:
|
|
532
|
+
target: h
|
|
526
533
|
});
|
|
527
|
-
function
|
|
534
|
+
function g(e, t, r) {
|
|
528
535
|
n({
|
|
529
536
|
experience: e,
|
|
530
537
|
target: t,
|
|
531
538
|
options: r
|
|
532
539
|
});
|
|
533
540
|
}
|
|
534
|
-
let
|
|
535
|
-
function _(e) {
|
|
536
|
-
return g.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
|
|
537
|
-
}
|
|
541
|
+
let _ = t.map((e) => Object.values(e).flat());
|
|
538
542
|
function v(e) {
|
|
543
|
+
return _.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
|
|
544
|
+
}
|
|
545
|
+
function y(e) {
|
|
539
546
|
return t.map((t) => t[e] || [], { skipVoid: !1 });
|
|
540
547
|
}
|
|
541
548
|
return {
|
|
542
|
-
spawn:
|
|
543
|
-
getByExperienceKey:
|
|
544
|
-
getByExperienceId:
|
|
545
|
-
listStore:
|
|
549
|
+
spawn: g,
|
|
550
|
+
getByExperienceKey: v,
|
|
551
|
+
getByExperienceId: y,
|
|
552
|
+
listStore: _
|
|
546
553
|
};
|
|
547
554
|
});
|
|
548
|
-
function
|
|
555
|
+
function ie(e) {
|
|
549
556
|
return p(H, e);
|
|
550
557
|
}
|
|
551
558
|
//#endregion
|
|
552
|
-
export { C as a, A as c, j as i, m as l,
|
|
559
|
+
export { C as a, A as c, j as i, m as l, ie as n, M as o, T as r, O as s, V as t, h as u };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./api-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./api-BXhgvSc-.cjs");let t=require("effector");function n(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function r(e){return n(e)%100}function i(e,t){return t<=0?!1:t>=100?!0:e<t}function a(e){return typeof e==`object`&&!!e&&`features`in e&&Array.isArray(e.features)}function o(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function s(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function c(e,t){if(Array.isArray(t.fields))for(let n of t.fields)e.registerField(n)}function l(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function u(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)s(e,n)}function d(e,t,n){m(e,t,n.isPreview,n.sessionId),o(e,t),c(e,t),l(e,t),u(e,t)}function f(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function p(e){let t=new Set,n=e.searchParams.feature;if(!n)return t;for(let e of n){let n=e.indexOf(`:`);n>0&&t.add(e.substring(0,n))}return t}function m(e,t,n,i){let a=p(e),o=r(i);for(let r of t.features)a.has(r.id)||h(e,r,n,o)}function h(e,t,n,r){e.registerFeature(t.id,{key:`v${t.version}`,name:t.name,storage:n?`session`:`local`,decide:()=>t.enabled?i(r,t.weight):!1})}function g(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function _(e){if(typeof e!=`object`||!e||!(`cause`in e))return!1;let{cause:t}=e;return typeof t!=`object`||!t||!(`code`in t)?!1:t.code===`ECONNREFUSED`}async function v(t,n,r){let i=r?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}`:`projects/${n}`,o;try{o=await e.t(t,i,r?.headers)}catch(e){return g(t)&&_(e),null}if(!o.ok)return`${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return null}return a(s)?s:null}function y(e){return typeof e!=`object`||!e||!(`experienceId`in e)||!(`content`in e)?!1:Array.isArray(e.content)}async function b(t,n,r,i){let a=i?.previewToken?`projects/${n}/experiences/${r}/content?preview_token=${encodeURIComponent(i.previewToken)}`:`projects/${n}/experiences/${r}/content`,o;try{o=await e.t(t,a,i?.headers,i?.signal)}catch(e){return g(t)&&_(e)||`${r}`,null}if(!o.ok)return`${r}${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return`${r}`,null}return y(s)?s:(`${r}`,null)}function x(e,t){for(let n of t.content)e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function S(e){if(typeof e!=`object`||!e||!(`projectConfig`in e)||!(`experienceContent`in e)||!(`manifestMetadata`in e))return!1;let{experienceContent:t}=e;return typeof t==`function`}async function C(){try{let e=await import(`virtual:picked/data`);return S(e)?e:null}catch{return null}}function w(e,t,n){return r=>b(e,t,r.id,n?{previewToken:n}:void 0)}function T(e,t){return n=>e(n,t?{previewToken:t}:void 0)}function E(e){return(t,n)=>e.experienceContent(t,n)}function D(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&x(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function O(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}async function k(e){let{client:t,apiUrl:n,options:r}=e,i=f(t),a=!!i,o=r?.projectConfig??null,s=r?.getContent?T(r.getContent,i):null,c=null;if(i)return o??=await v(n,t.projectId,{previewToken:i}),s??=w(n,t.projectId,i),{config:o,contentLoader:s,dataSource:c,isPreview:a};if(o&&s)return{config:o,contentLoader:s,dataSource:c,isPreview:a};let l=await C();return l?(o??=l.projectConfig,s??=E(l),c=l.manifestMetadata,{config:o,contentLoader:s,dataSource:c,isPreview:a}):(o??=await v(n,t.projectId),s??=w(n,t.projectId),{config:o,contentLoader:s,dataSource:c,isPreview:a})}function A(e){return{name:`dynamic-experiences`,setup:n=>{let r=e?.apiUrl??n.apiUrl;return{onStart:(0,t.attach)({source:n.session.store.map(e=>e.id),effect:async t=>{let{config:i,contentLoader:a,dataSource:o,isPreview:s}=await k({client:n,apiUrl:r,options:e});a&&(n.contentLoader=D(n,O(a,i))),n.dataSource=o,i&&d(n,i,{isPreview:s,sessionId:t})}})}}}}Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return A}});
|
|
@@ -21,13 +21,18 @@ export interface ActionContext {
|
|
|
21
21
|
* only and have no triggering instance.
|
|
22
22
|
*
|
|
23
23
|
* Re-entrancy: do not synchronously call navigation events (`goToNextStep`,
|
|
24
|
-
* `goToPreviousStep`, `goToStepById`) or open-state events (`open`, `close`,
|
|
24
|
+
* `goToPreviousStep`, `goToStepById`, `goToStepByKey`) or open-state events (`open`, `close`,
|
|
25
25
|
* `toggleOpen`, `setOpen`) on `context.experience` before the handler's returned
|
|
26
26
|
* promise resolves. Those writes race the flow runtime's post-action history
|
|
27
27
|
* push and produce non-deterministic ordering. Perform control flow after your
|
|
28
28
|
* side effect resolves.
|
|
29
29
|
*
|
|
30
|
-
*
|
|
30
|
+
* When executed as an ActionNode, the return value selects the flow's branch: a
|
|
31
|
+
* strict `false` (or a thrown error) routes to the `onFail` edge, while any other
|
|
32
|
+
* resolved value — `void`, `true`, or a string/string[] — routes to `onSuccess`. An
|
|
33
|
+
* action that calls an API can therefore drive the branch from the response without
|
|
34
|
+
* throwing, e.g. `return response.ok`. Outside a flow (manual invocation, rule logic)
|
|
35
|
+
* the return value is used directly and this branching does not apply.
|
|
31
36
|
*/
|
|
32
37
|
export type Action = (snapshot: StateSnapshot & {
|
|
33
38
|
args: unknown[];
|