@picked/client 0.0.1-dev.1777856271317 → 0.0.1-dev.1777869768355
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/{api-dOWgI8zV.cjs → api-DT7ImnBi.cjs} +1 -1
- package/dist/{api-DaHz97Mz.js → api-Dx9PpWfN.js} +1 -1
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/create-experience/index.js +1 -1
- package/dist/cjs/plugins/dynamic-experiences/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/server/index.js +1 -1
- package/dist/docs/api/authentication.md +376 -0
- package/dist/docs/api/authorization-and-scopes.md +262 -0
- package/dist/docs/api/error-handling.md +211 -0
- package/dist/docs/api/index.md +172 -11
- package/dist/docs/api/pagination.md +176 -0
- package/dist/docs/image-optimisation-service.md +72 -0
- package/dist/docs/pickedql/data-sources.md +2 -2
- package/dist/docs/pickedql/schema.md +2 -2
- package/dist/docs/sdk/plugins/dynamic-experiences.md +2 -2
- package/dist/docs/workspaces.mdx +60 -1
- package/dist/esm/form/index.js +40 -33
- package/dist/esm/index.js +373 -219
- package/dist/esm/plugins/create-experience/index.js +1 -1
- package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
- package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
- package/dist/esm/plugins/history-browser-storage/index.js +4 -4
- package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
- package/dist/esm/server/index.js +1 -1
- package/dist/experience-instance-BDTNGT8a.cjs +1 -0
- package/dist/experience-instance-CWYRLfFM.js +493 -0
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +19 -4
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/form/create-form.d.ts +55 -0
- package/dist/types/form/create-form.d.ts.map +1 -1
- package/dist/types/picked.d.ts +8 -4
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts +14 -0
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
- package/package.json +1 -11
- package/dist/cjs/plugins/dom-observer/index.js +0 -1
- package/dist/docs/reference/index.md +0 -11
- package/dist/docs/tooling/index.md +0 -19
- package/dist/esm/plugins/dom-observer/index.js +0 -107
- package/dist/experience-BhteyYBl.cjs +0 -1
- package/dist/experience-CoMdlvyn.js +0 -136
- package/dist/experience-instance-CZDcicPj.cjs +0 -1
- package/dist/experience-instance-IkIw31Cg.js +0 -387
- package/dist/nodes-ChVU1VZO.js +0 -101
- package/dist/nodes-DDDs-rC2.cjs +0 -1
- package/dist/types/plugins/dom-observer/index.d.ts +0 -3
- package/dist/types/plugins/dom-observer/index.d.ts.map +0 -1
- package/dist/types/plugins/dom-observer/plugin.d.ts +0 -51
- package/dist/types/plugins/dom-observer/plugin.d.ts.map +0 -1
- /package/dist/docs/{tooling/chrome-extension.md → chrome-extension.md} +0 -0
- /package/dist/docs/{tooling/gtm-template.md → gtm-template.md} +0 -0
- /package/dist/docs/{tooling/mcp.md → mcp.md} +0 -0
- /package/dist/docs/{tooling/vite-plugin.md → vite-plugin.md} +0 -0
- /package/dist/{id-Bbodazn8.cjs → id-Bv44ilEo.cjs} +0 -0
- /package/dist/{id-B-N2zNbS.js → id-CRqy981z.js} +0 -0
- /package/dist/{storage-hOHCCXvP.js → storage-6Xk0uAxB.js} +0 -0
- /package/dist/{storage-BXSlLTRa.cjs → storage-B6lQtc4-.cjs} +0 -0
|
@@ -69,6 +69,61 @@ export interface FormInstance<TFieldKeys extends string = string> {
|
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
|
71
71
|
export declare function getEventValue(e: Event): FieldValue | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Extracts the staged value for a field from a form event. For a multi-value
|
|
74
|
+
* checkbox group, toggles the clicked option's value into or out of
|
|
75
|
+
* `currentValue` rather than reading the DOM — under React-controlled
|
|
76
|
+
* checkboxes, reconciliation reverts `el.checked` to match the prop before
|
|
77
|
+
* the change event fires, so any DOM-based read returns the pre-toggle
|
|
78
|
+
* state. For `<select multiple>`, reads `el.selectedOptions` (React does
|
|
79
|
+
* not race the change event there). Falls back to {@link getEventValue}
|
|
80
|
+
* for single-value fields and unrelated targets.
|
|
81
|
+
*
|
|
82
|
+
* For multi-checkbox events other than `change`: returns `undefined` for
|
|
83
|
+
* `input` so the caller skips dispatch (both `input` and `change` fire on a
|
|
84
|
+
* single click; only `change` should toggle, otherwise the toggle would run
|
|
85
|
+
* twice and cancel out). Returns `currentValue` (coerced to an array) for
|
|
86
|
+
* any non-change event so the caller can still dispatch — keeping
|
|
87
|
+
* touched-tracking and required-validation on `blur` working.
|
|
88
|
+
*
|
|
89
|
+
* Not re-exported from the form barrel; intended for use by the form's own
|
|
90
|
+
* field handlers and for direct unit testing.
|
|
91
|
+
*
|
|
92
|
+
* @param {Event} e - The DOM event from a form input.
|
|
93
|
+
* @param {Field} field - The field whose handler received the event.
|
|
94
|
+
* @param {FieldValue | undefined} currentValue - The field's currently staged or committed value.
|
|
95
|
+
* @returns {FieldValue | undefined} The value to stage, or undefined if the caller should skip dispatch.
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* input.addEventListener('change', (e) => {
|
|
99
|
+
* const value = getStagedEventValue(e, field, field.value)
|
|
100
|
+
* })
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare function getStagedEventValue(e: Event, field: Field, currentValue: FieldValue | undefined): FieldValue | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Builds a DOM event handler that derives the next staged value via
|
|
106
|
+
* {@link getStagedEventValue} and dispatches the given event-callable when
|
|
107
|
+
* the helper returns a defined value. Skips dispatch if the helper returns
|
|
108
|
+
* undefined (e.g. `input` events on multi-select checkboxes, where dispatch
|
|
109
|
+
* is owned by the change event to avoid double-toggling).
|
|
110
|
+
*
|
|
111
|
+
* Not re-exported from the form barrel; intended for use by `createForm`
|
|
112
|
+
* and for direct unit testing.
|
|
113
|
+
*
|
|
114
|
+
* @param {Field} field - The field bound to the handler.
|
|
115
|
+
* @param {FieldValue | undefined} value - The field's currently staged or committed value.
|
|
116
|
+
* @param {EventCallable<{ fieldKey: string; value: FieldValue }>} dispatch - The event-callable to fire when the helper returns a value.
|
|
117
|
+
* @returns {(e: Event) => void} The handler to attach to a DOM event.
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const onChange = createFieldHandler(field, value, fieldChangeEvent)
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function createFieldHandler(field: Field, value: FieldValue | undefined, dispatch: EventCallable<{
|
|
124
|
+
fieldKey: string;
|
|
125
|
+
value: FieldValue;
|
|
126
|
+
}>): (e: Event) => void;
|
|
72
127
|
/**
|
|
73
128
|
* Creates a form instance tied to a set of field keys.
|
|
74
129
|
* Handles field evaluation, form submission, data transformation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../../src/form/create-form.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,KAAK,EAEX,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAA;AAEjC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,8DAA8D;IAC9D,KAAK,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,4DAA4D;IAC5D,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;QAC7B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QACpC,QAAQ,EAAE,OAAO,CAAA;QACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;QAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;QAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;KAC3B,CAAA;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,kBAAkB,CAAA;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM;IAC9D,mDAAmD;IACnD,IAAI,EAAE;QACJ,0DAA0D;QAC1D,KAAK,EAAE;YACL,QAAQ,EAAE,aAAa,CAAC,4BAA4B,CAAC,CAAA;SACtD,CAAA;QACD,6EAA6E;QAC7E,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAA;QAChC,iEAAiE;QACjE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1B,4FAA4F;QAC5F,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAA;QACpE,oFAAoF;QACpF,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAA;QAChE,gFAAgF;QAChF,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,MAAM,IAAI,CAAA;KACjD,CAAA;IACD,+FAA+F;IAC/F,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;CAC3B;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAW9D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GACzB,YAAY,
|
|
1
|
+
{"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../../src/form/create-form.ts"],"names":[],"mappings":"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"}
|
package/dist/types/picked.d.ts
CHANGED
|
@@ -33,23 +33,27 @@ export declare class Picked {
|
|
|
33
33
|
readonly searchParams: import('.').PickedSearchParams;
|
|
34
34
|
readonly history: {
|
|
35
35
|
push: import('effector').EventCallable<{
|
|
36
|
+
instanceId: string;
|
|
36
37
|
experienceId: string;
|
|
37
38
|
node: import('.').ExperienceNode;
|
|
38
39
|
}>;
|
|
39
40
|
replace: import('effector').EventCallable<{
|
|
41
|
+
instanceId: string;
|
|
40
42
|
experienceId: string;
|
|
41
43
|
node: import('.').ExperienceNode;
|
|
42
44
|
}>;
|
|
43
45
|
back: import('effector').EventCallable<{
|
|
44
|
-
|
|
46
|
+
instanceId: string;
|
|
45
47
|
}>;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
restoreSnapshots: import('effector').EventCallable<{
|
|
49
|
+
snapshots: Record<string, import('.').HistoryEntry[]>;
|
|
48
50
|
}>;
|
|
49
|
-
|
|
51
|
+
seedInstanceFromSnapshot: import('effector').EventCallable<{
|
|
52
|
+
instanceId: string;
|
|
50
53
|
experienceId: string;
|
|
51
54
|
}>;
|
|
52
55
|
entriesStore: import('effector').Store<import('.').HistoryEntry[]>;
|
|
56
|
+
snapshotStore: import('effector').Store<Record<string, import('.').HistoryEntry[]>>;
|
|
53
57
|
};
|
|
54
58
|
readonly components: {
|
|
55
59
|
register: (name: string, component: AdaptedComponent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,EAEf,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAe,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAKzD,OAAO,EAAsB,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,gCAAgC,CAAA;AAKrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,qBAAa,MAAM;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,0FAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,OAAO,UAAQ;IAEf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwC;IAEzE,SAAgB,QAAQ,oDAAiC;IACzD,SAAgB,MAAM,EAAE,iBAAiB,CAAA;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B,QAAQ,CAAC,YAAY,iCAAoB;IAEzC,QAAQ,CAAC,OAAO
|
|
1
|
+
{"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,19 @@ import { Plugin } from '../../entities/plugin/plugin';
|
|
|
3
3
|
export interface HistoryBrowserStoragePlugin {
|
|
4
4
|
storage?: 'local' | 'session';
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Picked plugin that persists per-experience history snapshots into
|
|
8
|
+
* `localStorage` (default) or `sessionStorage` and restores them on the
|
|
9
|
+
* client `load` event. Snapshots are keyed by `experienceId`; when a fresh
|
|
10
|
+
* `ExperienceInstance` spawns it reads its experience's snapshot via the
|
|
11
|
+
* history entity's `seedInstanceFromSnapshot` event and resumes from the
|
|
12
|
+
* last step (trailing action/condition terminals are dropped at seed time).
|
|
13
|
+
*
|
|
14
|
+
* @param {HistoryBrowserStoragePlugin} [options] - Plugin options.
|
|
15
|
+
* @param {'local' | 'session'} [options.storage] - Backing store.
|
|
16
|
+
* @returns {Plugin} A Picked client plugin.
|
|
17
|
+
* @example
|
|
18
|
+
* client.use(historyBrowserStoragePlugin({ storage: 'session' }))
|
|
19
|
+
*/
|
|
6
20
|
export declare const historyBrowserStoragePlugin: ({ storage, }?: HistoryBrowserStoragePlugin) => Plugin;
|
|
7
21
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/history-browser-storage/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAM1D,cAAc;AACd,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,eAAO,MAAM,2BAA2B,GAAI,eAEzC,2BAAgC,KAAG,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/history-browser-storage/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAM1D,cAAc;AACd,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,GAAI,eAEzC,2BAAgC,KAAG,MA+BrC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@picked/client",
|
|
3
|
-
"version": "0.0.1-dev.
|
|
3
|
+
"version": "0.0.1-dev.1777869768355",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@withease/factories": "^1.0.5"
|
|
6
6
|
},
|
|
@@ -89,12 +89,6 @@
|
|
|
89
89
|
"require": "./dist/cjs/plugins/dynamic-experiences/index.js",
|
|
90
90
|
"default": "./dist/esm/plugins/dynamic-experiences/index.js"
|
|
91
91
|
},
|
|
92
|
-
"./plugins/dom-observer": {
|
|
93
|
-
"types": "./dist/types/plugins/dom-observer/index.d.ts",
|
|
94
|
-
"import": "./dist/esm/plugins/dom-observer/index.js",
|
|
95
|
-
"require": "./dist/cjs/plugins/dom-observer/index.js",
|
|
96
|
-
"default": "./dist/esm/plugins/dom-observer/index.js"
|
|
97
|
-
},
|
|
98
92
|
"./form": {
|
|
99
93
|
"types": "./dist/types/form/index.d.ts",
|
|
100
94
|
"import": "./dist/esm/form/index.js",
|
|
@@ -204,10 +198,6 @@
|
|
|
204
198
|
"path": "dist/esm/plugins/web-components/index.js",
|
|
205
199
|
"limit": "10 kB"
|
|
206
200
|
},
|
|
207
|
-
{
|
|
208
|
-
"path": "dist/esm/plugins/dom-observer/index.js",
|
|
209
|
-
"limit": "5 kB"
|
|
210
|
-
},
|
|
211
201
|
{
|
|
212
202
|
"path": "dist/esm/form/index.js",
|
|
213
203
|
"limit": "5 kB"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../logger-fbvQC40v.cjs`),t=require(`../../../supports-Dsjg-82e.cjs`),n=require(`../../../nodes-DDDs-rC2.cjs`),r=require(`../../../experience-BhteyYBl.cjs`);var i=new WeakSet,a=()=>({name:`dom-observer`,setup:e=>{o()&&(i.has(e)||(i.add(e),s(e)))}});function o(){return!(!t.d()||!t.r()||typeof MutationObserver!=`function`||typeof requestAnimationFrame!=`function`)}function s(e){if(document.body){c(e);return}n.c().then(()=>{document.body&&c(e)})}function c(t){let n=[],i=``,a=new Map,o=new Set,s=new Map,c=new Set,d=()=>{let e=new Set;for(let n of t.experiences.listStore.getState()){let t=n.configStore.getState().targetSelectors;for(let n of t){if(typeof n.selector!=`string`)continue;let t=n.selector.trim();if(!(t.length===0||e.has(t))){if(!l(t)){`${t}`;continue}e.add(t)}}}n=Array.from(e),i=n.join(`,`)},f=e=>{let t=new Set(e.map(e=>e.id));for(let[e,n]of a)t.has(e)||(n(),a.delete(e));for(let t of e)a.has(t.id)||a.set(t.id,t.configStore.watch(d))};t.experiences.listStore.watch(e=>{f(e)}),t.experienceInstances.listStore.watch(e=>{for(let t of e)o.add(t.experienceId),s.delete(t.experienceId),c.delete(t.experienceId)});let p=!1,m=!1,h,g=()=>{if(o.size===0)return;let e=new Set;for(let n of t.experienceInstances.listStore.getState())e.add(n.experienceId);for(let n of o){if(e.has(n)){s.delete(n);continue}if(c.has(n))continue;let r=(s.get(n)??0)+1;r>=2?(t.history.clearForExperience({experienceId:n}),c.add(n),s.delete(n)):s.set(n,r)}},_=()=>{if(p){m=!0;return}p=!0;try{g()}catch{}Promise.resolve(r.n(t)).catch(t=>e.t(`error`,t)).finally(()=>{p=!1,m&&(m=!1,v())})},v=()=>{h===void 0&&(h=requestAnimationFrame(()=>{h=void 0,_()}))};new MutationObserver(e=>{if(i.length!==0){for(let t of e)if(t.type===`childList`&&u(t.addedNodes,i)){v();return}}}).observe(document.body,{childList:!0,subtree:!0})}function l(e){try{return document.createDocumentFragment().querySelector(e),!0}catch{return!1}}function u(e,t){if(t.length===0)return!1;for(let n of Array.from(e))if(n instanceof Element&&(n.matches(t)||n.querySelector(t)!==null))return!0;return!1}exports.domObserverPlugin=a;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
layout: docs
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Tooling
|
|
6
|
-
|
|
7
|
-
Build tools and developer utilities for working with Picked.
|
|
8
|
-
|
|
9
|
-
## Vite Plugin
|
|
10
|
-
|
|
11
|
-
The [`@picked/vite-plugin-picked`](/tooling/vite-plugin) package integrates Picked into your Vite-based project. It fetches your project configuration at build time and provides a local launcher for previewing experiences during development.
|
|
12
|
-
|
|
13
|
-
[Get started with the Vite Plugin →](/tooling/vite-plugin)
|
|
14
|
-
|
|
15
|
-
## Chrome Extension
|
|
16
|
-
|
|
17
|
-
The [Picked Developer Tools](/tooling/chrome-extension) extension adds a dedicated panel to Chrome DevTools for inspecting and debugging your Picked integration on any page running the SDK.
|
|
18
|
-
|
|
19
|
-
[Get started with the Chrome Extension →](/tooling/chrome-extension)
|
|
@@ -1,107 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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}});
|
|
@@ -1,136 +0,0 @@
|
|
|
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 };
|
|
@@ -1 +0,0 @@
|
|
|
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}});
|