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

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 (119) hide show
  1. package/dist/{api-oudcFuUX.js → api-ENA5t36y.js} +1 -1
  2. package/dist/{api-BEXzPJHZ.cjs → api-dkMxUUe0.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/create-experience/index.js +1 -1
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  7. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  10. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  11. package/dist/cjs/plugins/web-components/index.js +1 -1
  12. package/dist/cjs/server/index.js +1 -1
  13. package/dist/esm/index.js +503 -426
  14. package/dist/esm/plugins/create-experience/index.js +329 -294
  15. package/dist/esm/plugins/dynamic-experiences/index.js +53 -30
  16. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  17. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-indexeddb/index.js +9 -5
  20. package/dist/esm/plugins/single-page-app/index.js +4 -4
  21. package/dist/esm/plugins/web-components/index.js +1 -1
  22. package/dist/esm/server/index.js +1 -1
  23. package/dist/experience-instance-BODAwa-_.js +713 -0
  24. package/dist/experience-instance-DImQh64e.cjs +1 -0
  25. package/dist/object-BReQiaSS.cjs +1 -0
  26. package/dist/{object-C82v79xc.js → object-Clj5zVr1.js} +1 -2
  27. package/dist/storage-BFjb8azI.cjs +1 -0
  28. package/dist/{storage-6Xk0uAxB.js → storage-DyxpJ0pg.js} +1 -3
  29. package/dist/types/entities/action/action.d.ts.map +1 -1
  30. package/dist/types/entities/condition/condition.d.ts +17 -0
  31. package/dist/types/entities/condition/condition.d.ts.map +1 -0
  32. package/dist/types/entities/experience/experience.d.ts +36 -59
  33. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  34. package/dist/types/entities/experience-instance/experience-instance.d.ts +2 -2
  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 +17 -12
  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/project/project.d.ts +9 -0
  41. package/dist/types/entities/project/project.d.ts.map +1 -0
  42. package/dist/types/entities/response/response.d.ts +10 -7
  43. package/dist/types/entities/response/response.d.ts.map +1 -1
  44. package/dist/types/entities/step/step.d.ts +38 -0
  45. package/dist/types/entities/step/step.d.ts.map +1 -0
  46. package/dist/types/index.d.ts +3 -1
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/dist/types/logic-engine.d.ts +8 -2
  49. package/dist/types/logic-engine.d.ts.map +1 -1
  50. package/dist/types/picked.d.ts +61 -52
  51. package/dist/types/picked.d.ts.map +1 -1
  52. package/dist/types/plugins/create-experience/create-experience.d.ts +61 -29
  53. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  54. package/dist/types/plugins/create-experience/index.d.ts +2 -2
  55. package/dist/types/plugins/create-experience/index.d.ts.map +1 -1
  56. package/dist/types/plugins/create-experience/plugin.d.ts.map +1 -1
  57. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +21 -4
  58. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  59. package/dist/types/plugins/dynamic-experiences/types.d.ts +47 -0
  60. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  61. package/dist/types/plugins/experience-browser-storage/plugin.d.ts +1 -2
  62. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  63. package/dist/types/plugins/history-browser-storage/plugin.d.ts +0 -1
  64. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  65. package/dist/types/plugins/responses-browser-storage/plugin.d.ts +1 -2
  66. package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +1 -1
  67. package/dist/types/plugins/responses-indexeddb/plugin.d.ts.map +1 -1
  68. package/dist/types/plugins/single-page-app/plugin.d.ts +1 -1
  69. package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
  70. package/dist/types/utils/dom.d.ts +3 -0
  71. package/dist/types/utils/dom.d.ts.map +1 -1
  72. package/dist/types/utils/events.d.ts +2 -2
  73. package/dist/types/utils/events.d.ts.map +1 -1
  74. package/dist/types/utils/global-obj.d.ts +1 -0
  75. package/dist/types/utils/global-obj.d.ts.map +1 -1
  76. package/dist/types/utils/indexed-db.d.ts +1 -2
  77. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  78. package/dist/types/utils/key.d.ts +12 -0
  79. package/dist/types/utils/key.d.ts.map +1 -0
  80. package/dist/types/utils/logger.d.ts.map +1 -1
  81. package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
  82. package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
  83. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +3 -3
  84. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  85. package/dist/types/utils/nodes.d.ts +25 -2
  86. package/dist/types/utils/nodes.d.ts.map +1 -1
  87. package/dist/types/utils/object.d.ts +8 -0
  88. package/dist/types/utils/object.d.ts.map +1 -1
  89. package/dist/types/utils/picked-config.d.ts +1 -1
  90. package/dist/types/utils/picked-config.d.ts.map +1 -1
  91. package/dist/types/utils/search-params.d.ts.map +1 -1
  92. package/dist/types/utils/storage.d.ts.map +1 -1
  93. package/package.json +1 -11
  94. package/dist/cjs/form/index.js +0 -1
  95. package/dist/esm/form/index.js +0 -428
  96. package/dist/experience-instance-DZiAwXph.js +0 -481
  97. package/dist/experience-instance-Ddk4Jktn.cjs +0 -1
  98. package/dist/object-CUJOjanb.cjs +0 -1
  99. package/dist/rules-logic-B7vJrWyO.js +0 -231
  100. package/dist/rules-logic-CXr4wXcG.cjs +0 -1
  101. package/dist/storage-B6lQtc4-.cjs +0 -1
  102. package/dist/types/form/build-responses.d.ts +0 -14
  103. package/dist/types/form/build-responses.d.ts.map +0 -1
  104. package/dist/types/form/create-field-evaluator.d.ts +0 -19
  105. package/dist/types/form/create-field-evaluator.d.ts.map +0 -1
  106. package/dist/types/form/create-field-validation.d.ts +0 -44
  107. package/dist/types/form/create-field-validation.d.ts.map +0 -1
  108. package/dist/types/form/create-form.d.ts +0 -66
  109. package/dist/types/form/create-form.d.ts.map +0 -1
  110. package/dist/types/form/create-submit-pipeline.d.ts +0 -58
  111. package/dist/types/form/create-submit-pipeline.d.ts.map +0 -1
  112. package/dist/types/form/get-step-fields.d.ts +0 -5
  113. package/dist/types/form/get-step-fields.d.ts.map +0 -1
  114. package/dist/types/form/index.d.ts +0 -10
  115. package/dist/types/form/index.d.ts.map +0 -1
  116. package/dist/types/plugins/create-experience/serialization.d.ts +0 -6
  117. package/dist/types/plugins/create-experience/serialization.d.ts.map +0 -1
  118. /package/dist/{id-CRqy981z.js → id-BniPxOdF.js} +0 -0
  119. /package/dist/{id-Bv44ilEo.cjs → id-CIbS4P60.cjs} +0 -0
@@ -0,0 +1,713 @@
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 };