@picked/client 0.0.1-dev.1783642866820 → 0.0.1-dev.1784001148032
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-BXhgvSc-.cjs → api-B1wdTDNv.cjs} +1 -1
- package/dist/{api-4pMvd_kR.js → api-BJ8EHkg5.js} +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 +2 -16
- package/dist/docs/sdk/actions.md +3 -21
- package/dist/{dom-BwmTHeT7.js → dom-CZyRgp2P.js} +17 -12
- package/dist/dom-CdxDV3e-.cjs +1 -0
- package/dist/esm/index.js +488 -384
- 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 +33 -11
- package/dist/esm/server/index.js +2 -2
- package/dist/experience-instance-BbSXoRrr.cjs +1 -0
- package/dist/{experience-instance-pTMwxW1R.js → experience-instance-M2kR3nTp.js} +200 -207
- package/dist/{plugin-DfzEBtiA.js → plugin-B04iPuj_.js} +1 -1
- package/dist/{plugin-DDe5zJhy.cjs → plugin-D3z3IXOb.cjs} +1 -1
- package/dist/types/entities/action/action.d.ts +2 -7
- 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 +23 -10
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +30 -16
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/entities/response/response.d.ts +1 -0
- package/dist/types/entities/response/response.d.ts.map +1 -1
- package/dist/types/picked.d.ts +10 -14
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts +17 -0
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/utils/dom.d.ts +94 -0
- package/dist/types/utils/dom.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/dom-CDrHc_j9.cjs +0 -1
- package/dist/experience-instance-DunhI3b8.cjs +0 -1
- package/dist/types/utils/node-tree/get-next-node-from-action.d.ts +0 -24
- package/dist/types/utils/node-tree/get-next-node-from-action.d.ts.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { n as e, t } from "./rules-logic-HesIUCu6.js";
|
|
2
2
|
import "./logger-DMN6TxJJ.js";
|
|
3
|
-
import { n,
|
|
4
|
-
import {
|
|
3
|
+
import { n, s as r } from "./dom-CZyRgp2P.js";
|
|
4
|
+
import { t as i } from "./id-Bo4RBeOs.js";
|
|
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";
|
|
5
6
|
import { createFactory as f, invoke as p } from "@withease/factories";
|
|
6
7
|
//#region src/utils/nodes.ts
|
|
7
8
|
function m(e) {
|
|
@@ -21,7 +22,7 @@ function v(e) {
|
|
|
21
22
|
}
|
|
22
23
|
//#endregion
|
|
23
24
|
//#region src/lifecycle/condition-selection.ts
|
|
24
|
-
var y = "conditions.", b =
|
|
25
|
+
var y = "conditions.", b = c("condition-results");
|
|
25
26
|
function x(e) {
|
|
26
27
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
27
28
|
}
|
|
@@ -39,7 +40,7 @@ function C(e) {
|
|
|
39
40
|
return JSON.stringify(S(e));
|
|
40
41
|
}
|
|
41
42
|
var w = f(() => {
|
|
42
|
-
let e = b.store({}), t =
|
|
43
|
+
let e = b.store({}), t = s(e, {
|
|
43
44
|
set(e, t) {
|
|
44
45
|
return {
|
|
45
46
|
...e,
|
|
@@ -140,7 +141,7 @@ async function M(e, t, n) {
|
|
|
140
141
|
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) => {
|
|
141
142
|
let r = e.find((e) => e.id === n.destinationNodeId);
|
|
142
143
|
return r ? N(e, t, r, !1, i) : [];
|
|
143
|
-
})),
|
|
144
|
+
})), te = (e, t, n) => N(e, t, n, !0, /* @__PURE__ */ new Set()), P = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
|
|
144
145
|
if (i.has(n.id)) return [-1, -1];
|
|
145
146
|
i.add(n.id);
|
|
146
147
|
let a = t.filter((e) => e.sourceNodeId === n.id);
|
|
@@ -153,7 +154,7 @@ var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
|
|
|
153
154
|
a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
|
|
154
155
|
}
|
|
155
156
|
return o === Infinity ? [-1, -1] : [o, s];
|
|
156
|
-
},
|
|
157
|
+
}, ne = (e, t, n) => P(e, t, n, !0, /* @__PURE__ */ new Set()), F = (e, t, n, r = /* @__PURE__ */ new Set()) => {
|
|
157
158
|
if (r.has(n.id)) return [-1, -1];
|
|
158
159
|
if (r.add(n.id), n.type === "origin") return [0, 0];
|
|
159
160
|
let i = t.filter((e) => e.destinationNodeId === n.id);
|
|
@@ -166,90 +167,72 @@ var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
|
|
|
166
167
|
s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
|
|
167
168
|
}
|
|
168
169
|
return a === Infinity ? [-1, -1] : [a, o];
|
|
169
|
-
},
|
|
170
|
+
}, re = (e, t, n) => F(e, t, n, /* @__PURE__ */ new Set()), I = (e) => e.find((e) => e.type === "origin") || null, L = (e, t, n) => {
|
|
170
171
|
if (!e) return I(t);
|
|
171
172
|
let r = n.find((t) => t.sourceNodeId === e.id);
|
|
172
173
|
return r && t.find((e) => e.id === r.destinationNodeId) || null;
|
|
173
174
|
};
|
|
174
175
|
//#endregion
|
|
175
176
|
//#region src/utils/node-tree/get-next-node-from-condition.ts
|
|
176
|
-
async function
|
|
177
|
+
async function ie(e, t, n, r) {
|
|
177
178
|
let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
|
|
178
179
|
return n.find((e) => e.id === a?.destinationNodeId);
|
|
179
180
|
}
|
|
180
181
|
//#endregion
|
|
181
|
-
//#region src/
|
|
182
|
+
//#region src/entities/experience-instance/experience-instance.ts
|
|
182
183
|
function R(e, t, n, r) {
|
|
183
|
-
let i =
|
|
184
|
-
return n.find((e) => e.id ===
|
|
184
|
+
let i = t.find((t) => t.sourceNodeId === e.id && t.sourceHandle === r);
|
|
185
|
+
return i ? n.find((e) => e.id === i.destinationNodeId) ?? null : null;
|
|
185
186
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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
|
|
187
|
+
var z = c("experience-instance"), B = f(({ client: r, experience: c, target: f, options: p }) => {
|
|
188
|
+
let y = i("exp-instance");
|
|
189
|
+
r.history.seedInstanceFromSnapshot({
|
|
190
|
+
instanceId: y,
|
|
191
|
+
experienceId: c.id
|
|
199
192
|
});
|
|
200
|
-
let M =
|
|
193
|
+
let b = u(), x = u(), S = u(), C = u(), w = u(), T = u(), E = u(), D = u(), O = c.componentStore, k = z.store("transitioning"), A = r.history.entriesStore.map((e) => e.filter((e) => e.instanceId === y)), j = A.map((e) => e.filter((e) => h(e.node))), M = j.map((e) => e.length >= 2), N = A.map((e) => e.at(-1)?.node || null), P = o(r.steps.listStore, N, (e, t) => e.find((e) => t && h(t) && e.id === t.stepId) || null), F = o(r.steps.listStore, j, (e, t) => {
|
|
201
194
|
let n = t.at(-2);
|
|
202
195
|
if (!n || !h(n.node)) return null;
|
|
203
196
|
let r = n.node;
|
|
204
197
|
return e.find((e) => e.id === r.stepId) || null;
|
|
205
|
-
}),
|
|
198
|
+
}), B = o(c.treeStore, N, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : []), V = o(c.treeStore, N, ({ nodes: e, edges: t }, n) => n ? re(e, t, n) : [-1, -1]), H = o(c.treeStore, N, ({ nodes: e, edges: t }, n) => n ? ne(e, t, n) : [-1, -1]), U = z.store(!1), W = s(U, {
|
|
206
199
|
open: () => !0,
|
|
207
200
|
close: () => !1,
|
|
208
201
|
toggle: (e) => !e,
|
|
209
202
|
set: (e, t) => t
|
|
210
|
-
}),
|
|
211
|
-
r.history.back({
|
|
212
|
-
}),
|
|
213
|
-
source:
|
|
214
|
-
effect:
|
|
203
|
+
}), ae = l(() => {
|
|
204
|
+
r.history.back({ instanceId: y });
|
|
205
|
+
}), oe = a({
|
|
206
|
+
source: c.treeStore,
|
|
207
|
+
effect: (e, t) => {
|
|
215
208
|
let n = e.nodes.find((e) => h(e) && e.stepId === t);
|
|
216
209
|
n && r.history.push({
|
|
217
|
-
|
|
210
|
+
instanceId: y,
|
|
211
|
+
experienceId: c.id,
|
|
218
212
|
node: n
|
|
219
213
|
});
|
|
220
214
|
}
|
|
221
|
-
}),
|
|
222
|
-
source:
|
|
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,
|
|
215
|
+
}), G = a({
|
|
216
|
+
source: N,
|
|
234
217
|
effect: (e) => {}
|
|
235
|
-
}),
|
|
236
|
-
source:
|
|
218
|
+
}), K = a({
|
|
219
|
+
source: c.treeStore,
|
|
237
220
|
effect: async ({ nodes: e }) => I(e)
|
|
238
|
-
}),
|
|
239
|
-
source:
|
|
221
|
+
}), q = a({
|
|
222
|
+
source: c.treeStore,
|
|
240
223
|
effect: async ({ nodes: e, edges: t }, n) => {
|
|
241
224
|
if (_(n)) return L(n, e, t);
|
|
242
225
|
}
|
|
243
|
-
}),
|
|
244
|
-
source:
|
|
226
|
+
}), J = a({
|
|
227
|
+
source: c.treeStore,
|
|
245
228
|
effect: async ({ nodes: e, edges: n, conditions: i }, a) => {
|
|
246
229
|
if (!m(a)) return;
|
|
247
230
|
let o = i.find((e) => e.id === a.conditionId)?.logic;
|
|
248
|
-
return o ?
|
|
231
|
+
return o ? ie(!!await t(r, o), a.id, e, n) : void 0;
|
|
249
232
|
}
|
|
250
|
-
}),
|
|
233
|
+
}), Y = a({
|
|
251
234
|
source: {
|
|
252
|
-
tree:
|
|
235
|
+
tree: c.treeStore,
|
|
253
236
|
actions: r.actions.listStore,
|
|
254
237
|
snapshot: r.stateSnapshotStore
|
|
255
238
|
},
|
|
@@ -262,52 +245,50 @@ var z = s("experience-instance"), B = f(({ client: r, experience: s, target: f,
|
|
|
262
245
|
return;
|
|
263
246
|
}
|
|
264
247
|
let s = t.find((e) => e.key === o)?.action;
|
|
265
|
-
if (typeof s != "function") return `${o}`, R(
|
|
266
|
-
let c = !0;
|
|
248
|
+
if (!s || typeof s != "function") return `${o}`, R(r, a, i, "false");
|
|
267
249
|
try {
|
|
268
|
-
`${o}`,
|
|
250
|
+
`${o}`, await s({
|
|
269
251
|
...n,
|
|
270
252
|
args: []
|
|
271
|
-
}, { experience: Q })
|
|
253
|
+
}, { experience: Q });
|
|
254
|
+
let e = R(r, a, i, "true");
|
|
255
|
+
return e ? (`${o}${e.id}`, e) : (`${r.id}`, null);
|
|
272
256
|
} catch {
|
|
273
|
-
`${o}
|
|
274
|
-
|
|
275
|
-
|
|
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;
|
|
257
|
+
`${o}`;
|
|
258
|
+
let e = R(r, a, i, "false");
|
|
259
|
+
return e ? (`${o}${e.id}`, e) : (`${r.id}`, null);
|
|
279
260
|
}
|
|
280
|
-
return `${o}${l.id}`, l;
|
|
281
261
|
}
|
|
282
|
-
}),
|
|
262
|
+
}), se = l((e) => {
|
|
283
263
|
g(e) && r.experiences.launch({ key: e.experienceKey });
|
|
284
|
-
}),
|
|
285
|
-
source: [
|
|
264
|
+
}), X = a({
|
|
265
|
+
source: [N, c.treeStore],
|
|
286
266
|
effect: async ([e, { nodes: t, edges: n }]) => L(e, t, n)
|
|
287
|
-
}),
|
|
288
|
-
source: [
|
|
267
|
+
}), Z = a({
|
|
268
|
+
source: [N, c.treeStore],
|
|
289
269
|
effect: async ([e, { nodes: t, edges: n }]) => L(e, t, n)
|
|
290
|
-
}),
|
|
270
|
+
}), ce = l((e) => {
|
|
291
271
|
r.history.push({
|
|
292
|
-
|
|
272
|
+
instanceId: y,
|
|
273
|
+
experienceId: c.id,
|
|
293
274
|
node: e
|
|
294
275
|
});
|
|
295
|
-
}),
|
|
296
|
-
source:
|
|
276
|
+
}), le = a({
|
|
277
|
+
source: c.configStore,
|
|
297
278
|
effect: async ({ initializeOpenLogic: n }) => p?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : p.initialiseOpen
|
|
298
|
-
}),
|
|
279
|
+
}), ue = o(O, r.frameworks.listStore, (e, t) => {
|
|
299
280
|
if (!e) return null;
|
|
300
281
|
let n = t.find((t) => t.name === e.component.frameworkName);
|
|
301
282
|
return n ? {
|
|
302
283
|
component: e,
|
|
303
284
|
framework: n
|
|
304
285
|
} : null;
|
|
305
|
-
}, { skipVoid: !1 }), Q,
|
|
306
|
-
source:
|
|
286
|
+
}, { skipVoid: !1 }), Q, de = a({
|
|
287
|
+
source: ue,
|
|
307
288
|
effect: (e) => {
|
|
308
289
|
if (!e) return;
|
|
309
290
|
if (!f) {
|
|
310
|
-
`${
|
|
291
|
+
`${c.id}`;
|
|
311
292
|
return;
|
|
312
293
|
}
|
|
313
294
|
let t = n(f);
|
|
@@ -317,167 +298,179 @@ var z = s("experience-instance"), B = f(({ client: r, experience: s, target: f,
|
|
|
317
298
|
}
|
|
318
299
|
});
|
|
319
300
|
Q = Object.freeze({
|
|
320
|
-
id:
|
|
321
|
-
experienceKey:
|
|
322
|
-
experienceId:
|
|
323
|
-
experienceName:
|
|
324
|
-
configStore:
|
|
301
|
+
id: y,
|
|
302
|
+
experienceKey: c.key,
|
|
303
|
+
experienceId: c.id,
|
|
304
|
+
experienceName: c.name,
|
|
305
|
+
configStore: c.configStore,
|
|
325
306
|
target: f,
|
|
326
|
-
componentStore:
|
|
327
|
-
componentAndFrameworkStore:
|
|
328
|
-
stateStore:
|
|
329
|
-
isOpenStore:
|
|
330
|
-
open:
|
|
331
|
-
close:
|
|
332
|
-
toggleOpen:
|
|
333
|
-
setOpen:
|
|
334
|
-
treeStore:
|
|
335
|
-
currentNodeStore:
|
|
336
|
-
currentStepStore:
|
|
337
|
-
previousStepStore:
|
|
338
|
-
nextReachableStepNodesStore:
|
|
339
|
-
stepsToOriginStore:
|
|
340
|
-
stepsToLeafStore:
|
|
341
|
-
goToNextStep:
|
|
342
|
-
goToPreviousStep:
|
|
343
|
-
goToStepById:
|
|
344
|
-
|
|
345
|
-
stepsHistoryStore:
|
|
346
|
-
|
|
307
|
+
componentStore: O,
|
|
308
|
+
componentAndFrameworkStore: ue,
|
|
309
|
+
stateStore: k,
|
|
310
|
+
isOpenStore: U,
|
|
311
|
+
open: W.open,
|
|
312
|
+
close: W.close,
|
|
313
|
+
toggleOpen: W.toggle,
|
|
314
|
+
setOpen: W.set,
|
|
315
|
+
treeStore: c.treeStore,
|
|
316
|
+
currentNodeStore: N,
|
|
317
|
+
currentStepStore: P,
|
|
318
|
+
previousStepStore: F,
|
|
319
|
+
nextReachableStepNodesStore: B,
|
|
320
|
+
stepsToOriginStore: V,
|
|
321
|
+
stepsToLeafStore: H,
|
|
322
|
+
goToNextStep: x,
|
|
323
|
+
goToPreviousStep: S,
|
|
324
|
+
goToStepById: C,
|
|
325
|
+
reset: w,
|
|
326
|
+
stepsHistoryStore: j,
|
|
327
|
+
isResumableStore: M,
|
|
328
|
+
restart: T,
|
|
329
|
+
mountFx: de
|
|
347
330
|
});
|
|
348
|
-
let $ =
|
|
349
|
-
|
|
350
|
-
clock:
|
|
331
|
+
let $ = u(), fe = u();
|
|
332
|
+
d({
|
|
333
|
+
clock: N,
|
|
351
334
|
target: $
|
|
352
|
-
}),
|
|
335
|
+
}), d({
|
|
353
336
|
clock: $,
|
|
354
337
|
filter: (e) => e === null,
|
|
355
|
-
target:
|
|
356
|
-
}),
|
|
338
|
+
target: K
|
|
339
|
+
}), d({
|
|
357
340
|
clock: $,
|
|
358
341
|
filter: (e) => e !== null,
|
|
359
|
-
target:
|
|
360
|
-
}),
|
|
361
|
-
source:
|
|
342
|
+
target: fe
|
|
343
|
+
}), ee({
|
|
344
|
+
source: fe,
|
|
362
345
|
match: (e) => m(e) ? "condition" : h(e) ? "step" : g(e) ? "launchExperience" : _(e) ? "origin" : v(e) ? "action" : "other",
|
|
363
346
|
cases: {
|
|
364
|
-
origin:
|
|
365
|
-
condition:
|
|
366
|
-
step:
|
|
367
|
-
launchExperience:
|
|
368
|
-
action:
|
|
369
|
-
__:
|
|
347
|
+
origin: q,
|
|
348
|
+
condition: J,
|
|
349
|
+
step: G,
|
|
350
|
+
launchExperience: se,
|
|
351
|
+
action: Y,
|
|
352
|
+
__: u()
|
|
370
353
|
}
|
|
371
|
-
}),
|
|
354
|
+
}), d({
|
|
372
355
|
clock: [
|
|
373
|
-
K.doneData,
|
|
374
|
-
G.doneData,
|
|
375
|
-
W.doneData,
|
|
376
|
-
Y.doneData,
|
|
377
356
|
J.doneData,
|
|
378
|
-
q.doneData
|
|
357
|
+
q.doneData,
|
|
358
|
+
K.doneData,
|
|
359
|
+
Z.doneData,
|
|
360
|
+
X.doneData,
|
|
361
|
+
Y.doneData
|
|
379
362
|
],
|
|
380
363
|
filter: Boolean,
|
|
381
|
-
target:
|
|
382
|
-
}),
|
|
383
|
-
clock:
|
|
384
|
-
target:
|
|
385
|
-
}),
|
|
386
|
-
clock:
|
|
387
|
-
source:
|
|
364
|
+
target: ce
|
|
365
|
+
}), d({
|
|
366
|
+
clock: x,
|
|
367
|
+
target: Z
|
|
368
|
+
}), d({
|
|
369
|
+
clock: x,
|
|
370
|
+
source: P,
|
|
388
371
|
filter: Boolean,
|
|
389
372
|
target: r.eventBus.prepend((e) => ({
|
|
390
373
|
type: "step_submit",
|
|
391
374
|
step: e,
|
|
392
375
|
experience: Q
|
|
393
376
|
}))
|
|
394
|
-
}),
|
|
395
|
-
clock:
|
|
396
|
-
source:
|
|
377
|
+
}), d({
|
|
378
|
+
clock: Z.done,
|
|
379
|
+
source: P,
|
|
397
380
|
filter: Boolean,
|
|
398
381
|
target: r.eventBus.prepend((e) => ({
|
|
399
382
|
type: "step_submit_success",
|
|
400
383
|
step: e,
|
|
401
384
|
experience: Q
|
|
402
385
|
}))
|
|
403
|
-
}),
|
|
404
|
-
clock:
|
|
405
|
-
source:
|
|
386
|
+
}), d({
|
|
387
|
+
clock: Z.fail,
|
|
388
|
+
source: P,
|
|
406
389
|
filter: Boolean,
|
|
407
390
|
target: r.eventBus.prepend((e) => ({
|
|
408
391
|
type: "step_submit_error",
|
|
409
392
|
step: e,
|
|
410
393
|
experience: Q
|
|
411
394
|
}))
|
|
412
|
-
}),
|
|
413
|
-
clock: x,
|
|
414
|
-
target: H
|
|
415
|
-
}), u({
|
|
395
|
+
}), d({
|
|
416
396
|
clock: S,
|
|
417
|
-
target: ie
|
|
418
|
-
}), u({
|
|
419
|
-
clock: C,
|
|
420
397
|
target: ae
|
|
421
|
-
}),
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
398
|
+
}), d({
|
|
399
|
+
clock: C,
|
|
400
|
+
target: oe
|
|
401
|
+
}), d({
|
|
402
|
+
clock: w,
|
|
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([
|
|
427
418
|
J.pending,
|
|
428
|
-
q.pending
|
|
419
|
+
q.pending,
|
|
420
|
+
K.pending,
|
|
421
|
+
Z.pending
|
|
429
422
|
]),
|
|
430
423
|
fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
|
|
431
|
-
target:
|
|
432
|
-
}),
|
|
433
|
-
clock:
|
|
434
|
-
source:
|
|
424
|
+
target: k
|
|
425
|
+
}), d({
|
|
426
|
+
clock: G.doneData,
|
|
427
|
+
source: P,
|
|
435
428
|
filter: Boolean,
|
|
436
429
|
target: r.eventBus.prepend((e) => ({
|
|
437
430
|
type: "step_enter",
|
|
438
431
|
step: e,
|
|
439
432
|
experience: Q
|
|
440
433
|
}))
|
|
441
|
-
}),
|
|
442
|
-
clock:
|
|
443
|
-
target:
|
|
444
|
-
}),
|
|
445
|
-
source:
|
|
434
|
+
}), d({
|
|
435
|
+
clock: D,
|
|
436
|
+
target: le
|
|
437
|
+
}), d({
|
|
438
|
+
source: le.doneData,
|
|
446
439
|
fn: Boolean,
|
|
447
|
-
target:
|
|
448
|
-
}),
|
|
449
|
-
source:
|
|
450
|
-
clock:
|
|
440
|
+
target: U
|
|
441
|
+
}), d({
|
|
442
|
+
source: N,
|
|
443
|
+
clock: b,
|
|
451
444
|
filter: (e) => e ? _(e) : !0,
|
|
452
|
-
target:
|
|
453
|
-
}),
|
|
454
|
-
source:
|
|
445
|
+
target: X
|
|
446
|
+
}), d({
|
|
447
|
+
source: U,
|
|
455
448
|
filter: Boolean,
|
|
456
|
-
target:
|
|
457
|
-
}),
|
|
458
|
-
source:
|
|
449
|
+
target: b
|
|
450
|
+
}), d({
|
|
451
|
+
source: U,
|
|
459
452
|
filter: Boolean,
|
|
460
453
|
target: r.eventBus.prepend(() => ({
|
|
461
454
|
type: "experience_open",
|
|
462
455
|
experience: Q
|
|
463
456
|
}))
|
|
464
|
-
}),
|
|
465
|
-
source:
|
|
457
|
+
}), d({
|
|
458
|
+
source: U,
|
|
466
459
|
filter: (e) => !e,
|
|
467
460
|
target: r.eventBus.prepend(() => ({
|
|
468
461
|
type: "experience_close",
|
|
469
462
|
experience: Q
|
|
470
463
|
}))
|
|
471
|
-
}),
|
|
472
|
-
clock:
|
|
473
|
-
target: [
|
|
474
|
-
}),
|
|
464
|
+
}), d({
|
|
465
|
+
clock: E,
|
|
466
|
+
target: [D]
|
|
467
|
+
}), E(), Q;
|
|
475
468
|
});
|
|
476
469
|
function V(e) {
|
|
477
470
|
return p(B, e);
|
|
478
471
|
}
|
|
479
472
|
var H = f(({ client: e }) => {
|
|
480
|
-
let t = z.store({}), n =
|
|
473
|
+
let t = z.store({}), n = u(), i = u(), a = u(), o = s(t, {
|
|
481
474
|
register(e, t) {
|
|
482
475
|
let n = [...e[t.experienceId] ?? []];
|
|
483
476
|
return n.push(t), {
|
|
@@ -492,68 +485,68 @@ var H = f(({ client: e }) => {
|
|
|
492
485
|
[n]: r ?? []
|
|
493
486
|
};
|
|
494
487
|
}
|
|
495
|
-
}),
|
|
488
|
+
}), c = l(({ experience: t, target: n, options: r }) => V({
|
|
496
489
|
client: e,
|
|
497
490
|
experience: t,
|
|
498
491
|
target: n,
|
|
499
492
|
options: r
|
|
500
|
-
})),
|
|
501
|
-
|
|
502
|
-
}),
|
|
493
|
+
})), ee = l((e) => {
|
|
494
|
+
o.register(e);
|
|
495
|
+
}), f = l((e) => {
|
|
503
496
|
e.target && r(e.target, () => {
|
|
504
497
|
a(e);
|
|
505
498
|
});
|
|
506
|
-
}),
|
|
507
|
-
|
|
508
|
-
}),
|
|
499
|
+
}), p = l((e) => {
|
|
500
|
+
o.unregister(e);
|
|
501
|
+
}), m = l(async (e) => {
|
|
509
502
|
await e.mountFx();
|
|
510
503
|
});
|
|
511
|
-
|
|
504
|
+
d({
|
|
512
505
|
clock: n,
|
|
513
|
-
target:
|
|
514
|
-
}),
|
|
506
|
+
target: c
|
|
507
|
+
}), d({
|
|
515
508
|
clock: a,
|
|
516
|
-
target:
|
|
517
|
-
}),
|
|
518
|
-
clock:
|
|
509
|
+
target: p
|
|
510
|
+
}), d({
|
|
511
|
+
clock: c.doneData,
|
|
519
512
|
target: [
|
|
513
|
+
ee,
|
|
520
514
|
f,
|
|
521
|
-
p,
|
|
522
515
|
i
|
|
523
516
|
]
|
|
524
|
-
}),
|
|
525
|
-
clock:
|
|
517
|
+
}), d({
|
|
518
|
+
clock: c.doneData,
|
|
526
519
|
target: e.eventBus.prepend((e) => ({
|
|
527
520
|
type: "experience_initialize",
|
|
528
521
|
experience: e
|
|
529
522
|
}))
|
|
530
|
-
}),
|
|
523
|
+
}), d({
|
|
531
524
|
clock: i,
|
|
532
|
-
target:
|
|
525
|
+
target: m
|
|
533
526
|
});
|
|
534
|
-
function
|
|
527
|
+
function h(e, t, r) {
|
|
535
528
|
n({
|
|
536
529
|
experience: e,
|
|
537
530
|
target: t,
|
|
538
531
|
options: r
|
|
539
532
|
});
|
|
540
533
|
}
|
|
541
|
-
let
|
|
542
|
-
function
|
|
543
|
-
return
|
|
534
|
+
let g = t.map((e) => Object.values(e).flat());
|
|
535
|
+
function _(e) {
|
|
536
|
+
return g.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
|
|
544
537
|
}
|
|
545
|
-
function
|
|
538
|
+
function v(e) {
|
|
546
539
|
return t.map((t) => t[e] || [], { skipVoid: !1 });
|
|
547
540
|
}
|
|
548
541
|
return {
|
|
549
|
-
spawn:
|
|
550
|
-
getByExperienceKey:
|
|
551
|
-
getByExperienceId:
|
|
552
|
-
listStore:
|
|
542
|
+
spawn: h,
|
|
543
|
+
getByExperienceKey: _,
|
|
544
|
+
getByExperienceId: v,
|
|
545
|
+
listStore: g
|
|
553
546
|
};
|
|
554
547
|
});
|
|
555
|
-
function
|
|
548
|
+
function U(e) {
|
|
556
549
|
return p(H, e);
|
|
557
550
|
}
|
|
558
551
|
//#endregion
|
|
559
|
-
export { C as a, A as c, j as i, m as l,
|
|
552
|
+
export { C as a, A as c, j as i, m as l, U 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-B1wdTDNv.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,18 +21,13 @@ 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
|
|
24
|
+
* `goToPreviousStep`, `goToStepById`) 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
|
-
*
|
|
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.
|
|
30
|
+
* Returns a value (boolean, string, string[]) or runs a side effect (void).
|
|
36
31
|
*/
|
|
37
32
|
export type Action = (snapshot: StateSnapshot & {
|
|
38
33
|
args: unknown[];
|