@picked/client 0.0.1-dev.1777601813342 → 0.0.1-dev.1777602638912

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 (61) hide show
  1. package/dist/{api-CiR56vZg.js → api-5yb5p-eh.js} +1 -1
  2. package/dist/{api-BAOO2VZv.cjs → api-AgvW9_WG.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/dynamic-experiences/index.js +1 -1
  7. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  10. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  11. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  12. package/dist/cjs/plugins/web-components/index.js +1 -1
  13. package/dist/cjs/plugins/window-object/index.js +1 -1
  14. package/dist/cjs/server/index.js +1 -1
  15. package/dist/esm/form/index.js +32 -17
  16. package/dist/esm/index.js +307 -181
  17. package/dist/esm/plugins/create-experience/index.js +1 -1
  18. package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
  19. package/dist/esm/plugins/experience-browser-storage/index.js +2 -2
  20. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  21. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  22. package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
  23. package/dist/esm/plugins/single-page-app/index.js +25 -93
  24. package/dist/esm/plugins/web-components/index.js +2 -2
  25. package/dist/esm/plugins/window-object/index.js +1 -1
  26. package/dist/esm/server/index.js +1 -1
  27. package/dist/experience-instance-DC2gKwA6.cjs +1 -0
  28. package/dist/experience-instance-DJaNc5Ob.js +486 -0
  29. package/dist/object-C82v79xc.js +25 -0
  30. package/dist/object-CUJOjanb.cjs +1 -0
  31. package/dist/rules-logic-BTIxfrJJ.js +240 -0
  32. package/dist/rules-logic-DNLOv90w.cjs +1 -0
  33. package/dist/{supports-DUJbucFW.js → supports-0XIfd4-R.js} +9 -18
  34. package/dist/supports-Dsjg-82e.cjs +1 -0
  35. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  36. package/dist/types/entities/framework/framework.d.ts +0 -12
  37. package/dist/types/entities/framework/framework.d.ts.map +1 -1
  38. package/dist/types/form/create-form.d.ts +32 -0
  39. package/dist/types/form/create-form.d.ts.map +1 -1
  40. package/dist/types/plugins/single-page-app/index.d.ts +1 -2
  41. package/dist/types/plugins/single-page-app/index.d.ts.map +1 -1
  42. package/dist/types/plugins/single-page-app/plugin.d.ts +9 -92
  43. package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
  44. package/dist/types/utils/global-obj.d.ts +0 -5
  45. package/dist/types/utils/global-obj.d.ts.map +1 -1
  46. package/dist/types/utils/supports.d.ts +0 -113
  47. package/dist/types/utils/supports.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/experience-CR19HpPg.js +0 -136
  50. package/dist/experience-DOWnsvA1.cjs +0 -1
  51. package/dist/experience-instance-C2jZU8ho.cjs +0 -1
  52. package/dist/experience-instance-CGLdwg--.js +0 -400
  53. package/dist/nodes-Bmzx3TP_.js +0 -101
  54. package/dist/nodes-Dx9bxj35.cjs +0 -1
  55. package/dist/rules-logic-CvILqbhz.js +0 -266
  56. package/dist/rules-logic-DV5SUr5M.cjs +0 -1
  57. package/dist/supports-DFDQ6eJO.cjs +0 -1
  58. /package/dist/{id-Cg7fVl1O.cjs → id-Bv44ilEo.cjs} +0 -0
  59. /package/dist/{id-n2yrHvNo.js → id-CRqy981z.js} +0 -0
  60. /package/dist/{logger-C44jSdYl.js → logger-6z_gb4rA.js} +0 -0
  61. /package/dist/{logger-CJUj90QX.cjs → logger-fbvQC40v.cjs} +0 -0
@@ -1,125 +1,12 @@
1
- /**
2
- * Reports whether `globalThis.location` is available in the current runtime.
3
- *
4
- * @returns {boolean} `true` when a usable `location` object is present.
5
- * @example
6
- * if (supportsLocation()) {
7
- * console.log(globalThis.location.href)
8
- * }
9
- */
10
1
  export declare function supportsLocation(): boolean;
11
- /**
12
- * Reports whether `globalThis.history` is available in the current runtime.
13
- *
14
- * @returns {boolean} `true` when a usable `history` object is present.
15
- * @example
16
- * if (supportsHistory()) {
17
- * globalThis.history.pushState(null, '', '/next')
18
- * }
19
- */
20
2
  export declare function supportsHistory(): boolean;
21
- /**
22
- * Reports whether the modern Navigation API
23
- * (`globalThis.navigation`) is available with a usable `addEventListener`
24
- * method. Used by the SPA plugin to choose between the Navigation API and
25
- * the history-instrumentation fallback.
26
- *
27
- * @returns {boolean} `true` when the Navigation API is available.
28
- * @example
29
- * if (supportsNavigation()) {
30
- * globalThis.navigation?.addEventListener('navigatesuccess', onRouteChange)
31
- * }
32
- */
33
- export declare function supportsNavigation(): boolean;
34
- /**
35
- * Reports whether `globalThis.localStorage` is available in the current runtime.
36
- *
37
- * @returns {boolean} `true` when a usable `localStorage` object is present.
38
- * @example
39
- * if (supportsLocalStorage()) {
40
- * globalThis.localStorage.setItem('key', 'value')
41
- * }
42
- */
43
3
  export declare function supportsLocalStorage(): boolean;
44
- /**
45
- * Reports whether `globalThis.sessionStorage` is available in the current runtime.
46
- *
47
- * @returns {boolean} `true` when a usable `sessionStorage` object is present.
48
- * @example
49
- * if (supportsSessionStorage()) {
50
- * globalThis.sessionStorage.setItem('key', 'value')
51
- * }
52
- */
53
4
  export declare function supportsSessionStorage(): boolean;
54
- /**
55
- * Reports whether `document.cookie` is available in the current runtime.
56
- *
57
- * @returns {boolean} `true` when document cookies can be read or written.
58
- * @example
59
- * if (supportsCookies()) {
60
- * document.cookie = 'name=value'
61
- * }
62
- */
63
5
  export declare function supportsCookies(): boolean;
64
- /**
65
- * Reports whether the Shadow DOM API (`Element.attachShadow`) is available in
66
- * the current runtime.
67
- *
68
- * @returns {boolean} `true` when shadow roots can be attached.
69
- * @example
70
- * if (supportsShadowRoot()) {
71
- * element.attachShadow({ mode: 'open' })
72
- * }
73
- */
74
6
  export declare function supportsShadowRoot(): boolean;
75
- /**
76
- * Reports whether `globalThis.window` is available in the current runtime.
77
- * Used as a coarse "we're in a browser" guard.
78
- *
79
- * @returns {boolean} `true` when a `window` global is present.
80
- * @example
81
- * if (!supportsWindow()) {
82
- * return
83
- * }
84
- */
85
7
  export declare function supportsWindow(): boolean;
86
- /**
87
- * Reports whether `globalThis.document` is available in the current runtime.
88
- *
89
- * @returns {boolean} `true` when a `document` global is present.
90
- * @example
91
- * if (supportsDocument()) {
92
- * document.body.append(node)
93
- * }
94
- */
95
8
  export declare function supportsDocument(): boolean;
96
- /**
97
- * Reports whether `IntersectionObserver` is available in the current runtime.
98
- *
99
- * @returns {boolean} `true` when the IntersectionObserver constructor is exposed.
100
- * @example
101
- * if (supportsIntersectionObserver()) {
102
- * new IntersectionObserver(callback).observe(element)
103
- * }
104
- */
105
9
  export declare function supportsIntersectionObserver(): boolean;
106
- /**
107
- * Reports whether the Custom Elements API (`globalThis.customElements`) is
108
- * available in the current runtime.
109
- *
110
- * @returns {boolean} `true` when the customElements registry is exposed.
111
- * @example
112
- * if (supportsWebComponents()) {
113
- * customElements.define('picked-widget', PickedWidget)
114
- * }
115
- */
116
10
  export declare function supportsWebComponents(): boolean;
117
- /**
118
- * Reports whether `crypto.randomUUID` is available in the current runtime.
119
- *
120
- * @returns {boolean} `true` when `crypto.randomUUID()` can be called.
121
- * @example
122
- * const id = supportsCryptoRandomUUID() ? crypto.randomUUID() : fallbackId()
123
- */
124
11
  export declare function supportsCryptoRandomUUID(): boolean;
125
12
  //# sourceMappingURL=supports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supports.d.ts","sourceRoot":"","sources":["../../../src/utils/supports.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAW5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAMhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAU5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAMtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAMlD"}
1
+ {"version":3,"file":"supports.d.ts","sourceRoot":"","sources":["../../../src/utils/supports.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAMhD;AAED,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAU5C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAMtD;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAM/C;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAMlD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picked/client",
3
- "version": "0.0.1-dev.1777601813342",
3
+ "version": "0.0.1-dev.1777602638912",
4
4
  "dependencies": {
5
5
  "@withease/factories": "^1.0.5"
6
6
  },
@@ -1,136 +0,0 @@
1
- import { n as e, t } from "./rules-logic-CvILqbhz.js";
2
- import "./logger-C44jSdYl.js";
3
- import { a as n, f as r, l as i, n as a, o } from "./nodes-Bmzx3TP_.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 };
@@ -1 +0,0 @@
1
- const e=require(`./rules-logic-DV5SUr5M.cjs`);require(`./logger-CJUj90QX.cjs`);const t=require(`./nodes-Dx9bxj35.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}});
@@ -1 +0,0 @@
1
- const e=require(`./rules-logic-DV5SUr5M.cjs`);require(`./logger-CJUj90QX.cjs`);const t=require(`./nodes-Dx9bxj35.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)(async e=>{let t=e.componentStore.getState();if(!t)return;let n=t.frameworkStore.getState();if(!n)return;let r=e.target?.shadowRoot;if(r)try{await n.unRender(r)}catch{}}),m=(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}try{let o=a.shadowRoot??t.s(a);i.render(o,r.component,e,n)}catch{}});(0,n.sample)({clock:i,target:c}),(0,n.sample)({clock:o,target:f}),(0,n.sample)({clock:f.finally,fn:({params:e})=>e,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:m});function g(e,t,n){i({experience:e,target:t,options:n})}let _=r.map(e=>Object.values(e).flat());function v(e){return _.map(t=>t.filter(t=>t.experienceKey===e),{skipVoid:!1})}function y(e){return r.map(t=>t[e]||[],{skipVoid:!1})}return{spawn:g,getByExperienceKey:v,getByExperienceId:y,listStore:_}});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}});
@@ -1,400 +0,0 @@
1
- import { n as e, t } from "./rules-logic-CvILqbhz.js";
2
- import "./logger-C44jSdYl.js";
3
- import { a as n, d as r, i, n as a, r as o, s, t as c } from "./nodes-Bmzx3TP_.js";
4
- import { attach as l, combine as u, createApi as d, createDomain as f, createEffect as p, createEvent as m, sample as h, split as g } from "effector";
5
- import { createFactory as _, invoke as v } from "@withease/factories";
6
- //#region src/utils/node-tree/next-reachable-step-nodes.ts
7
- var y = (e, t, r, i, a = /* @__PURE__ */ new Set()) => a.has(r.id) ? [] : (a.add(r.id), n(r) && !i ? [r] : t.filter((e) => e.sourceNodeId === r.id).flatMap((n) => {
8
- let r = e.find((e) => e.id === n.destinationNodeId);
9
- return r ? y(e, t, r, !1, a) : [];
10
- })), b = (e, t, n) => y(e, t, n, !0, /* @__PURE__ */ new Set()), x = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
11
- if (i.has(n.id)) return [-1, -1];
12
- i.add(n.id);
13
- let a = t.filter((e) => e.sourceNodeId === n.id);
14
- if (a.length === 0) return [0, 0];
15
- let o = Infinity, s = -Infinity;
16
- for (let n of a) {
17
- let r = e.find((e) => e.id === n.destinationNodeId);
18
- if (!r) continue;
19
- let [a, c] = x(e, t, r, !1, new Set(i));
20
- a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
21
- }
22
- return o === Infinity ? [-1, -1] : [o, s];
23
- }, S = (e, t, n) => x(e, t, n, !0, /* @__PURE__ */ new Set()), C = (e, t, n, r = /* @__PURE__ */ new Set()) => {
24
- if (r.has(n.id)) return [-1, -1];
25
- if (r.add(n.id), n.type === "origin") return [0, 0];
26
- let i = t.filter((e) => e.destinationNodeId === n.id);
27
- if (i.length === 0) return [-1, -1];
28
- let a = Infinity, o = -Infinity;
29
- for (let n of i) {
30
- let i = e.find((e) => e.id === n.sourceNodeId);
31
- if (!i) continue;
32
- let [s, c] = C(e, t, i, new Set(r));
33
- s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
34
- }
35
- return a === Infinity ? [-1, -1] : [a, o];
36
- }, w = (e, t, n) => C(e, t, n, /* @__PURE__ */ new Set()), T = (e) => e.find((e) => e.type === "origin") || null, E = (e, t, n) => {
37
- if (!e) return T(t);
38
- let r = n.find((t) => t.sourceNodeId === e.id);
39
- return r && t.find((e) => e.id === r.destinationNodeId) || null;
40
- };
41
- //#endregion
42
- //#region src/utils/node-tree/get-next-node-from-condition.ts
43
- async function D(e, t, n, r) {
44
- let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
45
- return n.find((e) => e.id === a?.destinationNodeId);
46
- }
47
- //#endregion
48
- //#region src/entities/experience-instance/experience-instance.ts
49
- var O = f("experience-instance"), k = _(({ client: r, experience: s, target: f, options: _ }) => {
50
- let v = m(), y = m(), x = m(), C = m(), k = m(), A = m(), j = s.componentStore, M = O.store("transitioning"), N = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), P = N.map((e) => e.filter((e) => n(e.node))), F = N.map((e) => e.at(-1)?.node || null), I = u(r.steps.listStore, F, (e, t) => e.find((e) => t && n(t) && e.id === t.stepId) || null), L = u(r.steps.listStore, P, (e, t) => {
51
- let r = t.at(-2);
52
- if (!r || !n(r.node)) return null;
53
- let i = r.node;
54
- return e.find((e) => e.id === i.stepId) || null;
55
- }), R = u(s.treeStore, F, ({ nodes: e, edges: t }, n) => n ? b(e, t, n) : []), z = u(s.treeStore, F, ({ nodes: e, edges: t }, n) => n ? w(e, t, n) : [-1, -1]), B = u(s.treeStore, F, ({ nodes: e, edges: t }, n) => n ? S(e, t, n) : [-1, -1]), V = O.store(!1), H = d(V, {
56
- open: () => !0,
57
- close: () => !1,
58
- toggle: (e) => !e,
59
- set: (e, t) => t
60
- }), ee = p(async () => {
61
- r.history.back({ experienceId: s.id });
62
- }), te = l({
63
- source: s.treeStore,
64
- effect: async (e, t) => {
65
- let i = e.nodes.find((e) => n(e) && e.stepId === t);
66
- i && r.history.push({
67
- experienceId: s.id,
68
- node: i
69
- });
70
- }
71
- }), U = l({
72
- source: F,
73
- effect: (e) => {}
74
- }), W = l({
75
- source: s.treeStore,
76
- effect: async ({ nodes: e }) => T(e)
77
- }), G = l({
78
- source: s.treeStore,
79
- effect: async ({ nodes: e, edges: t }, n) => {
80
- if (i(n)) return E(n, e, t);
81
- }
82
- }), K = l({
83
- source: s.treeStore,
84
- effect: async ({ nodes: e, edges: n, conditions: i }, o) => {
85
- if (!a(o)) return;
86
- let s = i.find((e) => e.id === o.conditionId)?.logic;
87
- return s ? D(!!await t(r, s), o.id, e, n) : void 0;
88
- }
89
- }), q = l({
90
- source: s.treeStore,
91
- effect: async ({ nodes: e, edges: t }, n) => {
92
- if (!c(n)) return;
93
- let i = n.actionKey;
94
- if (!i) {
95
- `${n.id}`;
96
- return;
97
- }
98
- let a = r.actions.getByKey(i).getState();
99
- if (!a) {
100
- `${i}`;
101
- let r = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "false");
102
- return r ? e.find((e) => e.id === r.destinationNodeId) : null;
103
- }
104
- if (typeof a != "function") {
105
- `${i}`;
106
- let r = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "false");
107
- return r ? e.find((e) => e.id === r.destinationNodeId) : null;
108
- }
109
- try {
110
- `${i}`, await a({
111
- ...r.getStateSnapshot(),
112
- args: []
113
- }, { experience: Z });
114
- let o = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "true");
115
- if (!o) return `${n.id}`, null;
116
- let s = e.find((e) => e.id === o.destinationNodeId);
117
- return `${i}${s?.id}`, s || null;
118
- } catch {
119
- `${i}`;
120
- let r = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "false");
121
- if (!r) return `${n.id}`, null;
122
- let a = e.find((e) => e.id === r.destinationNodeId);
123
- return `${i}${a?.id}`, a || null;
124
- }
125
- }
126
- }), ne = p((e) => {
127
- o(e) && r.experiences.launch({ key: e.experienceKey });
128
- }), J = l({
129
- source: [F, s.treeStore],
130
- effect: async ([e, { nodes: t, edges: n }]) => E(e, t, n)
131
- }), Y = l({
132
- source: [F, s.treeStore],
133
- effect: async ([e, { nodes: t, edges: n }]) => E(e, t, n)
134
- }), re = p((e) => {
135
- r.history.push({
136
- experienceId: s.id,
137
- node: e
138
- });
139
- }), X = l({
140
- source: s.configStore,
141
- effect: async ({ initializeOpenLogic: n }) => _?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : _.initialiseOpen
142
- }), Z = Object.freeze({
143
- id: Math.random().toString(36).substring(7),
144
- experienceKey: s.key,
145
- experienceId: s.id,
146
- configStore: s.configStore,
147
- target: f,
148
- componentStore: j,
149
- stateStore: M,
150
- isOpenStore: V,
151
- open: H.open,
152
- close: H.close,
153
- toggleOpen: H.toggle,
154
- setOpen: H.set,
155
- treeStore: s.treeStore,
156
- currentNodeStore: F,
157
- currentStepStore: I,
158
- previousStepStore: L,
159
- nextReachableStepNodesStore: R,
160
- stepsToOriginStore: z,
161
- stepsToLeafStore: B,
162
- goToNextStep: y,
163
- goToPreviousStep: x,
164
- goToStepById: C,
165
- stepsHistoryStore: P
166
- }), Q = m(), $ = m();
167
- return h({
168
- clock: F,
169
- target: Q
170
- }), h({
171
- clock: Q,
172
- filter: (e) => e === null,
173
- target: W
174
- }), h({
175
- clock: Q,
176
- filter: (e) => e !== null,
177
- target: $
178
- }), g({
179
- source: $,
180
- match: (e) => a(e) ? "condition" : n(e) ? "step" : o(e) ? "launchExperience" : i(e) ? "origin" : c(e) ? "action" : "other",
181
- cases: {
182
- origin: G,
183
- condition: K,
184
- step: U,
185
- launchExperience: ne,
186
- action: q,
187
- __: m()
188
- }
189
- }), h({
190
- clock: [
191
- K.doneData,
192
- G.doneData,
193
- W.doneData,
194
- Y.doneData,
195
- J.doneData,
196
- q.doneData
197
- ],
198
- filter: Boolean,
199
- target: re
200
- }), h({
201
- clock: y,
202
- target: Y
203
- }), h({
204
- clock: y,
205
- source: I,
206
- filter: Boolean,
207
- target: r.eventBus.prepend((e) => ({
208
- type: "step_submit",
209
- step: e,
210
- experience: Z
211
- }))
212
- }), h({
213
- clock: Y.done,
214
- source: I,
215
- filter: Boolean,
216
- target: r.eventBus.prepend((e) => ({
217
- type: "step_submit_success",
218
- step: e,
219
- experience: Z
220
- }))
221
- }), h({
222
- clock: Y.fail,
223
- source: I,
224
- filter: Boolean,
225
- target: r.eventBus.prepend((e) => ({
226
- type: "step_submit_error",
227
- step: e,
228
- experience: Z
229
- }))
230
- }), h({
231
- clock: x,
232
- target: ee
233
- }), h({
234
- clock: C,
235
- target: te
236
- }), h({
237
- source: u([
238
- K.pending,
239
- G.pending,
240
- W.pending,
241
- Y.pending
242
- ]),
243
- fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
244
- target: M
245
- }), h({
246
- clock: U.doneData,
247
- source: I,
248
- filter: Boolean,
249
- target: r.eventBus.prepend((e) => ({
250
- type: "step_enter",
251
- step: e,
252
- experience: Z
253
- }))
254
- }), h({
255
- clock: A,
256
- target: X
257
- }), h({
258
- source: X.doneData,
259
- fn: Boolean,
260
- target: V
261
- }), h({
262
- source: F,
263
- clock: v,
264
- filter: (e) => e ? i(e) : !0,
265
- target: J
266
- }), h({
267
- source: V,
268
- filter: Boolean,
269
- target: v
270
- }), h({
271
- source: V,
272
- filter: Boolean,
273
- target: r.eventBus.prepend(() => ({
274
- type: "experience_open",
275
- experience: Z
276
- }))
277
- }), h({
278
- source: V,
279
- filter: (e) => !e,
280
- target: r.eventBus.prepend(() => ({
281
- type: "experience_close",
282
- experience: Z
283
- }))
284
- }), h({
285
- clock: k,
286
- target: [A]
287
- }), k(), Z;
288
- });
289
- function A(e) {
290
- return v(k, e);
291
- }
292
- var j = _(({ client: e }) => {
293
- let t = O.store({}), n = m(), i = m(), a = m(), o = d(t, {
294
- register(e, t) {
295
- let n = [...e[t.experienceId] ?? []];
296
- return n.push(t), {
297
- ...e,
298
- [t.experienceId]: n
299
- };
300
- },
301
- unregister(e, t) {
302
- let n = t.experienceId, r = e[n]?.filter((e) => e !== t);
303
- return {
304
- ...e,
305
- [n]: r ?? []
306
- };
307
- }
308
- }), c = p(({ experience: t, target: n, options: r }) => A({
309
- client: e,
310
- experience: t,
311
- target: n,
312
- options: r
313
- })), l = p((e) => {
314
- o.register(e);
315
- }), u = p((e) => {
316
- e.target && r(e.target, () => {
317
- a(e);
318
- });
319
- }), f = p((e) => {
320
- o.unregister(e);
321
- }), g = p(async (e) => {
322
- let t = e.componentStore.getState();
323
- if (!t) return;
324
- let n = t.frameworkStore.getState();
325
- if (!n) return;
326
- let r = e.target?.shadowRoot;
327
- if (r) try {
328
- await n.unRender(r);
329
- } catch {}
330
- }), _ = p((t) => {
331
- let n = t.componentStore.getState();
332
- if (!n) return;
333
- let r = n.frameworkStore.getState();
334
- if (!r) {
335
- `${n.name}`;
336
- return;
337
- }
338
- let i = t.target;
339
- if (!i) {
340
- `${t.experienceId}`;
341
- return;
342
- }
343
- try {
344
- let a = i.shadowRoot ?? s(i);
345
- r.render(a, n.component, e, t);
346
- } catch {}
347
- });
348
- h({
349
- clock: n,
350
- target: c
351
- }), h({
352
- clock: a,
353
- target: g
354
- }), h({
355
- clock: g.finally,
356
- fn: ({ params: e }) => e,
357
- target: f
358
- }), h({
359
- clock: c.doneData,
360
- target: [
361
- l,
362
- u,
363
- i
364
- ]
365
- }), h({
366
- clock: c.doneData,
367
- target: e.eventBus.prepend((e) => ({
368
- type: "experience_initialize",
369
- experience: e
370
- }))
371
- }), h({
372
- clock: i,
373
- target: _
374
- });
375
- function v(e, t, r) {
376
- n({
377
- experience: e,
378
- target: t,
379
- options: r
380
- });
381
- }
382
- let y = t.map((e) => Object.values(e).flat());
383
- function b(e) {
384
- return y.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
385
- }
386
- function x(e) {
387
- return t.map((t) => t[e] || [], { skipVoid: !1 });
388
- }
389
- return {
390
- spawn: v,
391
- getByExperienceKey: b,
392
- getByExperienceId: x,
393
- listStore: y
394
- };
395
- });
396
- function M(e) {
397
- return v(j, e);
398
- }
399
- //#endregion
400
- export { M as n, A as t };