@picked/client 0.0.1-dev.1756875690387 → 0.0.1-dev.1762908210565

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