@picked/client 0.0.1-dev.1777614791290 → 0.0.1-dev.1777856271317

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 (43) hide show
  1. package/dist/{api-mpZ1gccM.js → api-DaHz97Mz.js} +1 -1
  2. package/dist/{api-PefU2fcg.cjs → api-dOWgI8zV.cjs} +1 -1
  3. package/dist/cjs/form/index.js +1 -1
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dom-observer/index.js +1 -0
  7. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  8. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  10. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  11. package/dist/cjs/server/index.js +1 -1
  12. package/dist/esm/form/index.js +33 -40
  13. package/dist/esm/index.js +174 -298
  14. package/dist/esm/plugins/create-experience/index.js +1 -1
  15. package/dist/esm/plugins/dom-observer/index.js +107 -0
  16. package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
  17. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  20. package/dist/esm/server/index.js +1 -1
  21. package/dist/experience-BhteyYBl.cjs +1 -0
  22. package/dist/experience-CoMdlvyn.js +136 -0
  23. package/dist/experience-instance-CZDcicPj.cjs +1 -0
  24. package/dist/experience-instance-IkIw31Cg.js +387 -0
  25. package/dist/nodes-ChVU1VZO.js +101 -0
  26. package/dist/nodes-DDDs-rC2.cjs +1 -0
  27. package/dist/types/entities/history/history.d.ts +3 -0
  28. package/dist/types/entities/history/history.d.ts.map +1 -1
  29. package/dist/types/form/create-form.d.ts +0 -55
  30. package/dist/types/form/create-form.d.ts.map +1 -1
  31. package/dist/types/picked.d.ts +3 -0
  32. package/dist/types/picked.d.ts.map +1 -1
  33. package/dist/types/plugins/dom-observer/index.d.ts +3 -0
  34. package/dist/types/plugins/dom-observer/index.d.ts.map +1 -0
  35. package/dist/types/plugins/dom-observer/plugin.d.ts +51 -0
  36. package/dist/types/plugins/dom-observer/plugin.d.ts.map +1 -0
  37. package/package.json +11 -1
  38. package/dist/experience-instance-DC2gKwA6.cjs +0 -1
  39. package/dist/experience-instance-DJaNc5Ob.js +0 -486
  40. /package/dist/{id-CRqy981z.js → id-B-N2zNbS.js} +0 -0
  41. /package/dist/{id-Bv44ilEo.cjs → id-Bbodazn8.cjs} +0 -0
  42. /package/dist/{storage-B6lQtc4-.cjs → storage-BXSlLTRa.cjs} +0 -0
  43. /package/dist/{storage-6Xk0uAxB.js → storage-hOHCCXvP.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../id-CRqy981z.js";
1
+ import { t as e } from "../../../id-B-N2zNbS.js";
2
2
  //#region src/plugins/create-experience/serialization.ts
3
3
  var t = {
4
4
  serialize(e) {
@@ -0,0 +1,107 @@
1
+ import { t as e } from "../../../logger-6z_gb4rA.js";
2
+ import { d as t, r as n } from "../../../supports-0XIfd4-R.js";
3
+ import { c as r } from "../../../nodes-ChVU1VZO.js";
4
+ import { n as i } from "../../../experience-CoMdlvyn.js";
5
+ //#region src/plugins/dom-observer/plugin.ts
6
+ var a = /* @__PURE__ */ new WeakSet(), o = () => ({
7
+ name: "dom-observer",
8
+ setup: (e) => {
9
+ s() && (a.has(e) || (a.add(e), c(e)));
10
+ }
11
+ });
12
+ function s() {
13
+ return !(!t() || !n() || typeof MutationObserver != "function" || typeof requestAnimationFrame != "function");
14
+ }
15
+ function c(e) {
16
+ if (document.body) {
17
+ l(e);
18
+ return;
19
+ }
20
+ r().then(() => {
21
+ document.body && l(e);
22
+ });
23
+ }
24
+ function l(t) {
25
+ let n = [], r = "", a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = () => {
26
+ let e = /* @__PURE__ */ new Set();
27
+ for (let n of t.experiences.listStore.getState()) {
28
+ let t = n.configStore.getState().targetSelectors;
29
+ for (let n of t) {
30
+ if (typeof n.selector != "string") continue;
31
+ let t = n.selector.trim();
32
+ if (!(t.length === 0 || e.has(t))) {
33
+ if (!u(t)) {
34
+ `${t}`;
35
+ continue;
36
+ }
37
+ e.add(t);
38
+ }
39
+ }
40
+ }
41
+ n = Array.from(e), r = n.join(",");
42
+ }, f = (e) => {
43
+ let t = new Set(e.map((e) => e.id));
44
+ for (let [e, n] of a) t.has(e) || (n(), a.delete(e));
45
+ for (let t of e) a.has(t.id) || a.set(t.id, t.configStore.watch(l));
46
+ };
47
+ t.experiences.listStore.watch((e) => {
48
+ f(e);
49
+ }), t.experienceInstances.listStore.watch((e) => {
50
+ for (let t of e) o.add(t.experienceId), s.delete(t.experienceId), c.delete(t.experienceId);
51
+ });
52
+ let p = !1, m = !1, h, g = () => {
53
+ if (o.size === 0) return;
54
+ let e = /* @__PURE__ */ new Set();
55
+ for (let n of t.experienceInstances.listStore.getState()) e.add(n.experienceId);
56
+ for (let n of o) {
57
+ if (e.has(n)) {
58
+ s.delete(n);
59
+ continue;
60
+ }
61
+ if (c.has(n)) continue;
62
+ let r = (s.get(n) ?? 0) + 1;
63
+ r >= 2 ? (t.history.clearForExperience({ experienceId: n }), c.add(n), s.delete(n)) : s.set(n, r);
64
+ }
65
+ }, _ = () => {
66
+ if (p) {
67
+ m = !0;
68
+ return;
69
+ }
70
+ p = !0;
71
+ try {
72
+ g();
73
+ } catch {}
74
+ Promise.resolve(i(t)).catch((t) => /* @__PURE__ */ e("error", t)).finally(() => {
75
+ p = !1, m && (m = !1, v());
76
+ });
77
+ }, v = () => {
78
+ h === void 0 && (h = requestAnimationFrame(() => {
79
+ h = void 0, _();
80
+ }));
81
+ };
82
+ new MutationObserver((e) => {
83
+ if (r.length !== 0) {
84
+ for (let t of e) if (t.type === "childList" && d(t.addedNodes, r)) {
85
+ v();
86
+ return;
87
+ }
88
+ }
89
+ }).observe(document.body, {
90
+ childList: !0,
91
+ subtree: !0
92
+ });
93
+ }
94
+ function u(e) {
95
+ try {
96
+ return document.createDocumentFragment().querySelector(e), !0;
97
+ } catch {
98
+ return !1;
99
+ }
100
+ }
101
+ function d(e, t) {
102
+ if (t.length === 0) return !1;
103
+ for (let n of Array.from(e)) if (n instanceof Element && (n.matches(t) || n.querySelector(t) !== null)) return !0;
104
+ return !1;
105
+ }
106
+ //#endregion
107
+ export { o as domObserverPlugin };
@@ -1,5 +1,5 @@
1
1
  import "../../../logger-6z_gb4rA.js";
2
- import { i as e, t } from "../../../api-mpZ1gccM.js";
2
+ import { i as e, t } from "../../../api-DaHz97Mz.js";
3
3
  //#region src/plugins/dynamic-experiences/hash.ts
4
4
  function n(e) {
5
5
  let t = 2166136261;
@@ -1,6 +1,6 @@
1
1
  import "../../../logger-6z_gb4rA.js";
2
2
  import { d as e } from "../../../supports-0XIfd4-R.js";
3
- import { n as t, r as n, t as r } from "../../../storage-6Xk0uAxB.js";
3
+ import { n as t, r as n, t as r } from "../../../storage-hOHCCXvP.js";
4
4
  import { createEffect as i, sample as a } from "effector";
5
5
  //#region src/plugins/experience-browser-storage/plugin.ts
6
6
  var o = ({ storage: o = "local" } = {}) => ({
@@ -1,5 +1,5 @@
1
1
  import { d as e } from "../../../supports-0XIfd4-R.js";
2
- import { n as t, r as n, t as r } from "../../../storage-6Xk0uAxB.js";
2
+ import { n as t, r as n, t as r } from "../../../storage-hOHCCXvP.js";
3
3
  import { createEffect as i, sample as a } from "effector";
4
4
  //#region src/plugins/history-browser-storage/plugin.ts
5
5
  var o = r("history", "global"), s = ({ storage: r = "local" } = {}) => ({
@@ -1,5 +1,5 @@
1
1
  import { d as e } from "../../../supports-0XIfd4-R.js";
2
- import { n as t, r as n, t as r } from "../../../storage-6Xk0uAxB.js";
2
+ import { n as t, r as n, t as r } from "../../../storage-hOHCCXvP.js";
3
3
  import { attach as i, createEffect as a, sample as o } from "effector";
4
4
  //#region src/plugins/responses-browser-storage/plugin.ts
5
5
  var s = r("responses", "global");
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../experience-instance-DJaNc5Ob.js";
1
+ import { t as e } from "../../experience-instance-IkIw31Cg.js";
2
2
  import { attach as t, createEffect as n, createEvent as r, createStore as i, sample as a } from "effector";
3
3
  //#region src/server/index.ts
4
4
  function o() {
@@ -0,0 +1 @@
1
+ const e=require(`./rules-logic-DNLOv90w.cjs`);require(`./logger-fbvQC40v.cjs`);const t=require(`./nodes-DDDs-rC2.cjs`);let n=require(`effector`),r=require(`@withease/factories`);var i=(0,n.createDomain)(`experience`),a=(0,r.createFactory)(({client:e,experience:r})=>{let a=i.store(r),o=(0,n.createApi)(a,{merge(e,t){return{...e,...t.experience}}}),s=a.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:e.initializeOpen})),c=(0,n.combine)(a,e.components.listStore,(e,t)=>(e.componentName?t.find(t=>t.name===e.componentName):void 0)||t.find(t=>t.name===`experience:${e.id}`)||t.find(e=>e.name===`experience`),{skipVoid:!1}),l=(0,n.combine)(a,e.steps.indexStore,e.conditions.indexStore,(e,n,r)=>{let i=e.nodes.filter(t.a).map(e=>n[e.stepId]).filter(e=>e!==void 0),a=e.nodes.filter(t.n).map(e=>r[e.conditionId]).filter(e=>e!==void 0);return{steps:i,nodes:e.nodes,edges:e.edges,conditions:a}}),u=r.actions??[];return{id:r.id,key:r.key,name:r.name,configStore:s,treeStore:l,componentStore:c,actions:u,merge:o.merge}});function o(e){return(0,r.invoke)(a,e)}var s=(0,r.createFactory)(({client:e})=>{let t=i.store({}),r=(0,n.createApi)(t,{register(e,t){return{...e,[t.id]:t}}});function a(n){let i=t.getState()[n.id];if(i){i.merge({experience:n,strategy:`override`});return}let a=o({client:e,experience:n});r.register(a)}let s=t.map(e=>Object.values(e));function c(e){return t.map(t=>t[e],{skipVoid:!1})}function u(e){return t.map(t=>Object.values(t).find(t=>t.key===e)??t[e],{skipVoid:!1})}let f=(0,n.attach)({source:t,effect:async(t,n)=>{let r=`key`in n?Object.values(t).find(e=>e.key===n.key):t[n.id];if(!r){`key`in n?`${n.key}`:`${n.id}`;return}let{options:i}=n;if(i?.bypassCondition){l(e,r,i);return}await d(e,r)&&l(e,r,i)}});return{register:a,get:c,getById:c,getByKey:u,launch:f,open:(0,n.attach)({source:{experiences:t,instances:e.experienceInstances.listStore},effect:({experiences:e,instances:t},n)=>{let r=`key`in n?Object.values(e).find(e=>e.key===n.key):e[n.id],i=t.filter(e=>r&&e.experienceId===r.id);if(i.length>0)for(let e of i)e.open();else f(`key`in n?{key:n.key,options:{...n.options,initialiseOpen:!0}}:{id:n.id,options:{...n.options,initialiseOpen:!0}})}}),listStore:s}});function c(e){return(0,r.invoke)(s,e)}var l=(e,n,r)=>{let{targetSelectors:i}=n.configStore.getState(),a=t.l(i,n.id);a.forEach(({elements:e})=>e.forEach(e=>t.f(e,n.id))),t.o(a,n.id,n.key).forEach(t=>{r?e.experienceInstances.spawn(n,t,r):e.experienceInstances.spawn(n,t)})},u=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await d(e,t)&&l(e,t)}))},d=async(n,r)=>{if(!n.preconditionPassed||!n.session?.isUser)return!1;let{decisionLogic:i,targetSelectors:a}=r.configStore.getState();return t.l(a,r.id).length<1||a.length===0?!1:i===void 0?!0:e.n(i)?await e.t(n,i)===!0:!0};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return c}});
@@ -0,0 +1,136 @@
1
+ import { n as e, t } from "./rules-logic-BTIxfrJJ.js";
2
+ import "./logger-6z_gb4rA.js";
3
+ import { a as n, f as r, l as i, n as a, o } from "./nodes-ChVU1VZO.js";
4
+ import { attach as s, combine as c, createApi as l, createDomain as u } from "effector";
5
+ import { createFactory as d, invoke as f } from "@withease/factories";
6
+ //#region src/entities/experience/experience.ts
7
+ var p = u("experience"), m = d(({ client: e, experience: t }) => {
8
+ let r = p.store(t), i = l(r, { merge(e, t) {
9
+ return {
10
+ ...e,
11
+ ...t.experience
12
+ };
13
+ } }), o = r.map((e) => ({
14
+ name: e.name,
15
+ decisionLogic: e.condition,
16
+ targetSelectors: e.targets,
17
+ initializeOpenLogic: e.initializeOpen
18
+ })), s = c(r, e.components.listStore, (e, t) => (e.componentName ? t.find((t) => t.name === e.componentName) : void 0) || t.find((t) => t.name === `experience:${e.id}`) || t.find((e) => e.name === "experience"), { skipVoid: !1 }), u = c(r, e.steps.indexStore, e.conditions.indexStore, (e, t, r) => {
19
+ let i = e.nodes.filter(n).map((e) => t[e.stepId]).filter((e) => e !== void 0), o = e.nodes.filter(a).map((e) => r[e.conditionId]).filter((e) => e !== void 0);
20
+ return {
21
+ steps: i,
22
+ nodes: e.nodes,
23
+ edges: e.edges,
24
+ conditions: o
25
+ };
26
+ }), d = t.actions ?? [];
27
+ return {
28
+ id: t.id,
29
+ key: t.key,
30
+ name: t.name,
31
+ configStore: o,
32
+ treeStore: u,
33
+ componentStore: s,
34
+ actions: d,
35
+ merge: i.merge
36
+ };
37
+ });
38
+ function h(e) {
39
+ return f(m, e);
40
+ }
41
+ var g = d(({ client: e }) => {
42
+ let t = p.store({}), n = l(t, { register(e, t) {
43
+ return {
44
+ ...e,
45
+ [t.id]: t
46
+ };
47
+ } });
48
+ function r(r) {
49
+ let i = t.getState()[r.id];
50
+ if (i) {
51
+ i.merge({
52
+ experience: r,
53
+ strategy: "override"
54
+ });
55
+ return;
56
+ }
57
+ let a = h({
58
+ client: e,
59
+ experience: r
60
+ });
61
+ n.register(a);
62
+ }
63
+ let i = t.map((e) => Object.values(e));
64
+ function a(e) {
65
+ return t.map((t) => t[e], { skipVoid: !1 });
66
+ }
67
+ function o(e) {
68
+ return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
69
+ }
70
+ let c = s({
71
+ source: t,
72
+ effect: async (t, n) => {
73
+ let r = "key" in n ? Object.values(t).find((e) => e.key === n.key) : t[n.id];
74
+ if (!r) {
75
+ "key" in n ? `${n.key}` : `${n.id}`;
76
+ return;
77
+ }
78
+ let { options: i } = n;
79
+ if (i?.bypassCondition) {
80
+ v(e, r, i);
81
+ return;
82
+ }
83
+ await b(e, r) && v(e, r, i);
84
+ }
85
+ });
86
+ return {
87
+ register: r,
88
+ get: a,
89
+ getById: a,
90
+ getByKey: o,
91
+ launch: c,
92
+ open: s({
93
+ source: {
94
+ experiences: t,
95
+ instances: e.experienceInstances.listStore
96
+ },
97
+ effect: ({ experiences: e, instances: t }, n) => {
98
+ let r = "key" in n ? Object.values(e).find((e) => e.key === n.key) : e[n.id], i = t.filter((e) => r && e.experienceId === r.id);
99
+ if (i.length > 0) for (let e of i) e.open();
100
+ else c("key" in n ? {
101
+ key: n.key,
102
+ options: {
103
+ ...n.options,
104
+ initialiseOpen: !0
105
+ }
106
+ } : {
107
+ id: n.id,
108
+ options: {
109
+ ...n.options,
110
+ initialiseOpen: !0
111
+ }
112
+ });
113
+ }
114
+ }),
115
+ listStore: i
116
+ };
117
+ });
118
+ function _(e) {
119
+ return f(g, e);
120
+ }
121
+ var v = (e, t, n) => {
122
+ let { targetSelectors: a } = t.configStore.getState(), s = i(a, t.id);
123
+ s.forEach(({ elements: e }) => e.forEach((e) => r(e, t.id))), o(s, t.id, t.key).forEach((r) => {
124
+ n ? e.experienceInstances.spawn(t, r, n) : e.experienceInstances.spawn(t, r);
125
+ });
126
+ }, y = async (e) => {
127
+ await Promise.all(e.experiences.listStore.getState().map(async (t) => {
128
+ await b(e, t) && v(e, t);
129
+ }));
130
+ }, b = async (n, r) => {
131
+ if (!n.preconditionPassed || !n.session?.isUser) return !1;
132
+ let { decisionLogic: a, targetSelectors: o } = r.configStore.getState();
133
+ return i(o, r.id).length < 1 || o.length === 0 ? !1 : a === void 0 ? !0 : e(a) ? await t(n, a) === !0 : !0;
134
+ };
135
+ //#endregion
136
+ export { y as n, _ as t };
@@ -0,0 +1 @@
1
+ const e=require(`./rules-logic-DNLOv90w.cjs`);require(`./logger-fbvQC40v.cjs`);const t=require(`./nodes-DDDs-rC2.cjs`);let n=require(`effector`),r=require(`@withease/factories`);var i=(e,n,r,a,o=new Set)=>o.has(r.id)?[]:(o.add(r.id),t.a(r)&&!a?[r]:n.filter(e=>e.sourceNodeId===r.id).flatMap(t=>{let r=e.find(e=>e.id===t.destinationNodeId);return r?i(e,n,r,!1,o):[]})),a=(e,t,n)=>i(e,t,n,!0,new Set),o=(e,t,n,r,i=new Set)=>{if(i.has(n.id))return[-1,-1];i.add(n.id);let a=t.filter(e=>e.sourceNodeId===n.id);if(a.length===0)return[0,0];let s=1/0,c=-1/0;for(let n of a){let r=e.find(e=>e.id===n.destinationNodeId);if(!r)continue;let[a,l]=o(e,t,r,!1,new Set(i));a!==-1&&(s=Math.min(s,a+1),c=Math.max(c,l+1))}return s===1/0?[-1,-1]:[s,c]},s=(e,t,n)=>o(e,t,n,!0,new Set),c=(e,t,n,r=new Set)=>{if(r.has(n.id))return[-1,-1];if(r.add(n.id),n.type===`origin`)return[0,0];let i=t.filter(e=>e.destinationNodeId===n.id);if(i.length===0)return[-1,-1];let a=1/0,o=-1/0;for(let n of i){let i=e.find(e=>e.id===n.sourceNodeId);if(!i)continue;let[s,l]=c(e,t,i,new Set(r));s!==-1&&(a=Math.min(a,s+1),o=Math.max(o,l+1))}return a===1/0?[-1,-1]:[a,o]},l=(e,t,n)=>c(e,t,n,new Set),u=e=>e.find(e=>e.type===`origin`)||null,d=(e,t,n)=>{if(!e)return u(t);let r=n.find(t=>t.sourceNodeId===e.id);return r&&t.find(e=>e.id===r.destinationNodeId)||null};async function f(e,t,n,r){let i=e?`true`:`false`,a=r.find(e=>e.sourceHandle===i&&e.sourceNodeId===t);return n.find(e=>e.id===a?.destinationNodeId)}var p=(0,n.createDomain)(`experience-instance`),m=(0,r.createFactory)(({client:r,experience:i,target:o,options:c})=>{let m=(0,n.createEvent)(),h=(0,n.createEvent)(),g=(0,n.createEvent)(),_=(0,n.createEvent)(),v=(0,n.createEvent)(),y=(0,n.createEvent)(),b=i.componentStore,x=p.store(`transitioning`),S=r.history.entriesStore.map(e=>e.filter(e=>e.experienceId===i.id)),C=S.map(e=>e.filter(e=>t.a(e.node))),w=S.map(e=>e.at(-1)?.node||null),T=(0,n.combine)(r.steps.listStore,w,(e,n)=>e.find(e=>n&&t.a(n)&&e.id===n.stepId)||null),E=(0,n.combine)(r.steps.listStore,C,(e,n)=>{let r=n.at(-2);if(!r||!t.a(r.node))return null;let i=r.node;return e.find(e=>e.id===i.stepId)||null}),D=(0,n.combine)(i.treeStore,w,({nodes:e,edges:t},n)=>n?a(e,t,n):[]),O=(0,n.combine)(i.treeStore,w,({nodes:e,edges:t},n)=>n?l(e,t,n):[-1,-1]),k=(0,n.combine)(i.treeStore,w,({nodes:e,edges:t},n)=>n?s(e,t,n):[-1,-1]),A=p.store(!1),j=(0,n.createApi)(A,{open:()=>!0,close:()=>!1,toggle:e=>!e,set:(e,t)=>t}),M=(0,n.createEffect)(async()=>{r.history.back({experienceId:i.id})}),N=(0,n.attach)({source:i.treeStore,effect:async(e,n)=>{let a=e.nodes.find(e=>t.a(e)&&e.stepId===n);a&&r.history.push({experienceId:i.id,node:a})}}),P=(0,n.attach)({source:w,effect:e=>{}}),F=(0,n.attach)({source:i.treeStore,effect:async({nodes:e})=>u(e)}),I=(0,n.attach)({source:i.treeStore,effect:async({nodes:e,edges:n},r)=>{if(t.i(r))return d(r,e,n)}}),L=(0,n.attach)({source:i.treeStore,effect:async({nodes:n,edges:i,conditions:a},o)=>{if(!t.n(o))return;let s=a.find(e=>e.id===o.conditionId)?.logic;return s?f(!!await e.t(r,s),o.id,n,i):void 0}}),R=(0,n.attach)({source:i.treeStore,effect:async({nodes:e,edges:n},i)=>{if(!t.t(i))return;let a=i.actionKey;if(!a){`${i.id}`;return}let o=r.actions.getByKey(a).getState();if(!o){`${a}`;let t=n.find(e=>e.sourceNodeId===i.id&&e.sourceHandle===`false`);return t?e.find(e=>e.id===t.destinationNodeId):null}if(typeof o!=`function`){`${a}`;let t=n.find(e=>e.sourceNodeId===i.id&&e.sourceHandle===`false`);return t?e.find(e=>e.id===t.destinationNodeId):null}try{`${a}`,await o({...r.getStateSnapshot(),args:[]},{experience:W});let t=n.find(e=>e.sourceNodeId===i.id&&e.sourceHandle===`true`);if(!t)return`${i.id}`,null;let s=e.find(e=>e.id===t.destinationNodeId);return`${a}${s?.id}`,s||null}catch{`${a}`;let t=n.find(e=>e.sourceNodeId===i.id&&e.sourceHandle===`false`);if(!t)return`${i.id}`,null;let r=e.find(e=>e.id===t.destinationNodeId);return`${a}${r?.id}`,r||null}}}),z=(0,n.createEffect)(e=>{t.r(e)&&r.experiences.launch({key:e.experienceKey})}),B=(0,n.attach)({source:[w,i.treeStore],effect:async([e,{nodes:t,edges:n}])=>d(e,t,n)}),V=(0,n.attach)({source:[w,i.treeStore],effect:async([e,{nodes:t,edges:n}])=>d(e,t,n)}),H=(0,n.createEffect)(e=>{r.history.push({experienceId:i.id,node:e})}),U=(0,n.attach)({source:i.configStore,effect:async({initializeOpenLogic:t})=>c?.initialiseOpen===void 0?e.n(t)?!!await e.t(r,t):t??!1:c.initialiseOpen}),W=Object.freeze({id:Math.random().toString(36).substring(7),experienceKey:i.key,experienceId:i.id,configStore:i.configStore,target:o,componentStore:b,stateStore:x,isOpenStore:A,open:j.open,close:j.close,toggleOpen:j.toggle,setOpen:j.set,treeStore:i.treeStore,currentNodeStore:w,currentStepStore:T,previousStepStore:E,nextReachableStepNodesStore:D,stepsToOriginStore:O,stepsToLeafStore:k,goToNextStep:h,goToPreviousStep:g,goToStepById:_,stepsHistoryStore:C}),G=(0,n.createEvent)(),K=(0,n.createEvent)();return(0,n.sample)({clock:w,target:G}),(0,n.sample)({clock:G,filter:e=>e===null,target:F}),(0,n.sample)({clock:G,filter:e=>e!==null,target:K}),(0,n.split)({source:K,match:e=>t.n(e)?`condition`:t.a(e)?`step`:t.r(e)?`launchExperience`:t.i(e)?`origin`:t.t(e)?`action`:`other`,cases:{origin:I,condition:L,step:P,launchExperience:z,action:R,__:(0,n.createEvent)()}}),(0,n.sample)({clock:[L.doneData,I.doneData,F.doneData,V.doneData,B.doneData,R.doneData],filter:Boolean,target:H}),(0,n.sample)({clock:h,target:V}),(0,n.sample)({clock:h,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit`,step:e,experience:W}))}),(0,n.sample)({clock:V.done,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit_success`,step:e,experience:W}))}),(0,n.sample)({clock:V.fail,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit_error`,step:e,experience:W}))}),(0,n.sample)({clock:g,target:M}),(0,n.sample)({clock:_,target:N}),(0,n.sample)({source:(0,n.combine)([L.pending,I.pending,F.pending,V.pending]),fn:e=>e.some(Boolean)?`transitioning`:`ready`,target:x}),(0,n.sample)({clock:P.doneData,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_enter`,step:e,experience:W}))}),(0,n.sample)({clock:y,target:U}),(0,n.sample)({source:U.doneData,fn:Boolean,target:A}),(0,n.sample)({source:w,clock:m,filter:e=>e?t.i(e):!0,target:B}),(0,n.sample)({source:A,filter:Boolean,target:m}),(0,n.sample)({source:A,filter:Boolean,target:r.eventBus.prepend(()=>({type:`experience_open`,experience:W}))}),(0,n.sample)({source:A,filter:e=>!e,target:r.eventBus.prepend(()=>({type:`experience_close`,experience:W}))}),(0,n.sample)({clock:v,target:[y]}),v(),W});function h(e){return(0,r.invoke)(m,e)}var g=(0,r.createFactory)(({client:e})=>{let r=p.store({}),i=(0,n.createEvent)(),a=(0,n.createEvent)(),o=(0,n.createEvent)(),s=(0,n.createApi)(r,{register(e,t){let n=[...e[t.experienceId]??[]];return n.push(t),{...e,[t.experienceId]:n}},unregister(e,t){let n=t.experienceId,r=e[n]?.filter(e=>e!==t);return{...e,[n]:r??[]}}}),c=(0,n.createEffect)(({experience:t,target:n,options:r})=>h({client:e,experience:t,target:n,options:r})),l=(0,n.createEffect)(e=>{s.register(e)}),u=(0,n.createEffect)(e=>{e.target&&t.d(e.target,()=>{o(e)})}),d=(0,n.createEffect)(e=>{s.unregister(e)}),f=(0,n.createEffect)(n=>{let r=n.componentStore.getState();if(!r)return;let i=r.frameworkStore.getState();if(!i){`${r.name}`;return}let a=n.target;if(!a){`${n.experienceId}`;return}let o=t.s(a);try{i.render(o,r.component,e,n)}catch{}});(0,n.sample)({clock:i,target:c}),(0,n.sample)({clock:o,target:d}),(0,n.sample)({clock:c.doneData,target:[l,u,a]}),(0,n.sample)({clock:c.doneData,target:e.eventBus.prepend(e=>({type:`experience_initialize`,experience:e}))}),(0,n.sample)({clock:a,target:f});function m(e,t,n){i({experience:e,target:t,options:n})}let g=r.map(e=>Object.values(e).flat());function _(e){return g.map(t=>t.filter(t=>t.experienceKey===e),{skipVoid:!1})}function v(e){return r.map(t=>t[e]||[],{skipVoid:!1})}return{spawn:m,getByExperienceKey:_,getByExperienceId:v,listStore:g}});function _(e){return(0,r.invoke)(g,e)}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});