@picked/client 0.0.1-dev.1774244905386 → 0.0.1-dev.1774924249530

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.
Files changed (120) hide show
  1. package/dist/{api-dkMxUUe0.cjs → api-IbZws-UW.cjs} +1 -1
  2. package/dist/{api-ENA5t36y.js → api-wn6WtyzO.js} +1 -1
  3. package/dist/cjs/form/index.js +1 -0
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  7. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  10. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  11. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  12. package/dist/cjs/server/index.js +1 -1
  13. package/dist/esm/form/index.js +472 -0
  14. package/dist/esm/index.js +351 -369
  15. package/dist/esm/plugins/create-experience/index.js +218 -221
  16. package/dist/esm/plugins/dynamic-experiences/index.js +7 -8
  17. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-browser-storage/index.js +48 -21
  20. package/dist/esm/plugins/responses-indexeddb/index.js +5 -9
  21. package/dist/esm/plugins/single-page-app/index.js +4 -4
  22. package/dist/esm/server/index.js +1 -1
  23. package/dist/experience-instance-CwwrKUI8.js +485 -0
  24. package/dist/experience-instance-DdFUcVRd.cjs +1 -0
  25. package/dist/{object-Clj5zVr1.js → object-C82v79xc.js} +2 -1
  26. package/dist/object-CUJOjanb.cjs +1 -0
  27. package/dist/rules-logic-BIkBWZmf.js +233 -0
  28. package/dist/rules-logic-DDxCiq4P.cjs +1 -0
  29. package/dist/{storage-DyxpJ0pg.js → storage-6Xk0uAxB.js} +3 -1
  30. package/dist/storage-B6lQtc4-.cjs +1 -0
  31. package/dist/types/entities/action/action.d.ts.map +1 -1
  32. package/dist/types/entities/experience/experience.d.ts +33 -5
  33. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  34. package/dist/types/entities/experience-instance/experience-instance.d.ts +19 -0
  35. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  36. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  37. package/dist/types/entities/field/field.d.ts +19 -13
  38. package/dist/types/entities/field/field.d.ts.map +1 -1
  39. package/dist/types/entities/history/history.d.ts.map +1 -1
  40. package/dist/types/entities/response/response-validation.d.ts +76 -0
  41. package/dist/types/entities/response/response-validation.d.ts.map +1 -0
  42. package/dist/types/entities/response/response.d.ts +17 -13
  43. package/dist/types/entities/response/response.d.ts.map +1 -1
  44. package/dist/types/entities/step/step.d.ts +1 -3
  45. package/dist/types/entities/step/step.d.ts.map +1 -1
  46. package/dist/types/form/build-responses.d.ts +17 -0
  47. package/dist/types/form/build-responses.d.ts.map +1 -0
  48. package/dist/types/form/create-field-evaluator.d.ts +27 -0
  49. package/dist/types/form/create-field-evaluator.d.ts.map +1 -0
  50. package/dist/types/form/create-field-validation.d.ts +59 -0
  51. package/dist/types/form/create-field-validation.d.ts.map +1 -0
  52. package/dist/types/form/create-form.d.ts +97 -0
  53. package/dist/types/form/create-form.d.ts.map +1 -0
  54. package/dist/types/form/create-submit-pipeline.d.ts +70 -0
  55. package/dist/types/form/create-submit-pipeline.d.ts.map +1 -0
  56. package/dist/types/form/get-step-fields.d.ts +18 -0
  57. package/dist/types/form/get-step-fields.d.ts.map +1 -0
  58. package/dist/types/form/index.d.ts +10 -0
  59. package/dist/types/form/index.d.ts.map +1 -0
  60. package/dist/types/index.d.ts +1 -1
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/logic-engine.d.ts +12 -10
  63. package/dist/types/logic-engine.d.ts.map +1 -1
  64. package/dist/types/picked.d.ts +38 -11
  65. package/dist/types/picked.d.ts.map +1 -1
  66. package/dist/types/plugins/create-experience/create-experience.d.ts +22 -32
  67. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  68. package/dist/types/plugins/create-experience/plugin.d.ts.map +1 -1
  69. package/dist/types/plugins/create-experience/serialization.d.ts +7 -0
  70. package/dist/types/plugins/create-experience/serialization.d.ts.map +1 -0
  71. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  72. package/dist/types/plugins/dynamic-experiences/types.d.ts +11 -17
  73. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  74. package/dist/types/plugins/experience-browser-storage/plugin.d.ts +2 -1
  75. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  76. package/dist/types/plugins/history-browser-storage/plugin.d.ts +1 -0
  77. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  78. package/dist/types/plugins/responses-browser-storage/plugin.d.ts +2 -1
  79. package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +1 -1
  80. package/dist/types/plugins/responses-indexeddb/plugin.d.ts.map +1 -1
  81. package/dist/types/plugins/single-page-app/plugin.d.ts +1 -1
  82. package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
  83. package/dist/types/utils/dom.d.ts +0 -3
  84. package/dist/types/utils/dom.d.ts.map +1 -1
  85. package/dist/types/utils/events.d.ts +1 -1
  86. package/dist/types/utils/events.d.ts.map +1 -1
  87. package/dist/types/utils/global-obj.d.ts +0 -1
  88. package/dist/types/utils/global-obj.d.ts.map +1 -1
  89. package/dist/types/utils/indexed-db.d.ts +2 -1
  90. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  91. package/dist/types/utils/logger.d.ts.map +1 -1
  92. package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts +3 -0
  93. package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts.map +1 -0
  94. package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
  95. package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
  96. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +8 -4
  97. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  98. package/dist/types/utils/nodes.d.ts +58 -9
  99. package/dist/types/utils/nodes.d.ts.map +1 -1
  100. package/dist/types/utils/object.d.ts +0 -8
  101. package/dist/types/utils/object.d.ts.map +1 -1
  102. package/dist/types/utils/picked-config.d.ts +1 -1
  103. package/dist/types/utils/picked-config.d.ts.map +1 -1
  104. package/dist/types/utils/rules-logic.d.ts +31 -0
  105. package/dist/types/utils/rules-logic.d.ts.map +1 -1
  106. package/dist/types/utils/search-params.d.ts.map +1 -1
  107. package/dist/types/utils/storage.d.ts.map +1 -1
  108. package/package.json +42 -6
  109. package/dist/experience-instance-BODAwa-_.js +0 -713
  110. package/dist/experience-instance-DImQh64e.cjs +0 -1
  111. package/dist/object-BReQiaSS.cjs +0 -1
  112. package/dist/storage-BFjb8azI.cjs +0 -1
  113. package/dist/types/entities/project/project.d.ts +0 -9
  114. package/dist/types/entities/project/project.d.ts.map +0 -1
  115. package/dist/types/utils/key.d.ts +0 -12
  116. package/dist/types/utils/key.d.ts.map +0 -1
  117. package/dist/types/utils/node-tree/get-next-node-from-conditional.d.ts +0 -3
  118. package/dist/types/utils/node-tree/get-next-node-from-conditional.d.ts.map +0 -1
  119. /package/dist/{id-CIbS4P60.cjs → id-Bv44ilEo.cjs} +0 -0
  120. /package/dist/{id-BniPxOdF.js → id-CRqy981z.js} +0 -0
