@picked/client 0.0.1-dev.1764632196476 → 0.0.1-dev.1764633009920
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/cjs/index.js +1 -1
- package/dist/cjs/plugins/create-experience/index.js +1 -1
- package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/esm/index.js +441 -460
- package/dist/esm/plugins/create-experience/index.js +121 -123
- package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
- package/dist/esm/plugins/history-browser-storage/index.js +8 -8
- package/dist/esm/plugins/responses-browser-storage/index.js +6 -6
- package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
- package/dist/esm/server/index.js +1 -1
- package/dist/{experience-instance-DjjpHk0t.cjs → experience-instance-BpQMqclI.cjs} +1 -1
- package/dist/{experience-instance-C4INDX6a.js → experience-instance-CMrX6QA2.js} +1 -1
- package/dist/types/client.d.ts +0 -31
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/entities/experience/experience.d.ts +1 -3
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/picked.d.ts +9 -12
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/create-experience/create-experience.d.ts +1 -5
- package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
- package/dist/types/utils/events.d.ts +7 -10
- package/dist/types/utils/events.d.ts.map +1 -1
- package/dist/types/utils/user-session.d.ts +0 -2
- package/dist/types/utils/user-session.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -1,207 +1,207 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var m = (t, e,
|
|
4
|
-
import { createDomain as
|
|
5
|
-
import { createFactory as
|
|
6
|
-
import { g as
|
|
7
|
-
import { f as kt } from "../experience-instance-
|
|
8
|
-
import { l as
|
|
9
|
-
import { c as
|
|
10
|
-
import { a as
|
|
11
|
-
import { g as
|
|
12
|
-
import { i as
|
|
13
|
-
import { s as H, a as
|
|
14
|
-
import { h as bt, f as
|
|
15
|
-
const
|
|
1
|
+
var Y = Object.defineProperty;
|
|
2
|
+
var J = (t, e, r) => e in t ? Y(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
|
|
3
|
+
var m = (t, e, r) => J(t, typeof e != "symbol" ? e + "" : e, r);
|
|
4
|
+
import { createDomain as b, createApi as I, createEffect as M, attach as Q, sample as x, combine as O, createEvent as C } from "effector";
|
|
5
|
+
import { createFactory as v, invoke as w } from "@withease/factories";
|
|
6
|
+
import { g as _, t as X, c as Z, i as ee, e as $, a as te, b as re, d as se } from "../experience-instance-CMrX6QA2.js";
|
|
7
|
+
import { f as kt } from "../experience-instance-CMrX6QA2.js";
|
|
8
|
+
import { l as k } from "../logger-C9a75KZn.js";
|
|
9
|
+
import { c as R, s as j, l as D } from "../storage-Cb_71y48.js";
|
|
10
|
+
import { a as wt } from "../storage-Cb_71y48.js";
|
|
11
|
+
import { g as ne } from "../id-BW-g3y32.js";
|
|
12
|
+
import { i as oe } from "../object-JwZ58NOH.js";
|
|
13
|
+
import { s as H, a as ie, b as ae, c as ce, d as ue } from "../supports-BjhuLJ8z.js";
|
|
14
|
+
import { h as bt, f as It, j as xt, e as Et, g as Pt, i as Rt, k as Bt } from "../supports-BjhuLJ8z.js";
|
|
15
|
+
const K = b("experience"), le = v(
|
|
16
16
|
({ client: t, experience: e }) => {
|
|
17
|
-
const
|
|
18
|
-
merge(
|
|
17
|
+
const r = K.store(e), n = I(r, {
|
|
18
|
+
merge(l, h) {
|
|
19
19
|
return {
|
|
20
|
-
...
|
|
20
|
+
...l,
|
|
21
21
|
...h.experience
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
}),
|
|
25
|
-
name:
|
|
26
|
-
decisionLogic:
|
|
27
|
-
targetSelectors:
|
|
24
|
+
}), c = r.map((l) => ({
|
|
25
|
+
name: l.name,
|
|
26
|
+
decisionLogic: l.decide,
|
|
27
|
+
targetSelectors: l.targets,
|
|
28
28
|
initializeOpenLogic: e.initializeOpen
|
|
29
|
-
})),
|
|
30
|
-
(
|
|
29
|
+
})), u = t.components.listStore.map(
|
|
30
|
+
(l) => l.find((h) => h.name === `experience:${e.id}`) || l.find((h) => h.name === "experience"),
|
|
31
31
|
{ skipVoid: !1 }
|
|
32
|
-
),
|
|
33
|
-
steps:
|
|
34
|
-
nodes:
|
|
35
|
-
edges:
|
|
36
|
-
conditionals:
|
|
37
|
-
})),
|
|
32
|
+
), s = r.map((l) => ({
|
|
33
|
+
steps: l.steps,
|
|
34
|
+
nodes: l.nodes,
|
|
35
|
+
edges: l.edges,
|
|
36
|
+
conditionals: l.conditionals
|
|
37
|
+
})), o = e.actions ?? [];
|
|
38
38
|
return {
|
|
39
39
|
id: e.id,
|
|
40
|
-
configStore:
|
|
41
|
-
treeStore:
|
|
42
|
-
componentStore:
|
|
43
|
-
actions:
|
|
40
|
+
configStore: c,
|
|
41
|
+
treeStore: s,
|
|
42
|
+
componentStore: u,
|
|
43
|
+
actions: o,
|
|
44
44
|
merge: n.merge
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
);
|
|
48
|
-
function
|
|
49
|
-
return w(
|
|
48
|
+
function de(t) {
|
|
49
|
+
return w(le, t);
|
|
50
50
|
}
|
|
51
|
-
const
|
|
52
|
-
const e =
|
|
53
|
-
register(
|
|
51
|
+
const pe = v(({ client: t }) => {
|
|
52
|
+
const e = K.store({}), r = I(e, {
|
|
53
|
+
register(s, o) {
|
|
54
54
|
return {
|
|
55
|
-
...
|
|
56
|
-
[
|
|
55
|
+
...s,
|
|
56
|
+
[o.id]: o
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
-
function n(
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
63
|
-
|
|
60
|
+
function n(s) {
|
|
61
|
+
const o = e.getState()[s.id];
|
|
62
|
+
if (o) {
|
|
63
|
+
o.merge({ experience: s, strategy: "override" });
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
const
|
|
67
|
-
|
|
66
|
+
const l = de({ client: t, experience: s });
|
|
67
|
+
r.register(l);
|
|
68
68
|
}
|
|
69
|
-
const
|
|
70
|
-
function
|
|
71
|
-
return e.map((
|
|
69
|
+
const c = e.map((s) => Object.values(s));
|
|
70
|
+
function u(s) {
|
|
71
|
+
return e.map((o) => o[s], { skipVoid: !1 });
|
|
72
72
|
}
|
|
73
73
|
return {
|
|
74
74
|
register: n,
|
|
75
|
-
getById:
|
|
76
|
-
listStore:
|
|
75
|
+
getById: u,
|
|
76
|
+
listStore: c
|
|
77
77
|
};
|
|
78
78
|
});
|
|
79
|
-
function
|
|
80
|
-
return w(
|
|
79
|
+
function ge(t) {
|
|
80
|
+
return w(pe, t);
|
|
81
81
|
}
|
|
82
|
-
const
|
|
82
|
+
const fe = (t, e) => {
|
|
83
83
|
e.register(t);
|
|
84
|
-
},
|
|
85
|
-
const { targetSelectors:
|
|
84
|
+
}, q = (t, e) => {
|
|
85
|
+
const { targetSelectors: r } = e.configStore.getState(), n = _(r, e.id);
|
|
86
86
|
n.forEach(
|
|
87
|
-
({ elements:
|
|
88
|
-
),
|
|
89
|
-
t.experienceInstances.spawn(e,
|
|
87
|
+
({ elements: u }) => u.forEach((s) => X(s, e.id))
|
|
88
|
+
), Z(n, e.id).forEach((u) => {
|
|
89
|
+
t.experienceInstances.spawn(e, u);
|
|
90
90
|
});
|
|
91
|
-
},
|
|
91
|
+
}, V = async (t) => {
|
|
92
92
|
await Promise.all(
|
|
93
93
|
t.experiences.listStore.getState().map(async (e) => {
|
|
94
|
-
await
|
|
94
|
+
await me(t, e) && q(t, e);
|
|
95
95
|
})
|
|
96
96
|
);
|
|
97
|
-
},
|
|
98
|
-
const { decisionLogic:
|
|
99
|
-
return
|
|
100
|
-
},
|
|
101
|
-
const n = e.name,
|
|
102
|
-
if (
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
({ client: t, component: e, name:
|
|
97
|
+
}, me = async (t, e) => {
|
|
98
|
+
const { decisionLogic: r, targetSelectors: n } = e.configStore.getState();
|
|
99
|
+
return _(n, e.id).length < 1 || n.length === 0 ? !1 : r && ee(r) ? await $(t, r) === !0 : !0;
|
|
100
|
+
}, he = (t, e, r) => {
|
|
101
|
+
const n = e.name, c = e.setup(t);
|
|
102
|
+
if (c) {
|
|
103
|
+
const u = r[n] ?? {};
|
|
104
|
+
r[n] = Object.freeze({ ...u, ...c });
|
|
105
|
+
}
|
|
106
|
+
}, ye = b("component"), Se = v(
|
|
107
|
+
({ client: t, component: e, name: r }) => {
|
|
108
108
|
const n = t.frameworks.getByName(e.frameworkName);
|
|
109
109
|
return {
|
|
110
|
-
name:
|
|
110
|
+
name: r,
|
|
111
111
|
component: e,
|
|
112
112
|
frameworkStore: n
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
);
|
|
116
|
-
function
|
|
117
|
-
return w(
|
|
116
|
+
function ke(t) {
|
|
117
|
+
return w(Se, t);
|
|
118
118
|
}
|
|
119
|
-
const
|
|
120
|
-
const e =
|
|
121
|
-
register(
|
|
119
|
+
const ve = v(({ client: t }) => {
|
|
120
|
+
const e = ye.store({}), r = I(e, {
|
|
121
|
+
register(s, o) {
|
|
122
122
|
return {
|
|
123
|
-
...
|
|
124
|
-
[
|
|
123
|
+
...s,
|
|
124
|
+
[o.name]: o
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
|
-
function n(
|
|
129
|
-
e.getState()[
|
|
128
|
+
function n(s, o) {
|
|
129
|
+
e.getState()[s] && k(
|
|
130
130
|
"warn",
|
|
131
|
-
`Component '${
|
|
131
|
+
`Component '${s}' already registered. Registering again will override the previous registration.`
|
|
132
132
|
);
|
|
133
|
-
const h =
|
|
134
|
-
|
|
133
|
+
const h = ke({ client: t, name: s, component: o });
|
|
134
|
+
r.register(h);
|
|
135
135
|
}
|
|
136
|
-
const
|
|
137
|
-
function
|
|
138
|
-
return e.map((
|
|
136
|
+
const c = e.map((s) => Object.values(s));
|
|
137
|
+
function u(s) {
|
|
138
|
+
return e.map((o) => o[s], { skipVoid: !1 });
|
|
139
139
|
}
|
|
140
140
|
return {
|
|
141
141
|
register: n,
|
|
142
|
-
getByName:
|
|
143
|
-
listStore:
|
|
142
|
+
getByName: u,
|
|
143
|
+
listStore: c
|
|
144
144
|
};
|
|
145
145
|
});
|
|
146
|
-
function
|
|
147
|
-
return w(
|
|
146
|
+
function we(t) {
|
|
147
|
+
return w(ve, t);
|
|
148
148
|
}
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
},
|
|
152
|
-
const e =
|
|
153
|
-
register(
|
|
149
|
+
const T = (t, e, r) => {
|
|
150
|
+
r.register(t, e);
|
|
151
|
+
}, Fe = b("framework"), be = v(({ client: t }) => {
|
|
152
|
+
const e = Fe.store({}), r = I(e, {
|
|
153
|
+
register(s, o) {
|
|
154
154
|
return {
|
|
155
|
-
...
|
|
156
|
-
[
|
|
155
|
+
...s,
|
|
156
|
+
[o.name]: o.framework
|
|
157
157
|
};
|
|
158
158
|
}
|
|
159
159
|
});
|
|
160
|
-
function n(
|
|
161
|
-
e.getState()[
|
|
160
|
+
function n(s, o) {
|
|
161
|
+
e.getState()[s] && k(
|
|
162
162
|
"warn",
|
|
163
|
-
`Framework '${
|
|
164
|
-
),
|
|
163
|
+
`Framework '${s}' already registered. Registering again will override the previous registration.`
|
|
164
|
+
), r.register({ name: s, framework: o });
|
|
165
165
|
}
|
|
166
|
-
const
|
|
167
|
-
function
|
|
168
|
-
return e.map((
|
|
166
|
+
const c = e.map((s) => Object.values(s));
|
|
167
|
+
function u(s) {
|
|
168
|
+
return e.map((o) => o[s], { skipVoid: !1 });
|
|
169
169
|
}
|
|
170
170
|
return {
|
|
171
171
|
register: n,
|
|
172
|
-
getByName:
|
|
173
|
-
listStore:
|
|
172
|
+
getByName: u,
|
|
173
|
+
listStore: c
|
|
174
174
|
};
|
|
175
175
|
});
|
|
176
|
-
function
|
|
177
|
-
return w(
|
|
176
|
+
function Ie(t) {
|
|
177
|
+
return w(be, t);
|
|
178
178
|
}
|
|
179
|
-
const
|
|
179
|
+
const xe = (t, e) => {
|
|
180
180
|
e.register(t.name, t);
|
|
181
|
-
},
|
|
181
|
+
}, Ee = 6e3, N = R("last_ping", "global"), Pe = (t) => `${t}/api/v1/ping`, Re = async (t) => {
|
|
182
182
|
try {
|
|
183
|
-
const e = Date.now(),
|
|
184
|
-
if (
|
|
183
|
+
const e = Date.now(), r = localStorage.getItem(N);
|
|
184
|
+
if (r && e - parseInt(r) < Ee)
|
|
185
185
|
return !0;
|
|
186
|
-
const n =
|
|
186
|
+
const n = Pe(t.apiUrl), c = {
|
|
187
187
|
projectId: t.projectId,
|
|
188
188
|
path: window.location.pathname
|
|
189
|
-
},
|
|
189
|
+
}, u = JSON.stringify(c), s = {
|
|
190
190
|
"Content-Type": "application/json"
|
|
191
|
-
},
|
|
192
|
-
|
|
191
|
+
}, o = document.getElementById("picked_script"), l = o == null ? void 0 : o.dataset.verceltoken;
|
|
192
|
+
l && (s["x-vercel-protection-bypass"] = l);
|
|
193
193
|
const S = (await fetch(n, {
|
|
194
194
|
method: "POST",
|
|
195
|
-
headers:
|
|
196
|
-
body:
|
|
195
|
+
headers: s,
|
|
196
|
+
body: u
|
|
197
197
|
})).ok;
|
|
198
|
-
return S && localStorage.setItem(
|
|
198
|
+
return S && localStorage.setItem(N, e.toString()), S;
|
|
199
199
|
} catch (e) {
|
|
200
|
-
return
|
|
200
|
+
return k("error", e), !1;
|
|
201
201
|
}
|
|
202
202
|
};
|
|
203
|
-
function
|
|
204
|
-
const e = typeof window < "u",
|
|
203
|
+
function Be(t) {
|
|
204
|
+
const e = typeof window < "u", r = {
|
|
205
205
|
client: t,
|
|
206
206
|
responses: t.responses.listStore.getState(),
|
|
207
207
|
fields: t.fields.listStore.getState(),
|
|
@@ -210,59 +210,59 @@ function $e(t) {
|
|
|
210
210
|
sessionStorage: e ? window.sessionStorage : void 0,
|
|
211
211
|
localStorage: e ? window.localStorage : void 0
|
|
212
212
|
};
|
|
213
|
-
return Object.freeze(
|
|
213
|
+
return Object.freeze(r);
|
|
214
214
|
}
|
|
215
|
-
const
|
|
216
|
-
const e =
|
|
217
|
-
register(
|
|
215
|
+
const Ae = b("predicate"), $e = v(({ client: t }) => {
|
|
216
|
+
const e = Ae.store({}), r = I(e, {
|
|
217
|
+
register(s, o) {
|
|
218
218
|
return {
|
|
219
|
-
...
|
|
220
|
-
[
|
|
221
|
-
name:
|
|
222
|
-
predicate:
|
|
219
|
+
...s,
|
|
220
|
+
[o.name]: {
|
|
221
|
+
name: o.name,
|
|
222
|
+
predicate: o.predicate
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
226
|
});
|
|
227
|
-
function n(
|
|
228
|
-
e.getState()[
|
|
227
|
+
function n(s, o) {
|
|
228
|
+
e.getState()[s] && k(
|
|
229
229
|
"warn",
|
|
230
|
-
`Predicate '${
|
|
231
|
-
),
|
|
230
|
+
`Predicate '${s}' already registered. Registering again will override the previous registration.`
|
|
231
|
+
), r.register(Object.freeze({ name: s, predicate: o }));
|
|
232
232
|
}
|
|
233
|
-
const
|
|
234
|
-
function
|
|
235
|
-
return e.map((
|
|
233
|
+
const c = e.map((s) => Object.values(s));
|
|
234
|
+
function u(s) {
|
|
235
|
+
return e.map((o) => o[s], { skipVoid: !1 });
|
|
236
236
|
}
|
|
237
237
|
return {
|
|
238
238
|
register: n,
|
|
239
|
-
getByName:
|
|
240
|
-
listStore:
|
|
239
|
+
getByName: u,
|
|
240
|
+
listStore: c
|
|
241
241
|
};
|
|
242
242
|
});
|
|
243
|
-
function
|
|
244
|
-
return w(
|
|
243
|
+
function je(t) {
|
|
244
|
+
return w($e, t);
|
|
245
245
|
}
|
|
246
|
-
const
|
|
247
|
-
|
|
248
|
-
},
|
|
249
|
-
const e =
|
|
250
|
-
register(d,
|
|
246
|
+
const Oe = (t, e, r) => {
|
|
247
|
+
r.register(t, e);
|
|
248
|
+
}, z = b("feature"), Ce = v(({ client: t }) => {
|
|
249
|
+
const e = z.store({}), r = z.store([]), n = I(e, {
|
|
250
|
+
register(d, a) {
|
|
251
251
|
return {
|
|
252
252
|
...d,
|
|
253
|
-
[
|
|
253
|
+
[a.id]: a.feature
|
|
254
254
|
};
|
|
255
255
|
}
|
|
256
256
|
});
|
|
257
|
-
function
|
|
258
|
-
e.getState()[d] &&
|
|
257
|
+
function c(d, a) {
|
|
258
|
+
e.getState()[d] && k(
|
|
259
259
|
"warn",
|
|
260
260
|
`Feature '${d}' already registered. Registering again will override the previous registration.`
|
|
261
261
|
);
|
|
262
262
|
const p = {
|
|
263
263
|
id: d,
|
|
264
264
|
feature: {
|
|
265
|
-
...
|
|
265
|
+
...a,
|
|
266
266
|
id: d
|
|
267
267
|
}
|
|
268
268
|
};
|
|
@@ -273,264 +273,264 @@ const Ce = (t, e, s) => {
|
|
|
273
273
|
})
|
|
274
274
|
);
|
|
275
275
|
}
|
|
276
|
-
const
|
|
276
|
+
const u = M(
|
|
277
277
|
async ({
|
|
278
278
|
id: d,
|
|
279
|
-
key:
|
|
280
|
-
storage:
|
|
279
|
+
key: a,
|
|
280
|
+
storage: i = "local"
|
|
281
281
|
}) => {
|
|
282
|
-
const p =
|
|
283
|
-
return g === null ? null : { id: d, key:
|
|
282
|
+
const p = R(`feature:${d}:${a}`, "global"), g = (i === "session" ? j : D).get(p).boolean();
|
|
283
|
+
return g === null ? null : { id: d, key: a, bucket: g, storage: i };
|
|
284
284
|
}
|
|
285
|
-
),
|
|
285
|
+
), s = M((d) => {
|
|
286
286
|
if (!d)
|
|
287
287
|
return null;
|
|
288
|
-
const
|
|
289
|
-
(d.storage === "session" ? j : D).set(
|
|
290
|
-
}),
|
|
291
|
-
source: { allFeaturesStore: e, resolvedFeaturesStore:
|
|
292
|
-
effect: async ({ allFeaturesStore: d, resolvedFeaturesStore:
|
|
293
|
-
const g =
|
|
294
|
-
(
|
|
288
|
+
const a = R(`feature:${d.id}:${d.key}`, "global");
|
|
289
|
+
(d.storage === "session" ? j : D).set(a, d.bucket);
|
|
290
|
+
}), o = /* @__PURE__ */ new Map(), l = Q({
|
|
291
|
+
source: { allFeaturesStore: e, resolvedFeaturesStore: r },
|
|
292
|
+
effect: async ({ allFeaturesStore: d, resolvedFeaturesStore: a }, { id: i, decide: p, key: f }) => {
|
|
293
|
+
const g = a.find(
|
|
294
|
+
(A) => A.id === i && A.key === f
|
|
295
295
|
);
|
|
296
296
|
if (g)
|
|
297
297
|
return g;
|
|
298
|
-
const y = d[
|
|
298
|
+
const y = d[i];
|
|
299
299
|
if (!y)
|
|
300
|
-
throw new Error(`Feature with id '${
|
|
301
|
-
const
|
|
302
|
-
if (
|
|
303
|
-
const
|
|
304
|
-
return { id: y.id, bucket:
|
|
300
|
+
throw new Error(`Feature with id '${i}' not found`);
|
|
301
|
+
const F = o.get(`${i}:${f}`);
|
|
302
|
+
if (F !== void 0) {
|
|
303
|
+
const A = await F;
|
|
304
|
+
return { id: y.id, bucket: A, key: f, storage: y.feature.storage };
|
|
305
305
|
}
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
const
|
|
309
|
-
return { id: y.id, bucket:
|
|
306
|
+
const B = p();
|
|
307
|
+
o.set(`${i}:${f}`, B);
|
|
308
|
+
const E = await B;
|
|
309
|
+
return { id: y.id, bucket: E, key: f, storage: y.feature.storage };
|
|
310
310
|
}
|
|
311
311
|
});
|
|
312
312
|
x({
|
|
313
313
|
clock: n.register,
|
|
314
314
|
fn: (d) => {
|
|
315
|
-
const { id:
|
|
316
|
-
return { id:
|
|
315
|
+
const { id: a, feature: i } = d;
|
|
316
|
+
return { id: a, key: i.feature.key, storage: i.feature.storage };
|
|
317
317
|
},
|
|
318
|
-
target:
|
|
318
|
+
target: u
|
|
319
319
|
}), x({
|
|
320
320
|
source: e,
|
|
321
|
-
clock:
|
|
322
|
-
fn: (d,
|
|
321
|
+
clock: l.doneData,
|
|
322
|
+
fn: (d, a) => {
|
|
323
323
|
var y;
|
|
324
|
-
const { id:
|
|
325
|
-
return g ? { key: g, id:
|
|
324
|
+
const { id: i, bucket: p, storage: f } = a, g = (y = d[i]) == null ? void 0 : y.feature.key;
|
|
325
|
+
return g ? { key: g, id: i, bucket: p, storage: f } : null;
|
|
326
326
|
},
|
|
327
|
-
target:
|
|
327
|
+
target: s
|
|
328
328
|
});
|
|
329
|
-
const h = O({ allFeaturesStore: e, resolvedFeaturesStore:
|
|
329
|
+
const h = O({ allFeaturesStore: e, resolvedFeaturesStore: r }).map(
|
|
330
330
|
({
|
|
331
331
|
allFeaturesStore: d,
|
|
332
|
-
resolvedFeaturesStore:
|
|
333
|
-
}) => Object.values(d).map((
|
|
334
|
-
const p =
|
|
335
|
-
(f) => f.id ===
|
|
332
|
+
resolvedFeaturesStore: a
|
|
333
|
+
}) => Object.values(d).map((i) => {
|
|
334
|
+
const p = a.find(
|
|
335
|
+
(f) => f.id === i.id && f.key === i.feature.key
|
|
336
336
|
);
|
|
337
337
|
return p ? {
|
|
338
|
-
id:
|
|
339
|
-
name:
|
|
340
|
-
key:
|
|
341
|
-
getBucket: () => ({ id:
|
|
338
|
+
id: i.id,
|
|
339
|
+
name: i.feature.name,
|
|
340
|
+
key: i.feature.key,
|
|
341
|
+
getBucket: () => ({ id: i.id, bucket: p.bucket }),
|
|
342
342
|
isResolved: !0
|
|
343
343
|
} : {
|
|
344
|
-
id:
|
|
345
|
-
name:
|
|
346
|
-
key:
|
|
347
|
-
getBucket: async () => await
|
|
344
|
+
id: i.id,
|
|
345
|
+
name: i.feature.name,
|
|
346
|
+
key: i.feature.key,
|
|
347
|
+
getBucket: async () => await l(i.feature),
|
|
348
348
|
isResolved: !1
|
|
349
349
|
};
|
|
350
350
|
})
|
|
351
351
|
);
|
|
352
352
|
x({
|
|
353
|
-
clock:
|
|
354
|
-
source: { resolvedFeatures:
|
|
355
|
-
filter: ({ resolvedFeatures: d }, { id:
|
|
356
|
-
(f) => f.id ===
|
|
353
|
+
clock: l.doneData,
|
|
354
|
+
source: { resolvedFeatures: r },
|
|
355
|
+
filter: ({ resolvedFeatures: d }, { id: a, key: i }) => !d.some(
|
|
356
|
+
(f) => f.id === a && f.key === i
|
|
357
357
|
),
|
|
358
|
-
fn: (d,
|
|
358
|
+
fn: (d, a) => a,
|
|
359
359
|
target: t.eventBus.prepend((d) => ({
|
|
360
360
|
type: "feature_decide",
|
|
361
361
|
feature: d
|
|
362
362
|
}))
|
|
363
363
|
}), x({
|
|
364
|
-
clock: [
|
|
365
|
-
source:
|
|
366
|
-
fn: (d,
|
|
367
|
-
(p) => p.id ===
|
|
368
|
-
) ? d : [...d,
|
|
369
|
-
target:
|
|
364
|
+
clock: [u.doneData, l.doneData],
|
|
365
|
+
source: r,
|
|
366
|
+
fn: (d, a) => !a || d.some(
|
|
367
|
+
(p) => p.id === a.id && p.key === a.key
|
|
368
|
+
) ? d : [...d, a],
|
|
369
|
+
target: r
|
|
370
370
|
});
|
|
371
371
|
function S(d) {
|
|
372
|
-
return e.map((
|
|
372
|
+
return e.map((a) => a[d], { skipVoid: !1 });
|
|
373
373
|
}
|
|
374
374
|
return {
|
|
375
|
-
register:
|
|
375
|
+
register: c,
|
|
376
376
|
getByName: S,
|
|
377
377
|
listStore: h
|
|
378
378
|
};
|
|
379
379
|
});
|
|
380
|
-
function
|
|
381
|
-
return w(
|
|
380
|
+
function De(t) {
|
|
381
|
+
return w(Ce, t);
|
|
382
382
|
}
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
},
|
|
386
|
-
function
|
|
383
|
+
const Me = (t, e, r) => {
|
|
384
|
+
r.register(t, e);
|
|
385
|
+
}, P = b("history");
|
|
386
|
+
function L(t, e) {
|
|
387
387
|
return {
|
|
388
388
|
// eslint-disable-next-line sonarjs/pseudo-random
|
|
389
|
-
id:
|
|
389
|
+
id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
|
|
390
390
|
node: e,
|
|
391
391
|
at: Date.now(),
|
|
392
392
|
experienceId: t
|
|
393
393
|
};
|
|
394
394
|
}
|
|
395
|
-
const
|
|
396
|
-
const t =
|
|
397
|
-
t.on(e, (
|
|
398
|
-
entries: [...
|
|
399
|
-
})), t.on(
|
|
395
|
+
const Ve = v(() => {
|
|
396
|
+
const t = P.store({ entries: [] }), e = P.event(), r = P.event(), n = P.event(), c = P.event();
|
|
397
|
+
t.on(e, (s, o) => ({
|
|
398
|
+
entries: [...s.entries, L(o.experienceId, o.node)]
|
|
399
|
+
})), t.on(r, (s, o) => ({
|
|
400
400
|
entries: [
|
|
401
|
-
...
|
|
402
|
-
|
|
401
|
+
...s.entries.slice(0, -1),
|
|
402
|
+
L(o.experienceId, o.node)
|
|
403
403
|
]
|
|
404
|
-
})), t.on(
|
|
405
|
-
function
|
|
406
|
-
const
|
|
407
|
-
for (let h =
|
|
408
|
-
const S =
|
|
409
|
-
if (!(!d || !
|
|
410
|
-
if (
|
|
411
|
-
|
|
404
|
+
})), t.on(c, (s, o) => o);
|
|
405
|
+
function u(s, o) {
|
|
406
|
+
const l = { lastStepIndex: -1, secondLastStepIndex: -1 };
|
|
407
|
+
for (let h = s.length - 1; h >= 0; h--) {
|
|
408
|
+
const S = s[h], d = S == null ? void 0 : S.node;
|
|
409
|
+
if (!(!d || !te(d)) && !(o && (S == null ? void 0 : S.experienceId) !== o))
|
|
410
|
+
if (l.lastStepIndex === -1)
|
|
411
|
+
l.lastStepIndex = h;
|
|
412
412
|
else {
|
|
413
|
-
|
|
413
|
+
l.secondLastStepIndex = h;
|
|
414
414
|
break;
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
|
-
return
|
|
417
|
+
return l;
|
|
418
418
|
}
|
|
419
|
-
return t.on(n, (
|
|
420
|
-
const { secondLastStepIndex:
|
|
419
|
+
return t.on(n, (s, o) => {
|
|
420
|
+
const { secondLastStepIndex: l } = u(s.entries, o.experienceId), h = l !== -1 ? s.entries.slice(0, l + 1) : s.entries;
|
|
421
421
|
return {
|
|
422
|
-
...
|
|
422
|
+
...s,
|
|
423
423
|
entries: h
|
|
424
424
|
};
|
|
425
425
|
}), {
|
|
426
426
|
push: e,
|
|
427
|
-
replace:
|
|
427
|
+
replace: r,
|
|
428
428
|
back: n,
|
|
429
|
-
restore:
|
|
430
|
-
entriesStore: t.map((
|
|
429
|
+
restore: c,
|
|
430
|
+
entriesStore: t.map((s) => s.entries)
|
|
431
431
|
};
|
|
432
432
|
});
|
|
433
|
-
function
|
|
434
|
-
return w(
|
|
433
|
+
function Te() {
|
|
434
|
+
return w(Ve);
|
|
435
435
|
}
|
|
436
|
-
const
|
|
437
|
-
const t = ze.store({}), e =
|
|
438
|
-
register(
|
|
436
|
+
const Ne = () => C(), ze = b("field"), Le = v(() => {
|
|
437
|
+
const t = ze.store({}), e = I(t, {
|
|
438
|
+
register(s, o) {
|
|
439
439
|
return {
|
|
440
|
-
...
|
|
441
|
-
[
|
|
440
|
+
...s,
|
|
441
|
+
[o.field.id]: o.field
|
|
442
442
|
};
|
|
443
443
|
}
|
|
444
444
|
});
|
|
445
|
-
function s
|
|
446
|
-
e.register({ field:
|
|
445
|
+
function r(s) {
|
|
446
|
+
e.register({ field: s });
|
|
447
447
|
}
|
|
448
|
-
const n = t.map((
|
|
449
|
-
function
|
|
450
|
-
return t.map((
|
|
448
|
+
const n = t.map((s) => Object.values(s));
|
|
449
|
+
function c(s) {
|
|
450
|
+
return t.map((o) => o[s] || null);
|
|
451
451
|
}
|
|
452
|
-
function
|
|
453
|
-
return t.map((
|
|
452
|
+
function u(s) {
|
|
453
|
+
return t.map((o) => Object.values(o).find((l) => l.name === s) || null);
|
|
454
454
|
}
|
|
455
455
|
return {
|
|
456
|
-
register:
|
|
457
|
-
getById:
|
|
456
|
+
register: r,
|
|
457
|
+
getById: c,
|
|
458
458
|
listStore: n,
|
|
459
|
-
getByName:
|
|
459
|
+
getByName: u
|
|
460
460
|
};
|
|
461
461
|
});
|
|
462
|
-
function
|
|
462
|
+
function Ue() {
|
|
463
463
|
return w(Le);
|
|
464
464
|
}
|
|
465
|
-
const
|
|
465
|
+
const _e = (t, e) => {
|
|
466
466
|
e.register(t);
|
|
467
|
-
},
|
|
468
|
-
const t =
|
|
469
|
-
register(
|
|
467
|
+
}, He = b("action"), Ke = v(() => {
|
|
468
|
+
const t = He.store({}), e = I(t, {
|
|
469
|
+
register(u, s) {
|
|
470
470
|
return {
|
|
471
|
-
...
|
|
472
|
-
[
|
|
473
|
-
name:
|
|
474
|
-
action:
|
|
471
|
+
...u,
|
|
472
|
+
[s.name]: {
|
|
473
|
+
name: s.name,
|
|
474
|
+
action: s.action
|
|
475
475
|
}
|
|
476
476
|
};
|
|
477
477
|
}
|
|
478
478
|
});
|
|
479
|
-
function
|
|
480
|
-
e.register({ name:
|
|
479
|
+
function r(u, s) {
|
|
480
|
+
e.register({ name: u, action: s });
|
|
481
481
|
}
|
|
482
|
-
const n = t.map((
|
|
483
|
-
function
|
|
484
|
-
return t.map((
|
|
482
|
+
const n = t.map((u) => Object.values(u));
|
|
483
|
+
function c(u) {
|
|
484
|
+
return t.map((s) => s[u], { skipVoid: !1 });
|
|
485
485
|
}
|
|
486
486
|
return {
|
|
487
|
-
register:
|
|
488
|
-
getByName:
|
|
487
|
+
register: r,
|
|
488
|
+
getByName: c,
|
|
489
489
|
listStore: n
|
|
490
490
|
};
|
|
491
491
|
});
|
|
492
|
-
function
|
|
493
|
-
return w(
|
|
492
|
+
function qe() {
|
|
493
|
+
return w(Ke);
|
|
494
494
|
}
|
|
495
|
-
const
|
|
496
|
-
|
|
495
|
+
const Ge = (t, e, r) => {
|
|
496
|
+
r.register(t, e);
|
|
497
497
|
};
|
|
498
|
-
function
|
|
498
|
+
function U(t) {
|
|
499
499
|
return typeof t > "u" || t === null || t === "" || Array.isArray(t) && !t.length;
|
|
500
500
|
}
|
|
501
|
-
const
|
|
502
|
-
const e =
|
|
503
|
-
register(
|
|
501
|
+
const We = b("response"), Ye = v(({ client: t }) => {
|
|
502
|
+
const e = We.store({}), r = C(), n = C(), c = I(e, {
|
|
503
|
+
register(a, i) {
|
|
504
504
|
return {
|
|
505
|
-
...
|
|
506
|
-
[
|
|
505
|
+
...a,
|
|
506
|
+
[i.fieldId]: i.response
|
|
507
507
|
};
|
|
508
508
|
},
|
|
509
|
-
registerBatch(
|
|
509
|
+
registerBatch(a, i) {
|
|
510
510
|
return {
|
|
511
|
-
...
|
|
512
|
-
...
|
|
511
|
+
...a,
|
|
512
|
+
...i
|
|
513
513
|
};
|
|
514
514
|
},
|
|
515
|
-
clear(
|
|
516
|
-
const { [
|
|
515
|
+
clear(a, i) {
|
|
516
|
+
const { [i]: p, ...f } = a;
|
|
517
517
|
return f;
|
|
518
518
|
},
|
|
519
519
|
clearAll() {
|
|
520
520
|
return {};
|
|
521
521
|
}
|
|
522
522
|
});
|
|
523
|
-
function
|
|
524
|
-
|
|
523
|
+
function u(a, i) {
|
|
524
|
+
c.register({ fieldId: a, response: i });
|
|
525
525
|
}
|
|
526
|
-
async function
|
|
527
|
-
const
|
|
526
|
+
async function s(a) {
|
|
527
|
+
const i = [];
|
|
528
528
|
return await Promise.allSettled(
|
|
529
|
-
Object.entries(
|
|
529
|
+
Object.entries(a).map(async ([p, f]) => {
|
|
530
530
|
let g = f;
|
|
531
531
|
const y = t.fields.getById(p).getState();
|
|
532
532
|
if (!y) {
|
|
533
|
-
|
|
533
|
+
i.push({
|
|
534
534
|
fieldId: p,
|
|
535
535
|
userMessage: `Field '${p}' not found`,
|
|
536
536
|
systemMessage: `No field with ID '${p}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,
|
|
@@ -538,21 +538,21 @@ const Je = F("response"), Qe = k(({ client: t }) => {
|
|
|
538
538
|
});
|
|
539
539
|
return;
|
|
540
540
|
}
|
|
541
|
-
if (y.multiple && (typeof g == "string" || typeof g == "number" || typeof g == "boolean") && (g = [g]), y.validation && !
|
|
542
|
-
const
|
|
541
|
+
if (y.multiple && (typeof g == "string" || typeof g == "number" || typeof g == "boolean") && (g = [g]), y.validation && !oe(y.validation) && !U(g)) {
|
|
542
|
+
const F = await $(t, y.validation, {
|
|
543
543
|
$input: g
|
|
544
544
|
});
|
|
545
|
-
if (typeof
|
|
546
|
-
|
|
545
|
+
if (typeof F == "string") {
|
|
546
|
+
i.push({
|
|
547
547
|
fieldId: p,
|
|
548
|
-
userMessage:
|
|
549
|
-
systemMessage: `Field validation resulted in an error: ${
|
|
548
|
+
userMessage: F,
|
|
549
|
+
systemMessage: `Field validation resulted in an error: ${F}.`,
|
|
550
550
|
value: g
|
|
551
551
|
});
|
|
552
552
|
return;
|
|
553
553
|
}
|
|
554
|
-
if (
|
|
555
|
-
|
|
554
|
+
if (F === !1) {
|
|
555
|
+
i.push({
|
|
556
556
|
fieldId: p,
|
|
557
557
|
userMessage: "This field is invalid",
|
|
558
558
|
systemMessage: "Field validation resulted in an unspecified error.",
|
|
@@ -561,8 +561,8 @@ const Je = F("response"), Qe = k(({ client: t }) => {
|
|
|
561
561
|
return;
|
|
562
562
|
}
|
|
563
563
|
}
|
|
564
|
-
if (y.required &&
|
|
565
|
-
|
|
564
|
+
if (y.required && U(g)) {
|
|
565
|
+
i.push({
|
|
566
566
|
fieldId: p,
|
|
567
567
|
userMessage: "This field is required",
|
|
568
568
|
systemMessage: "Field is required.",
|
|
@@ -571,7 +571,7 @@ const Je = F("response"), Qe = k(({ client: t }) => {
|
|
|
571
571
|
return;
|
|
572
572
|
}
|
|
573
573
|
if (!y.multiple && Array.isArray(g) && g.length > 1) {
|
|
574
|
-
|
|
574
|
+
i.push({
|
|
575
575
|
fieldId: p,
|
|
576
576
|
userMessage: "This field expects a single response",
|
|
577
577
|
systemMessage: "Field expects a single response.",
|
|
@@ -580,59 +580,59 @@ const Je = F("response"), Qe = k(({ client: t }) => {
|
|
|
580
580
|
return;
|
|
581
581
|
}
|
|
582
582
|
if (y.options) {
|
|
583
|
-
const
|
|
584
|
-
Array.isArray(g) && (
|
|
583
|
+
const F = y.options.map((E) => E.value), B = Array.isArray(g) ? g : [g];
|
|
584
|
+
Array.isArray(g) && (B.every((E) => F.includes(E)) || i.push({
|
|
585
585
|
fieldId: p,
|
|
586
586
|
userMessage: "This field expects a valid option",
|
|
587
|
-
systemMessage: `Field expects a valid option. Valid options are: ${
|
|
587
|
+
systemMessage: `Field expects a valid option. Valid options are: ${F.join(", ")}`,
|
|
588
588
|
value: g
|
|
589
589
|
}));
|
|
590
590
|
}
|
|
591
591
|
})
|
|
592
|
-
), { responsesToCommit:
|
|
592
|
+
), { responsesToCommit: a, validationErrors: i };
|
|
593
593
|
}
|
|
594
|
-
async function
|
|
595
|
-
const { responsesToCommit:
|
|
596
|
-
return p.length ? { errors: p } : (
|
|
594
|
+
async function o(a) {
|
|
595
|
+
const { responsesToCommit: i, validationErrors: p } = await s(a);
|
|
596
|
+
return p.length ? { errors: p } : (c.registerBatch(i), { errors: [] });
|
|
597
597
|
}
|
|
598
|
-
const
|
|
598
|
+
const l = e.map((a) => a), h = e.map((a) => Object.keys(a).map((p) => ({
|
|
599
599
|
fieldId: p,
|
|
600
|
-
value:
|
|
600
|
+
value: a[p]
|
|
601
601
|
})));
|
|
602
|
-
function S(
|
|
603
|
-
const
|
|
604
|
-
return O({ f:
|
|
602
|
+
function S(a) {
|
|
603
|
+
const i = t.fields.getById(a), p = e.map((f) => f[a] || null);
|
|
604
|
+
return O({ f: i, r: p }, ({ f, r: g }) => g || (f != null && f.defaultValue ? f.defaultValue : null));
|
|
605
605
|
}
|
|
606
|
-
function d(
|
|
607
|
-
const
|
|
608
|
-
return O({ f:
|
|
606
|
+
function d(a) {
|
|
607
|
+
const i = t.fields.getByName(a);
|
|
608
|
+
return O({ f: i, s: e }, ({ f: p, s: f }) => {
|
|
609
609
|
const g = p && f[p.id] || null;
|
|
610
610
|
return g || (p != null && p.defaultValue ? p.defaultValue : null);
|
|
611
611
|
});
|
|
612
612
|
}
|
|
613
613
|
return x({
|
|
614
|
-
clock:
|
|
615
|
-
target:
|
|
614
|
+
clock: r,
|
|
615
|
+
target: c.clearAll
|
|
616
616
|
}), x({
|
|
617
617
|
clock: n,
|
|
618
|
-
target:
|
|
618
|
+
target: c.clear
|
|
619
619
|
}), {
|
|
620
|
-
register:
|
|
621
|
-
clearAll:
|
|
620
|
+
register: u,
|
|
621
|
+
clearAll: r,
|
|
622
622
|
clear: n,
|
|
623
|
-
commit:
|
|
624
|
-
getResponsesToCommit:
|
|
623
|
+
commit: o,
|
|
624
|
+
getResponsesToCommit: s,
|
|
625
625
|
listStore: h,
|
|
626
|
-
getAllStore:
|
|
626
|
+
getAllStore: l,
|
|
627
627
|
getByFieldId: S,
|
|
628
628
|
getByFieldName: d
|
|
629
629
|
};
|
|
630
630
|
});
|
|
631
|
-
function
|
|
632
|
-
return w(
|
|
631
|
+
function Je(t) {
|
|
632
|
+
return w(Ye, t);
|
|
633
633
|
}
|
|
634
|
-
const
|
|
635
|
-
function
|
|
634
|
+
const Qe = () => "0.0.1-dev.1764633009920";
|
|
635
|
+
function Xe() {
|
|
636
636
|
if (H()) {
|
|
637
637
|
const t = [
|
|
638
638
|
document.currentScript,
|
|
@@ -647,122 +647,103 @@ function et() {
|
|
|
647
647
|
}
|
|
648
648
|
return "https://api.picked.app";
|
|
649
649
|
}
|
|
650
|
-
function
|
|
651
|
-
if (!
|
|
650
|
+
function Ze() {
|
|
651
|
+
if (!ie())
|
|
652
652
|
return {};
|
|
653
|
-
const t = new URLSearchParams(window.location.search), e = {},
|
|
654
|
-
for (const [
|
|
655
|
-
|
|
656
|
-
for (const
|
|
657
|
-
const
|
|
658
|
-
e[
|
|
659
|
-
}
|
|
660
|
-
const n =
|
|
661
|
-
if (
|
|
653
|
+
const t = new URLSearchParams(window.location.search), e = {}, r = /* @__PURE__ */ new Set();
|
|
654
|
+
for (const [c] of t.entries())
|
|
655
|
+
c.startsWith("picked-") && r.add(c);
|
|
656
|
+
for (const c of r) {
|
|
657
|
+
const u = c.replace("picked-", "");
|
|
658
|
+
e[u] = t.getAll(c);
|
|
659
|
+
}
|
|
660
|
+
const n = R("s");
|
|
661
|
+
if (r.size > 0)
|
|
662
662
|
j.set(n, e);
|
|
663
663
|
else {
|
|
664
|
-
const
|
|
665
|
-
if (
|
|
666
|
-
return
|
|
664
|
+
const c = j.get(n);
|
|
665
|
+
if (c)
|
|
666
|
+
return c.json() || {};
|
|
667
667
|
}
|
|
668
668
|
return e;
|
|
669
669
|
}
|
|
670
|
-
function
|
|
671
|
-
if (
|
|
670
|
+
function et() {
|
|
671
|
+
if (ce())
|
|
672
672
|
return crypto.randomUUID();
|
|
673
|
-
const t = Date.now().toString(36), e = Math.random().toString(36).substring(2, 15),
|
|
674
|
-
return `${t}-${e}-${
|
|
673
|
+
const t = Date.now().toString(36), e = Math.random().toString(36).substring(2, 15), r = Math.random().toString(36).substring(2, 15), n = Math.random().toString(36).substring(2, 15);
|
|
674
|
+
return `${t}-${e}-${r}-${n}`;
|
|
675
675
|
}
|
|
676
|
-
const
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
}, rt = () => ({
|
|
682
|
-
id: st(),
|
|
683
|
-
isUser: void 0,
|
|
684
|
-
setIsUser: Y()
|
|
685
|
-
}), nt = () => {
|
|
686
|
-
if (!K()) return null;
|
|
687
|
-
const t = D.get(W);
|
|
676
|
+
const tt = () => ({
|
|
677
|
+
id: et()
|
|
678
|
+
}), rt = R("session", "global"), st = () => {
|
|
679
|
+
if (!ae()) return null;
|
|
680
|
+
const t = D.get(rt);
|
|
688
681
|
let e = t.isSet() ? t.json() : null;
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
}
|
|
693
|
-
return {
|
|
694
|
-
...e,
|
|
695
|
-
setIsUser: Y()
|
|
696
|
-
};
|
|
697
|
-
}, it = () => nt();
|
|
698
|
-
class J {
|
|
682
|
+
return e || (e = tt(), t.set(e)), e;
|
|
683
|
+
}, nt = () => st();
|
|
684
|
+
class G {
|
|
699
685
|
constructor(e) {
|
|
700
686
|
m(this, "options");
|
|
701
687
|
m(this, "isReady", !1);
|
|
702
688
|
m(this, "project");
|
|
703
689
|
m(this, "plugins", {});
|
|
704
|
-
m(this, "eventBus",
|
|
690
|
+
m(this, "eventBus", Ne());
|
|
705
691
|
m(this, "organizationId");
|
|
706
692
|
m(this, "projectId");
|
|
707
693
|
m(this, "apiUrl");
|
|
708
694
|
m(this, "session");
|
|
709
|
-
m(this, "
|
|
710
|
-
m(this, "
|
|
711
|
-
m(this, "
|
|
712
|
-
m(this, "
|
|
713
|
-
m(this, "
|
|
714
|
-
m(this, "
|
|
715
|
-
m(this, "
|
|
716
|
-
m(this, "
|
|
717
|
-
m(this, "
|
|
718
|
-
m(this, "
|
|
719
|
-
m(this, "
|
|
720
|
-
|
|
721
|
-
m(this, "actions", We());
|
|
722
|
-
v("info", "Picked client initializing."), this.organizationId = e.organizationId, this.projectId = e.projectId, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || et(), this.session = it(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.precondition = e.precondition, this.condition = e.condition, this.eventBus({ type: "load", version: Ze() }), v("info", "Picked client initialized.");
|
|
695
|
+
m(this, "searchParams", Ze());
|
|
696
|
+
m(this, "history", Te());
|
|
697
|
+
m(this, "components", we({ client: this }));
|
|
698
|
+
m(this, "experienceInstances", re({ client: this }));
|
|
699
|
+
m(this, "experiences", ge({ client: this }));
|
|
700
|
+
m(this, "frameworks", Ie({ client: this }));
|
|
701
|
+
m(this, "predicates", je({ client: this }));
|
|
702
|
+
m(this, "features", De({ client: this }));
|
|
703
|
+
m(this, "responses", Je({ client: this }));
|
|
704
|
+
m(this, "fields", Ue());
|
|
705
|
+
m(this, "actions", qe());
|
|
706
|
+
k("info", "Picked client initializing."), this.organizationId = e.organizationId, this.projectId = e.projectId, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Xe(), this.session = nt(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.eventBus({ type: "initialized", version: Qe() }), k("info", "Picked client initialized.");
|
|
723
707
|
}
|
|
724
708
|
start() {
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
return;
|
|
728
|
-
let s = !0, n;
|
|
729
|
-
this.precondition !== void 0 && await E(this, this.precondition) === !1 && (n = !1, s = !1), this.condition !== void 0 && n !== !1 && await E(this, this.condition) === !1 && (s = !1), this.session && this.session.setIsUser(s), this.eventBus({ type: "initialize", is_user: s }), this.eventBus({ type: "user_decide", value: s }), document.body && s && M(this), await oe(), s && M(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session && this.eventBus({ type: "session", ...this.session });
|
|
709
|
+
Re(this), (async () => {
|
|
710
|
+
H() && (document.body && V(this), await se(), V(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session && this.eventBus({ type: "session", ...this.session }));
|
|
730
711
|
})();
|
|
731
712
|
}
|
|
732
713
|
registerFramework(e) {
|
|
733
|
-
|
|
714
|
+
xe(e, this.frameworks);
|
|
734
715
|
}
|
|
735
|
-
registerComponent(e,
|
|
736
|
-
|
|
716
|
+
registerComponent(e, r) {
|
|
717
|
+
T(e, r, this.components);
|
|
737
718
|
}
|
|
738
719
|
registerPlugin(e) {
|
|
739
|
-
|
|
720
|
+
he(this, e, this.plugins);
|
|
740
721
|
}
|
|
741
|
-
registerFeature(e,
|
|
742
|
-
|
|
722
|
+
registerFeature(e, r) {
|
|
723
|
+
Me(e, r, this.features);
|
|
743
724
|
}
|
|
744
|
-
registerPredicate(e,
|
|
745
|
-
|
|
725
|
+
registerPredicate(e, r) {
|
|
726
|
+
Oe(e, r, this.predicates);
|
|
746
727
|
}
|
|
747
728
|
registerField(e) {
|
|
748
|
-
|
|
729
|
+
_e(e, this.fields);
|
|
749
730
|
}
|
|
750
|
-
registerAction(e,
|
|
751
|
-
|
|
731
|
+
registerAction(e, r) {
|
|
732
|
+
Ge(e, r, this.actions);
|
|
752
733
|
}
|
|
753
734
|
registerExperience(e) {
|
|
754
|
-
e.component &&
|
|
735
|
+
e.component && T(`experience:${e.id}`, e.component, this.components), fe(e, this.experiences);
|
|
755
736
|
}
|
|
756
737
|
getStateSnapshot() {
|
|
757
|
-
return
|
|
738
|
+
return Be(this);
|
|
758
739
|
}
|
|
759
740
|
async launchExperienceById(e) {
|
|
760
|
-
const
|
|
761
|
-
if (!
|
|
762
|
-
|
|
741
|
+
const r = this.experiences.getById(e).getState();
|
|
742
|
+
if (!r) {
|
|
743
|
+
k("warn", `Experience with id '${e}' not found.`);
|
|
763
744
|
return;
|
|
764
745
|
}
|
|
765
|
-
|
|
746
|
+
q(this, r);
|
|
766
747
|
}
|
|
767
748
|
// private async fetchProject() {
|
|
768
749
|
// if (this.project) {
|
|
@@ -775,16 +756,16 @@ class J {
|
|
|
775
756
|
// }
|
|
776
757
|
setupPlugins() {
|
|
777
758
|
var e;
|
|
778
|
-
(e = this.options.plugins) == null || e.forEach((
|
|
779
|
-
if (Array.isArray(
|
|
780
|
-
|
|
781
|
-
this.registerPlugin(
|
|
759
|
+
(e = this.options.plugins) == null || e.forEach((r) => {
|
|
760
|
+
if (Array.isArray(r)) {
|
|
761
|
+
r.forEach((c) => {
|
|
762
|
+
this.registerPlugin(c);
|
|
782
763
|
});
|
|
783
764
|
return;
|
|
784
765
|
}
|
|
785
|
-
const n = typeof
|
|
766
|
+
const n = typeof r == "function" ? r() : r;
|
|
786
767
|
if (Array.isArray(n)) {
|
|
787
|
-
n.forEach((
|
|
768
|
+
n.forEach((c) => this.registerPlugin(c));
|
|
788
769
|
return;
|
|
789
770
|
}
|
|
790
771
|
this.registerPlugin(n);
|
|
@@ -792,21 +773,21 @@ class J {
|
|
|
792
773
|
}
|
|
793
774
|
setupFeatures() {
|
|
794
775
|
const e = this.options.features;
|
|
795
|
-
e && (Object.entries(e).forEach(([
|
|
796
|
-
const
|
|
797
|
-
this.registerFeature(
|
|
798
|
-
}), this.searchParams.feature && this.searchParams.feature.forEach((
|
|
776
|
+
e && (Object.entries(e).forEach(([r, n]) => {
|
|
777
|
+
const c = typeof n == "function" ? n() : n;
|
|
778
|
+
this.registerFeature(r, c);
|
|
779
|
+
}), this.searchParams.feature && this.searchParams.feature.forEach((r) => {
|
|
799
780
|
try {
|
|
800
|
-
const [n,
|
|
801
|
-
if (!n || !
|
|
781
|
+
const [n, c] = r.split(":");
|
|
782
|
+
if (!n || !c)
|
|
802
783
|
return;
|
|
803
|
-
let
|
|
804
|
-
|
|
805
|
-
key: `${
|
|
784
|
+
let u = c;
|
|
785
|
+
u === "true" && (u = !0), u === "false" && (u = !1), this.registerFeature(n, {
|
|
786
|
+
key: `${u}`,
|
|
806
787
|
// use the assigned bucket value as the key
|
|
807
788
|
name: n,
|
|
808
789
|
// eslint-disable-next-line sonarjs/function-return-type
|
|
809
|
-
decide: () =>
|
|
790
|
+
decide: () => u,
|
|
810
791
|
storage: "session"
|
|
811
792
|
});
|
|
812
793
|
} catch {
|
|
@@ -815,73 +796,73 @@ class J {
|
|
|
815
796
|
}
|
|
816
797
|
setupPredicates() {
|
|
817
798
|
const e = this.options.predicates;
|
|
818
|
-
e && Object.entries(e).forEach(([
|
|
799
|
+
e && Object.entries(e).forEach(([r, n]) => {
|
|
819
800
|
if (typeof n != "function") {
|
|
820
|
-
|
|
801
|
+
k("warn", `Predicate "${r}" is not a function.`);
|
|
821
802
|
return;
|
|
822
803
|
}
|
|
823
|
-
this.registerPredicate(
|
|
804
|
+
this.registerPredicate(r, n);
|
|
824
805
|
});
|
|
825
806
|
}
|
|
826
807
|
setupActions() {
|
|
827
808
|
const e = this.options.actions;
|
|
828
|
-
e && Object.entries(e).forEach(([
|
|
809
|
+
e && Object.entries(e).forEach(([r, n]) => {
|
|
829
810
|
if (typeof n != "function") {
|
|
830
|
-
|
|
811
|
+
k("warn", `Action "${r}" is not a function.`);
|
|
831
812
|
return;
|
|
832
813
|
}
|
|
833
|
-
this.registerAction(
|
|
814
|
+
this.registerAction(r, n);
|
|
834
815
|
});
|
|
835
816
|
}
|
|
836
817
|
getPluginConfig(e) {
|
|
837
818
|
return this.plugins[e] ?? {};
|
|
838
819
|
}
|
|
839
820
|
}
|
|
840
|
-
m(
|
|
841
|
-
function
|
|
821
|
+
m(G, "logger", k);
|
|
822
|
+
function W(t) {
|
|
842
823
|
var e;
|
|
843
|
-
return ((e = t.options) == null ? void 0 : e.some((
|
|
824
|
+
return ((e = t.options) == null ? void 0 : e.some((r) => "condition" in r)) ?? !1;
|
|
844
825
|
}
|
|
845
826
|
function ot(t) {
|
|
846
|
-
return t.some((e) => e.condition ||
|
|
827
|
+
return t.some((e) => e.condition || W(e));
|
|
847
828
|
}
|
|
848
|
-
async function
|
|
829
|
+
async function mt(t, e) {
|
|
849
830
|
return e.length === 0 || !ot(e) ? e : (await Promise.all(
|
|
850
831
|
e.map(async (n) => {
|
|
851
|
-
if (!(n.condition ? await
|
|
832
|
+
if (!(n.condition ? await $(t, n.condition) : !0))
|
|
852
833
|
return null;
|
|
853
|
-
if (!n.options || !
|
|
834
|
+
if (!n.options || !W(n))
|
|
854
835
|
return n;
|
|
855
|
-
const
|
|
856
|
-
n.options.map(async (
|
|
857
|
-
)).filter((
|
|
858
|
-
return
|
|
836
|
+
const s = (await Promise.all(
|
|
837
|
+
n.options.map(async (l) => l.condition ? await $(t, l.condition) ? l : null : l)
|
|
838
|
+
)).filter((l) => l !== null);
|
|
839
|
+
return s.length === n.options.length ? n : s.length === 0 ? null : { ...n, options: s };
|
|
859
840
|
})
|
|
860
841
|
)).filter((n) => n !== null);
|
|
861
842
|
}
|
|
862
|
-
const
|
|
863
|
-
const e = new
|
|
864
|
-
return
|
|
843
|
+
const ht = (t) => {
|
|
844
|
+
const e = new G(t);
|
|
845
|
+
return ue(e), e;
|
|
865
846
|
};
|
|
866
847
|
export {
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
848
|
+
G as Picked,
|
|
849
|
+
ht as createClient,
|
|
850
|
+
R as createStorageKey,
|
|
851
|
+
$ as evaluateRuleLogic,
|
|
852
|
+
mt as getStepFields,
|
|
872
853
|
kt as isPickedRoot,
|
|
873
854
|
D as localStore,
|
|
874
855
|
j as sessionStore,
|
|
875
|
-
|
|
856
|
+
wt as subscribe,
|
|
876
857
|
bt as supportsCookies,
|
|
877
|
-
|
|
858
|
+
ce as supportsCryptoRandomUUID,
|
|
878
859
|
H as supportsDocument,
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
860
|
+
It as supportsHistory,
|
|
861
|
+
xt as supportsIntersectionObserver,
|
|
862
|
+
ae as supportsLocalStorage,
|
|
863
|
+
Et as supportsLocation,
|
|
864
|
+
Pt as supportsSessionStorage,
|
|
865
|
+
Rt as supportsShadowRoot,
|
|
866
|
+
Bt as supportsWebComponents,
|
|
867
|
+
ie as supportsWindow
|
|
887
868
|
};
|