@@ -1,713 +0,0 @@
1
- import { t as e } from "./object-Clj5zVr1.js";
2
- import "./logger-6z_gb4rA.js";
3
- import { d as t, l as n, r } from "./supports-0XIfd4-R.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";
5
- import { createFactory as f, invoke as p } from "@withease/factories";
6
- //#region src/logic-engine.ts
7
- function m(e) {
8
- return typeof e == "number" && !isNaN(e);
9
- }
10
- function h(e) {
11
- return typeof e == "string";
12
- }
13
- function g(e) {
14
- return Array.isArray(e);
15
- }
16
- function _(e) {
17
- return e instanceof Promise;
18
- }
19
- function v(e) {
20
- return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
21
- }
22
- function y(e) {
23
- if (m(e)) return e;
24
- let t = parseFloat(`${e}`);
25
- return isNaN(t) ? 0 : t;
26
- }
27
- function b(e) {
28
- return `${e}`;
29
- }
30
- var x = {
31
- "==": (e, t) => e == t,
32
- "===": (e, t) => e === t,
33
- "!=": (e, t) => e != t,
34
- "!==": (e, t) => e !== t,
35
- ">": (e, t) => y(e) > y(t),
36
- ">=": (e, t) => y(e) >= y(t),
37
- "<": (e, t, n) => {
38
- let r = y(e), i = y(t);
39
- if (n === void 0) return r < i;
40
- let a = y(n);
41
- return r < i && i < a;
42
- },
43
- "<=": (e, t, n) => {
44
- let r = y(e), i = y(t);
45
- if (n === void 0) return r <= i;
46
- let a = y(n);
47
- return r <= i && i <= a;
48
- },
49
- "!!": async (e) => await C(e),
50
- "!": async (e) => !await C(e),
51
- "%": (e, t) => y(e) % y(t),
52
- log: (e) => (console.log(e), e),
53
- in: (e, t) => t ? h(t) ? t.indexOf(b(e)) !== -1 : g(t) ? t.includes(e) : !1 : !1,
54
- cat: (...e) => e.map(b).join(""),
55
- substr: (e, t, n) => {
56
- let r = b(e), i = y(t);
57
- if (n === void 0) return r.substr(i);
58
- let a = y(n);
59
- if (a < 0) {
60
- let e = r.substr(i);
61
- return e.substr(0, e.length + a);
62
- }
63
- return r.substr(i, a);
64
- },
65
- "+": (...e) => e.reduce((e, t) => y(e) + y(t), 0),
66
- "*": (...e) => e.reduce((e, t) => y(e) * y(t), 1),
67
- "-": (e, t) => {
68
- let n = y(e);
69
- return t === void 0 ? -n : n - y(t);
70
- },
71
- "/": (e, t) => y(e) / y(t),
72
- min: (...e) => Math.min(...e.map(y)),
73
- max: (...e) => Math.max(...e.map(y)),
74
- merge: (...e) => e.reduce((e, t) => g(t) ? e.concat(t) : e.concat([t]), []),
75
- var(e, t) {
76
- let n = arguments.length > 1 ? t : null;
77
- if (e === "" || e === "." || e == null) return this;
78
- if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
79
- let r = b(e);
80
- if (r === "" || r === ".") return this;
81
- let i = r.split("."), a = this;
82
- for (let e of i) {
83
- if (a == null) return n;
84
- if (Array.isArray(a)) {
85
- let t = parseInt(e, 10);
86
- a = isNaN(t) ? a[e] : a[t];
87
- } else a = a[e];
88
- }
89
- return a === void 0 ? n : a;
90
- },
91
- async missing(...e) {
92
- let t = g(e[0]) ? e[0] : e, n = [];
93
- for (let e of t) {
94
- let t = await S({ var: e }, this);
95
- (t === null || t === "") && n.push(`${e}`);
96
- }
97
- return n;
98
- },
99
- async missing_some(e, t) {
100
- let n = await S({ missing: t }, this);
101
- if (!g(n) || !g(t)) return [];
102
- let r = n.filter(h);
103
- return t.filter(h).length - r.length >= y(e) ? [] : r;
104
- },
105
- invoke(...e) {
106
- let [t, ...n] = e;
107
- return typeof t == "function" ? Reflect.apply(t, null, n) : null;
108
- },
109
- regexp_matches(e, t) {
110
- let n = e, r = "";
111
- if (g(e)) {
112
- let [t, i] = e;
113
- n = t, r = i;
114
- }
115
- return !h(n) || !h(r) ? !1 : new RegExp(n, r).test(b(t));
116
- },
117
- throw(e) {
118
- throw Error(b(e));
119
- }
120
- };
121
- async function S(e, t) {
122
- if (!e) return e;
123
- if (_(e)) return S(await e, t);
124
- if (g(e)) return Promise.all(e.map((e) => S(e, t)));
125
- if (!v(e)) return e;
126
- let n = w(e), r = n ? e[n] ?? [] : [];
127
- switch (g(r) || (r = [r]), n) {
128
- case "if":
129
- case "?:":
130
- for (let e = 0; e < r.length - 1; e += 2) if (await C(await S(r[e], t))) return S(r[e + 1], t);
131
- return r.length % 2 == 1 ? S(r[r.length - 1], t) : null;
132
- case "and": {
133
- let e = null;
134
- for (let n of r) if (e = await S(n, t), !await C(e)) return e;
135
- return e;
136
- }
137
- case "or": {
138
- let e = null;
139
- for (let n of r) if (e = await S(n, t), await C(e)) return e;
140
- return e;
141
- }
142
- case "map": {
143
- let e = await S(r[0], t);
144
- return g(e) ? await Promise.all(e.map((e) => S(r[1], e))) : [];
145
- }
146
- case "filter": {
147
- let e = await S(r[0], t);
148
- return g(e) ? (await Promise.all(e.map(async (e) => ({
149
- item: e,
150
- shouldInclude: await C(await S(r[1], e))
151
- })))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
152
- }
153
- case "reduce": {
154
- let e = await S(r[0], t);
155
- if (!g(e)) return r.length > 2 ? await S(r[2], t) : null;
156
- let n = r[1], i = r.length > 2 ? await S(r[2], t) : null;
157
- for (let t of e) i = await S(n, {
158
- current: t,
159
- accumulator: i
160
- });
161
- return i;
162
- }
163
- case "all": {
164
- let e = await S(r[0], t);
165
- if (!g(e) || e.length === 0) return !1;
166
- for (let t of e) if (!await C(await S(r[1], t))) return !1;
167
- return !0;
168
- }
169
- case "some": {
170
- let e = await S(r[0], t);
171
- if (!g(e)) return !1;
172
- for (let t of e) if (await C(await S(r[1], t))) return !0;
173
- return !1;
174
- }
175
- case "none": {
176
- let e = await S(r[0], t);
177
- if (!g(e)) return !0;
178
- for (let t of e) if (await C(await S(r[1], t))) return !1;
179
- return !0;
180
- }
181
- case "catch": try {
182
- return await S(r[0], t);
183
- } catch (e) {
184
- return v(e) ? await S(e, t) : r[1] ? await S(r[1], e) : e instanceof Error ? e.message : e;
185
- }
186
- }
187
- let i = await Promise.all(r.map((e) => S(e, t))), a = n ? x[n] : void 0;
188
- if (!a) throw Error(`Unrecognized operation ${n}`);
189
- return a.apply(t, i);
190
- }
191
- async function C(e) {
192
- return _(e) ? C(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
193
- }
194
- function w(e) {
195
- return Object.keys(e)[0];
196
- }
197
- //#endregion
198
- //#region src/utils/rules-logic.ts
199
- function T(t) {
200
- return !e(t);
201
- }
202
- async function E(e, t, n) {
203
- let r = e.getStateSnapshot(), i = e.predicates.listStore.getState().reduce((e, t) => ({
204
- ...e,
205
- [t.name]: (...e) => t.predicate({
206
- ...r,
207
- args: e
208
- })
209
- }), {}), a = e.features.listStore.getState().reduce((e, t) => ({
210
- ...e,
211
- [t.id]: async () => {
212
- let { bucket: e } = await t.getBucket();
213
- return e;
214
- }
215
- }), {});
216
- return await S(t, {
217
- ...n,
218
- responses: e.responses.getAllByKeyStore.getState(),
219
- location: typeof r.location == "object" ? {
220
- hash: r.location.hash,
221
- host: r.location.host,
222
- hostname: r.location.hostname,
223
- href: r.location.href,
224
- origin: r.location.origin,
225
- pathname: r.location.pathname,
226
- port: r.location.port,
227
- protocol: r.location.protocol,
228
- search: r.location.search
229
- } : void 0,
230
- predicates: i,
231
- features: a
232
- });
233
- }
234
- //#endregion
235
- //#region src/utils/dom.ts
236
- function D(e) {
237
- return !t() || !r() ? [] : Array.from(window.document.querySelectorAll(e)).filter((e) => e instanceof HTMLElement);
238
- }
239
- var O = "open";
240
- function k(e) {
241
- if (!n()) throw Error("Shadow DOM is not supported in this environment");
242
- return e.attachShadow({ mode: O });
243
- }
244
- function A() {
245
- return new Promise((e, t) => {
246
- if (!r()) {
247
- t();
248
- return;
249
- }
250
- document.readyState === "loading" ? document.addEventListener("readystatechange", () => e(), { once: !0 }) : e();
251
- });
252
- }
253
- function j(e, t) {
254
- let n = new MutationObserver((r) => {
255
- document.contains(e) || (n.disconnect(), t());
256
- });
257
- n.observe(document.body, {
258
- childList: !0,
259
- subtree: !0
260
- });
261
- }
262
- var M = "picked-root", N = "picked-target", P = "picked-root";
263
- function F(e, t) {
264
- return [...e, {
265
- selector: `${P}[experience-id="${t}"]`,
266
- placement: "replace"
267
- }].flatMap((e) => {
268
- let n = D(e.selector).filter((e) => !R(e, t) && !z(e, t));
269
- return {
270
- ...e,
271
- elements: n
272
- };
273
- });
274
- }
275
- function I(e, t) {
276
- return e.flatMap((e) => e.elements.map((n) => V(n, e.placement, t)));
277
- }
278
- function L(e, t) {
279
- e.classList.add(N), e.classList.add(`${N}-${t}`);
280
- }
281
- function R(e, t) {
282
- return t ? e.classList.contains(`${N}-${t}`) : e.classList.contains(`${N}`);
283
- }
284
- function z(e, t) {
285
- return t ? e.classList.contains(`${M}-${t}`) : e.classList.contains(M);
286
- }
287
- function B(e) {
288
- let t = document.createElement("div");
289
- return t.style.display = "block", t.classList.add(M), t.classList.add(`${M}-${e}`), t;
290
- }
291
- function V(e, t, n) {
292
- let r, i = B(n);
293
- if (e instanceof Document) r = e.body.appendChild(i);
294
- else {
295
- switch (t) {
296
- case "replace":
297
- e.replaceWith(i);
298
- break;
299
- case "before":
300
- e.before(i);
301
- break;
302
- case "after":
303
- e.after(i);
304
- break;
305
- case "prepend":
306
- e.prepend(i);
307
- break;
308
- default:
309
- e.append(i);
310
- break;
311
- }
312
- r = i;
313
- }
314
- return r;
315
- }
316
- //#endregion
317
- //#region src/utils/nodes.ts
318
- function H(e) {
319
- return e.type === "condition";
320
- }
321
- function U(e) {
322
- return e.type === "step";
323
- }
324
- function W(e) {
325
- return e.type === "experience";
326
- }
327
- function G(e) {
328
- return e.type === "origin";
329
- }
330
- function K(e) {
331
- return e.type === "action";
332
- }
333
- function q(e) {
334
- return e.stepKey || e.stepId || "";
335
- }
336
- function J(e) {
337
- return e.conditionId;
338
- }
339
- //#endregion
340
- //#region src/utils/node-tree/next-reachable-step-nodes.ts
341
- var Y = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add(n.id), U(n) && !r ? [n] : t.filter((e) => e.sourceNodeId === n.id).flatMap((n) => {
342
- let r = e.find((e) => e.id === n.destinationNodeId);
343
- return r ? Y(e, t, r, !1, i) : [];
344
- })), ee = (e, t, n) => Y(e, t, n, !0, /* @__PURE__ */ new Set()), X = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
345
- if (i.has(n.id)) return [-1, -1];
346
- i.add(n.id);
347
- let a = t.filter((e) => e.sourceNodeId === n.id);
348
- if (a.length === 0) return [0, 0];
349
- let o = Infinity, s = -Infinity;
350
- for (let n of a) {
351
- let r = e.find((e) => e.id === n.destinationNodeId);
352
- if (!r) continue;
353
- let [a, c] = X(e, t, r, !1, new Set(i));
354
- a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
355
- }
356
- return o === Infinity ? [-1, -1] : [o, s];
357
- }, te = (e, t, n) => X(e, t, n, !0, /* @__PURE__ */ new Set()), Z = (e, t, n, r = /* @__PURE__ */ new Set()) => {
358
- if (r.has(n.id)) return [-1, -1];
359
- if (r.add(n.id), n.type === "origin") return [0, 0];
360
- let i = t.filter((e) => e.destinationNodeId === n.id);
361
- if (i.length === 0) return [-1, -1];
362
- let a = Infinity, o = -Infinity;
363
- for (let n of i) {
364
- let i = e.find((e) => e.id === n.sourceNodeId);
365
- if (!i) continue;
366
- let [s, c] = Z(e, t, i, new Set(r));
367
- s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
368
- }
369
- return a === Infinity ? [-1, -1] : [a, o];
370
- }, ne = (e, t, n) => Z(e, t, n, /* @__PURE__ */ new Set()), re = (e) => e.find((e) => e.type === "origin") || null, Q = (e, t, n) => {
371
- if (!e) return re(t);
372
- let r = n.find((t) => t.sourceNodeId === e.id);
373
- return r && t.find((e) => e.id === r.destinationNodeId) || null;
374
- };
375
- //#endregion
376
- //#region src/utils/node-tree/get-next-node-from-conditional.ts
377
- async function ie(e, t, n, r) {
378
- let i = e ? "true" : "false", a = r.find((e) => e.sourceNodeHandle === i && e.sourceNodeId === t);
379
- return n.find((e) => e.id === a?.destinationNodeId);
380
- }
381
- //#endregion
382
- //#region src/entities/experience-instance/experience-instance.ts
383
- var $ = s("experience-instance"), ae = f(({ client: e, experience: t, target: n, options: r }) => {
384
- let s = l(), f = l(), p = l(), m = l(), h = l(), g = l(), _ = t.componentStore, v = $.store("transitioning"), y = e.history.entriesStore.map((e) => e.filter((e) => e.experienceId === t.id)), b = y.map((e) => e.filter((e) => U(e.node))), x = y.map((e) => e.at(-1)?.node || null), S = a(e.steps.listStore, x, (e, t) => e.find((e) => t && U(t) && e.key === q(t)) || null), C = a(e.steps.listStore, b, (e, t) => {
385
- let n = t.at(-2);
386
- if (!n || !U(n.node)) return null;
387
- let r = n.node;
388
- return e.find((e) => e.key === q(r)) || null;
389
- }), w = a(t.treeStore, x, ({ nodes: e, edges: t }, n) => n ? ee(e, t, n) : []), D = a(t.treeStore, x, ({ nodes: e, edges: t }, n) => n ? ne(e, t, n) : [-1, -1]), O = a(t.treeStore, x, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : [-1, -1]), k = $.store(!1), A = o(k, {
390
- open: () => !0,
391
- close: () => !1,
392
- toggle: (e) => !e,
393
- set: (e, t) => t
394
- }), j = c(async () => {
395
- e.history.back({ experienceId: t.id });
396
- }), M = i({
397
- source: t.treeStore,
398
- effect: async (n, r) => {
399
- let i = n.nodes.find((e) => U(e) && q(e) === r);
400
- i && e.history.push({
401
- experienceId: t.id,
402
- node: i
403
- });
404
- }
405
- }), N = i({
406
- source: x,
407
- effect: (e) => {}
408
- }), P = i({
409
- source: t.treeStore,
410
- effect: async ({ nodes: e }) => re(e)
411
- }), F = i({
412
- source: t.treeStore,
413
- effect: async ({ nodes: e, edges: t }, n) => {
414
- if (G(n)) return Q(n, e, t);
415
- }
416
- }), I = i({
417
- source: t.treeStore,
418
- effect: async ({ nodes: t, edges: n, conditions: r }, i) => {
419
- if (!H(i)) return;
420
- let a = i.conditionId, o = r.find((e) => e.id === a)?.logic;
421
- return o ? ie(!!await E(e, o), i.id, t, n) : void 0;
422
- }
423
- }), L = i({
424
- source: t.treeStore,
425
- effect: async ({ nodes: t, edges: n }, r) => {
426
- if (!K(r)) return;
427
- let i = r.action;
428
- if (!i) {
429
- `${r.id}`;
430
- return;
431
- }
432
- let a = e.actions.getByName(i).getState();
433
- if (!a) {
434
- `${i}`;
435
- let e = n.find((e) => e.sourceNodeId === r.id && e.sourceNodeHandle === "false");
436
- return e ? t.find((t) => t.id === e.destinationNodeId) : null;
437
- }
438
- if (typeof a.action != "function") {
439
- `${i}`;
440
- let e = n.find((e) => e.sourceNodeId === r.id && e.sourceNodeHandle === "false");
441
- return e ? t.find((t) => t.id === e.destinationNodeId) : null;
442
- }
443
- try {
444
- `${i}`, await a.action(i);
445
- let e = n.find((e) => e.sourceNodeId === r.id && e.sourceNodeHandle === "true");
446
- if (!e) return `${r.id}`, null;
447
- let o = t.find((t) => t.id === e.destinationNodeId);
448
- return `${i}${o?.id}`, o || null;
449
- } catch {
450
- `${i}`;
451
- let e = n.find((e) => e.sourceNodeId === r.id && e.sourceNodeHandle === "false");
452
- if (!e) return `${r.id}`, null;
453
- let a = t.find((t) => t.id === e.destinationNodeId);
454
- return `${i}${a?.id}`, a || null;
455
- }
456
- }
457
- }), R = c((t) => {
458
- W(t) && e.experiences.launch({ key: t.experienceId });
459
- }), z = i({
460
- source: [x, t.treeStore],
461
- effect: async ([e, { nodes: t, edges: n }]) => Q(e, t, n)
462
- }), B = i({
463
- source: [x, t.treeStore],
464
- effect: async ([e, { nodes: t, edges: n }]) => Q(e, t, n)
465
- }), V = c((n) => {
466
- e.history.push({
467
- experienceId: t.id,
468
- node: n
469
- });
470
- }), J = i({
471
- source: t.configStore,
472
- effect: async ({ initializeOpenLogic: t }) => r?.initialiseOpen === void 0 ? T(t) ? !!await E(e, t) : t ?? !1 : r.initialiseOpen
473
- }), Y = Object.freeze({
474
- id: Math.random().toString(36).substring(7),
475
- experienceId: t.id,
476
- configStore: t.configStore,
477
- target: n,
478
- componentStore: _,
479
- stateStore: v,
480
- isOpenStore: k,
481
- open: A.open,
482
- close: A.close,
483
- toggleOpen: A.toggle,
484
- setOpen: A.set,
485
- treeStore: t.treeStore,
486
- currentNodeStore: x,
487
- currentStepStore: S,
488
- previousStepStore: C,
489
- nextReachableStepNodesStore: w,
490
- stepsToOriginStore: D,
491
- stepsToLeafStore: O,
492
- goToNextStep: f,
493
- goToPreviousStep: p,
494
- goToStepById: m,
495
- stepsHistoryStore: b
496
- }), X = l(), Z = l();
497
- return u({
498
- source: x,
499
- target: X
500
- }), u({
501
- clock: X,
502
- filter: (e) => e === null,
503
- target: P
504
- }), u({
505
- clock: X,
506
- filter: (e) => e !== null,
507
- target: Z
508
- }), d({
509
- source: Z,
510
- match: (e) => H(e) ? "condition" : U(e) ? "step" : W(e) ? "launchExperience" : G(e) ? "origin" : K(e) ? "action" : "other",
511
- cases: {
512
- origin: F,
513
- condition: I,
514
- step: N,
515
- launchExperience: R,
516
- action: L,
517
- __: l()
518
- }
519
- }), u({
520
- clock: [
521
- I.doneData,
522
- F.doneData,
523
- P.doneData,
524
- B.doneData,
525
- z.doneData,
526
- L.doneData
527
- ],
528
- filter: Boolean,
529
- target: V
530
- }), u({
531
- clock: f,
532
- target: B
533
- }), u({
534
- clock: f,
535
- source: S,
536
- filter: Boolean,
537
- target: e.eventBus.prepend((e) => ({
538
- type: "step_submit",
539
- step: e,
540
- experience: Y
541
- }))
542
- }), u({
543
- clock: B.done,
544
- source: S,
545
- filter: Boolean,
546
- target: e.eventBus.prepend((e) => ({
547
- type: "step_submit_success",
548
- step: e,
549
- experience: Y
550
- }))
551
- }), u({
552
- clock: B.fail,
553
- source: S,
554
- filter: Boolean,
555
- target: e.eventBus.prepend((e) => ({
556
- type: "step_submit_error",
557
- step: e,
558
- experience: Y
559
- }))
560
- }), u({
561
- clock: p,
562
- target: j
563
- }), u({
564
- clock: m,
565
- target: M
566
- }), u({
567
- source: a([
568
- I.pending,
569
- F.pending,
570
- P.pending,
571
- B.pending
572
- ]),
573
- fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
574
- target: v
575
- }), u({
576
- clock: N.doneData,
577
- source: S,
578
- filter: Boolean,
579
- target: e.eventBus.prepend((e) => ({
580
- type: "step_enter",
581
- step: e,
582
- experience: Y
583
- }))
584
- }), u({
585
- clock: g,
586
- target: J
587
- }), u({
588
- source: J.doneData,
589
- fn: Boolean,
590
- target: k
591
- }), u({
592
- source: x,
593
- clock: s,
594
- filter: (e) => e ? G(e) : !0,
595
- target: z
596
- }), u({
597
- source: k,
598
- filter: Boolean,
599
- target: s
600
- }), u({
601
- source: k,
602
- filter: Boolean,
603
- target: e.eventBus.prepend(() => ({
604
- type: "experience_open",
605
- experience: Y
606
- }))
607
- }), u({
608
- source: k,
609
- filter: (e) => !e,
610
- target: e.eventBus.prepend(() => ({
611
- type: "experience_close",
612
- experience: Y
613
- }))
614
- }), u({
615
- clock: h,
616
- target: [g]
617
- }), h(), Y;
618
- });
619
- function oe(e) {
620
- return p(ae, e);
621
- }
622
- var se = f(({ client: e }) => {
623
- let t = $.store({}), n = l(), r = l(), i = l(), a = o(t, {
624
- register(e, t) {
625
- let n = [...e[t.experienceId] ?? []];
626
- return n.push(t), {
627
- ...e,
628
- [t.experienceId]: n
629
- };
630
- },
631
- unregister(e, t) {
632
- let n = t.experienceId, r = e[n]?.filter((e) => e !== t);
633
- return {
634
- ...e,
635
- [n]: r ?? []
636
- };
637
- }
638
- }), s = c(({ experience: t, target: n, options: r }) => oe({
639
- client: e,
640
- experience: t,
641
- target: n,
642
- options: r
643
- })), d = c((e) => {
644
- a.register(e);
645
- }), f = c((e) => {
646
- e.target && j(e.target, () => {
647
- i(e);
648
- });
649
- }), p = c((e) => {
650
- a.unregister(e);
651
- }), m = c((t) => {
652
- let n = t.componentStore.getState();
653
- if (!n) return;
654
- let r = n.frameworkStore.getState();
655
- if (!r) {
656
- `${n.name}`;
657
- return;
658
- }
659
- let i = t.target;
660
- if (!i) {
661
- `${t.experienceId}`;
662
- return;
663
- }
664
- let a = k(i);
665
- try {
666
- r.render(a, n.component, e, t);
667
- } catch {}
668
- });
669
- u({
670
- clock: n,
671
- target: s
672
- }), u({
673
- clock: i,
674
- target: p
675
- }), u({
676
- clock: s.doneData,
677
- target: [
678
- d,
679
- f,
680
- r
681
- ]
682
- }), u({
683
- clock: s.doneData,
684
- target: e.eventBus.prepend((e) => ({
685
- type: "experience_initialize",
686
- experience: e
687
- }))
688
- }), u({
689
- clock: r,
690
- target: m
691
- });
692
- function h(e, t, r) {
693
- n({
694
- experience: e,
695
- target: t,
696
- options: r
697
- });
698
- }
699
- let g = t.map((e) => Object.values(e).flat());
700
- function _(e) {
701
- return t.map((t) => t[e] || [], { skipVoid: !1 });
702
- }
703
- return {
704
- spawn: h,
705
- getByExperienceId: _,
706
- listStore: g
707
- };
708
- });
709
- function ce(e) {
710
- return p(se, e);
711
- }
712
- //#endregion
713
- export { J as a, A as c, L as d, E as f, U as i, F as l, ce as n, q as o, T as p, H as r, I as s, oe as t, z as u };