@uniformdev/context-vue 16.0.1-nuxt.181 → 16.0.1-nuxt.187
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/index.d.ts +240 -37
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +3 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,49 +1,47 @@
|
|
|
1
1
|
import * as vue_demi from 'vue-demi';
|
|
2
|
-
import {
|
|
3
|
-
import { TestVariant,
|
|
4
|
-
|
|
5
|
-
declare const Test: Component;
|
|
6
|
-
|
|
7
|
-
declare const UniformContextProvider: Component;
|
|
8
|
-
|
|
9
|
-
declare const Personalize: Component;
|
|
10
|
-
|
|
11
|
-
declare const PersonalizeStandard: Component;
|
|
12
|
-
|
|
13
|
-
declare const Track: Component;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Tracks visitor behavior by adding enrichment score when they are shown a route with this component on it.
|
|
17
|
-
*
|
|
18
|
-
* NOTE: if you wish to track on the visitor seeing the content in the browser viewport instead,
|
|
19
|
-
* use Track instead of TrackFragment.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
declare const TrackSlot: Component;
|
|
2
|
+
import { ConcreteComponent, PropType } from 'vue-demi';
|
|
3
|
+
import { TestVariant, Context, PersonalizedVariant, EnrichmentData, Quirks, ScoreVector } from '@uniformdev/context';
|
|
4
|
+
import * as _uniformdev_context_dist_types_17d56dd5 from '@uniformdev/context/dist/types-17d56dd5';
|
|
23
5
|
|
|
24
6
|
interface TestComponentProps {
|
|
25
7
|
/** Name of the test that is running. */
|
|
26
8
|
name: string;
|
|
27
9
|
/** Variation list that this test will selected from. */
|
|
28
10
|
variations: TestVariant[];
|
|
29
|
-
/**
|
|
30
|
-
* Determines what should be rendered if testing is in a "loading" state.
|
|
31
|
-
* default: shows the default variation while loading
|
|
32
|
-
* none: shows nothing while loading
|
|
33
|
-
* Vue component: shows the component while loading
|
|
34
|
-
*/
|
|
35
|
-
loadingMode?: 'default' | 'none' | Component;
|
|
36
11
|
/** A Vue component to use to render the test variant. */
|
|
37
|
-
component
|
|
12
|
+
component: ConcreteComponent<TestVariant>;
|
|
38
13
|
}
|
|
39
|
-
declare
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
14
|
+
declare const Test: vue_demi.DefineComponent<{
|
|
15
|
+
name: {
|
|
16
|
+
type: PropType<string>;
|
|
17
|
+
required: true;
|
|
18
|
+
};
|
|
19
|
+
variations: {
|
|
20
|
+
type: PropType<TestVariant[]>;
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
component: {
|
|
24
|
+
type: PropType<ConcreteComponent<TestVariant, any, any, vue_demi.ComputedOptions, vue_demi.MethodOptions>>;
|
|
25
|
+
required: true;
|
|
26
|
+
};
|
|
27
|
+
}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
30
|
+
name: {
|
|
31
|
+
type: PropType<string>;
|
|
32
|
+
required: true;
|
|
33
|
+
};
|
|
34
|
+
variations: {
|
|
35
|
+
type: PropType<TestVariant[]>;
|
|
36
|
+
required: true;
|
|
37
|
+
};
|
|
38
|
+
component: {
|
|
39
|
+
type: PropType<ConcreteComponent<TestVariant, any, any, vue_demi.ComputedOptions, vue_demi.MethodOptions>>;
|
|
40
|
+
required: true;
|
|
41
|
+
};
|
|
42
|
+
}>>, {}>;
|
|
45
43
|
|
|
46
|
-
declare type VariantOutputType = 'edge' | 'standard'
|
|
44
|
+
declare type VariantOutputType = 'edge' | 'standard';
|
|
47
45
|
declare type UniformContextProps = {
|
|
48
46
|
/** The configured Uniform Context instance to provide */
|
|
49
47
|
context: Context;
|
|
@@ -69,6 +67,211 @@ declare function onRouteChange(context: Context): void;
|
|
|
69
67
|
declare const useUniformContext: () => UniformContextProps;
|
|
70
68
|
declare function isUsingUniformContext(): boolean;
|
|
71
69
|
|
|
70
|
+
declare const UniformContextProvider: vue_demi.DefineComponent<{
|
|
71
|
+
context: {
|
|
72
|
+
type: PropType<Context>;
|
|
73
|
+
required: true;
|
|
74
|
+
};
|
|
75
|
+
outputType: {
|
|
76
|
+
type: PropType<VariantOutputType | undefined>;
|
|
77
|
+
default: string;
|
|
78
|
+
};
|
|
79
|
+
trackRouteOnRender: {
|
|
80
|
+
type: PropType<boolean | undefined>;
|
|
81
|
+
default: boolean;
|
|
82
|
+
};
|
|
83
|
+
}, () => (vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
84
|
+
[key: string]: any;
|
|
85
|
+
}> | (() => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
86
|
+
[key: string]: any;
|
|
87
|
+
}>))[], unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
88
|
+
context: {
|
|
89
|
+
type: PropType<Context>;
|
|
90
|
+
required: true;
|
|
91
|
+
};
|
|
92
|
+
outputType: {
|
|
93
|
+
type: PropType<VariantOutputType | undefined>;
|
|
94
|
+
default: string;
|
|
95
|
+
};
|
|
96
|
+
trackRouteOnRender: {
|
|
97
|
+
type: PropType<boolean | undefined>;
|
|
98
|
+
default: boolean;
|
|
99
|
+
};
|
|
100
|
+
}>>, {
|
|
101
|
+
outputType: VariantOutputType | undefined;
|
|
102
|
+
trackRouteOnRender: boolean | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
|
|
105
|
+
declare type PersonalizedVariationComponentProps = PersonalizedVariant & {
|
|
106
|
+
personalizationResult: {
|
|
107
|
+
variation: PersonalizedVariant;
|
|
108
|
+
personalizationOccurred: boolean;
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
declare type PersonalizedVariationComponent = (variation: PersonalizedVariationComponentProps) => ConcreteComponent<any>;
|
|
112
|
+
declare type PersonalizeComponentProps = {
|
|
113
|
+
/**
|
|
114
|
+
* Name of the personalized placement. Should be unique to this placement location and set of variants.
|
|
115
|
+
* This name is emitted to analytics after personalization executes.
|
|
116
|
+
*/
|
|
117
|
+
name: string;
|
|
118
|
+
/** The possible variations of the content to render depending on personalization conditions */
|
|
119
|
+
variations: PersonalizedVariant[];
|
|
120
|
+
/** A Vue component to use to render a selected variant. */
|
|
121
|
+
component: PersonalizedVariationComponent;
|
|
122
|
+
/** The number of variations to select. Use for personalized lists where the `count` most relevant should be shown. */
|
|
123
|
+
count?: number;
|
|
124
|
+
};
|
|
125
|
+
declare const Personalize: vue_demi.DefineComponent<{
|
|
126
|
+
name: {
|
|
127
|
+
type: PropType<string>;
|
|
128
|
+
required: true;
|
|
129
|
+
};
|
|
130
|
+
variations: {
|
|
131
|
+
type: PropType<PersonalizedVariant[]>;
|
|
132
|
+
required: true;
|
|
133
|
+
};
|
|
134
|
+
component: {
|
|
135
|
+
type: PropType<PersonalizedVariationComponent>;
|
|
136
|
+
required: true;
|
|
137
|
+
};
|
|
138
|
+
count: {
|
|
139
|
+
type: PropType<number | undefined>;
|
|
140
|
+
default: number;
|
|
141
|
+
};
|
|
142
|
+
}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
143
|
+
[key: string]: any;
|
|
144
|
+
}>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
145
|
+
name: {
|
|
146
|
+
type: PropType<string>;
|
|
147
|
+
required: true;
|
|
148
|
+
};
|
|
149
|
+
variations: {
|
|
150
|
+
type: PropType<PersonalizedVariant[]>;
|
|
151
|
+
required: true;
|
|
152
|
+
};
|
|
153
|
+
component: {
|
|
154
|
+
type: PropType<PersonalizedVariationComponent>;
|
|
155
|
+
required: true;
|
|
156
|
+
};
|
|
157
|
+
count: {
|
|
158
|
+
type: PropType<number | undefined>;
|
|
159
|
+
default: number;
|
|
160
|
+
};
|
|
161
|
+
}>>, {
|
|
162
|
+
count: number | undefined;
|
|
163
|
+
}>;
|
|
164
|
+
|
|
165
|
+
declare const PersonalizeStandard: vue_demi.DefineComponent<{
|
|
166
|
+
name: {
|
|
167
|
+
type: PropType<string>;
|
|
168
|
+
required: true;
|
|
169
|
+
};
|
|
170
|
+
variations: {
|
|
171
|
+
type: PropType<_uniformdev_context_dist_types_17d56dd5.ad[]>;
|
|
172
|
+
required: true;
|
|
173
|
+
};
|
|
174
|
+
component: {
|
|
175
|
+
type: PropType<PersonalizedVariationComponent>;
|
|
176
|
+
required: true;
|
|
177
|
+
};
|
|
178
|
+
count: {
|
|
179
|
+
type: PropType<number | undefined>;
|
|
180
|
+
default: number;
|
|
181
|
+
};
|
|
182
|
+
}, () => (vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
183
|
+
[key: string]: any;
|
|
184
|
+
}> | vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
185
|
+
[key: string]: any;
|
|
186
|
+
}>[][])[], unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
187
|
+
name: {
|
|
188
|
+
type: PropType<string>;
|
|
189
|
+
required: true;
|
|
190
|
+
};
|
|
191
|
+
variations: {
|
|
192
|
+
type: PropType<_uniformdev_context_dist_types_17d56dd5.ad[]>;
|
|
193
|
+
required: true;
|
|
194
|
+
};
|
|
195
|
+
component: {
|
|
196
|
+
type: PropType<PersonalizedVariationComponent>;
|
|
197
|
+
required: true;
|
|
198
|
+
};
|
|
199
|
+
count: {
|
|
200
|
+
type: PropType<number | undefined>;
|
|
201
|
+
default: number;
|
|
202
|
+
};
|
|
203
|
+
}>>, {
|
|
204
|
+
count: number | undefined;
|
|
205
|
+
}>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Tracks visitor behavior by adding enrichment score when they view content wrapped in this component.
|
|
209
|
+
* When the Track component is sufficiently in the viewport, it will trigger the enrichment values specified
|
|
210
|
+
* in `behavior` to the current visitor. If the browser does not support IntersectionObserver, the behavior will
|
|
211
|
+
* be triggered immediately on page load instead.
|
|
212
|
+
*
|
|
213
|
+
* NOTE: this component necessarily renders a wrapping tag to attach the IntersectionObserver to; this can result
|
|
214
|
+
* in DOM changes when personalization is added. If that's undesirable use TrackSlot instead which tracks
|
|
215
|
+
* only on page load, but does not render a wrapping tag.
|
|
216
|
+
*/
|
|
217
|
+
declare const Track: vue_demi.DefineComponent<{
|
|
218
|
+
behavior: {
|
|
219
|
+
type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
|
|
220
|
+
};
|
|
221
|
+
tagName: {
|
|
222
|
+
type: PropType<string | undefined>;
|
|
223
|
+
default: string;
|
|
224
|
+
};
|
|
225
|
+
disableVisibilityTrigger: {
|
|
226
|
+
type: PropType<boolean | undefined>;
|
|
227
|
+
default: boolean;
|
|
228
|
+
};
|
|
229
|
+
threshold: {
|
|
230
|
+
type: PropType<number | number[] | undefined>;
|
|
231
|
+
default: number;
|
|
232
|
+
};
|
|
233
|
+
}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
234
|
+
[key: string]: any;
|
|
235
|
+
}>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
236
|
+
behavior: {
|
|
237
|
+
type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
|
|
238
|
+
};
|
|
239
|
+
tagName: {
|
|
240
|
+
type: PropType<string | undefined>;
|
|
241
|
+
default: string;
|
|
242
|
+
};
|
|
243
|
+
disableVisibilityTrigger: {
|
|
244
|
+
type: PropType<boolean | undefined>;
|
|
245
|
+
default: boolean;
|
|
246
|
+
};
|
|
247
|
+
threshold: {
|
|
248
|
+
type: PropType<number | number[] | undefined>;
|
|
249
|
+
default: number;
|
|
250
|
+
};
|
|
251
|
+
}>>, {
|
|
252
|
+
tagName: string | undefined;
|
|
253
|
+
disableVisibilityTrigger: boolean | undefined;
|
|
254
|
+
threshold: number | number[] | undefined;
|
|
255
|
+
}>;
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Tracks visitor behavior by adding enrichment score when they are shown a route with this component on it.
|
|
259
|
+
*
|
|
260
|
+
* NOTE: if you wish to track on the visitor seeing the content in the browser viewport instead,
|
|
261
|
+
* use Track instead of TrackFragment.
|
|
262
|
+
*/
|
|
263
|
+
declare const TrackSlot: vue_demi.DefineComponent<{
|
|
264
|
+
behavior: {
|
|
265
|
+
type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
|
|
266
|
+
};
|
|
267
|
+
}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
268
|
+
[key: string]: any;
|
|
269
|
+
}>, unknown, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, Record<string, any>, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{
|
|
270
|
+
behavior: {
|
|
271
|
+
type: PropType<EnrichmentData | EnrichmentData[] | undefined>;
|
|
272
|
+
};
|
|
273
|
+
}>>, {}>;
|
|
274
|
+
|
|
72
275
|
declare const provideIsPersonalized: (isPersonalized?: boolean) => void;
|
|
73
276
|
declare const useIsPersonalized: () => boolean;
|
|
74
277
|
|
|
@@ -84,4 +287,4 @@ declare const useQuirks: () => vue_demi.Ref<Quirks>;
|
|
|
84
287
|
*/
|
|
85
288
|
declare const useScores: () => vue_demi.Ref<ScoreVector>;
|
|
86
289
|
|
|
87
|
-
export {
|
|
290
|
+
export { Personalize, PersonalizeComponentProps, PersonalizeStandard as PersonalizeEdge, PersonalizedVariationComponent, PersonalizedVariationComponentProps, Test, TestComponentProps, Track, TrackSlot, UniformContextProps, UniformContextProvider, VariantOutputType, isUsingUniformContext, onRouteChange, provideIsPersonalized, provideUniformContext, uniformContextInjectionKey, useIsPersonalized, useQuirks, useScores, useUniformContext };
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as te,h as L}from"vue-demi";var d=typeof window=="undefined";import{defineComponent as W,h as X,toRaw as V}from"vue-demi";import{inject as J,provide as K,getCurrentInstance as Q}from"vue-demi";import{parse as $}from"cookie-es";var c="uniformContextInjectionKey",g=({context:e,outputType:t="standard",trackRouteOnRender:o=!0,vueAppInstance:r})=>{let i={context:e,outputType:t};r?r.provide(c,i):K(c,i),!d&&o&&I(e)};function I(e){e==null||e.update({url:new URL(window.location.href),cookies:$(document.cookie)})}var n=()=>{let e=J(c);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Uniform Nuxt module with a valid manifest.");return e};function G(){var t;return Boolean((t=Q())==null?void 0:t.appContext.provides[c])}var Y=W({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{context:t}=n(),{result:o}=t.test({name:V(e.name),variations:V(e.variations)});return o?()=>X(e.component,{...o}):()=>null}}),q=Y;import{defineComponent as Z,h as l}from"vue-demi";import{ScriptType as T,EdgeNodeTagName as C}from"@uniformdev/context";var ee=Z({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let t={name:e.name};return()=>[l(C,{"data-type":T.TestStart,innerHTML:JSON.stringify(t)}),e.variations.map(o=>[l(C,{"data-type":T.ListItemSettings,key:`LIS-${o.id}`,innerHTML:JSON.stringify({id:o.id})}),l(C,{"data-type":T.ListItem,key:`LI-${o.id}`},l(e.component,{...o}))]),l(C,{"data-type":T.TestEnd})]}}),w=ee;var oe=te({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{outputType:t}=n();return()=>!d||t==="standard"?L(q,{...e}):L(w,{...e})}}),re=oe;import{defineComponent as ne,h as N}from"vue-demi";import{SERVER_STATE_ID as ie}from"@uniformdev/context";var ae=ne({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,t){return g(e),()=>[N(t.slots.default),pe(e.context)]}}),se=ae;function pe(e){let t=e.getServerToClientTransitionState();return()=>N("script",{id:ie,type:"application/json",innerHTML:JSON.stringify(t)})}import{defineComponent as ge,h as be}from"vue-demi";import{defineComponent as Te,ref as Ce,watch as ve,h as H,toRaw as U}from"vue-demi";import{ref as me,watchEffect as ue}from"vue-demi";import{dequal as de}from"dequal/lite";var b=()=>{let{context:e}=n(),t=me(e.scores);return ue(()=>{let o=i=>t.value=i,r=e.scores;return de(t.value,r)||(t.value=r),e.events.on("scoresUpdated",o),()=>{e.events.off("scoresUpdated",o)}}),t};import{defineComponent as fe,h as ye}from"vue-demi";import{provide as ce,inject as le}from"vue-demi";var R=Symbol("uniformIsPersonalized"),S=e=>{ce(R,e)},f=()=>le(R,!1);var Pe=fe({name:"PersonalizeProvider",inheritAttrs:!1,props:{personalized:Boolean},setup(e,t){return S(e.personalized),()=>ye(t.slots.default,{...e})}}),j=Pe;var xe=Te({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:t}=n(),o=b(),r=()=>{var a;return t.personalize({name:U(e.name),variations:U(e.variations),take:(a=U(e.count))!=null?a:1})},i=Ce(r());return ve([o,()=>e.name,()=>e.variations,()=>e.count],()=>{i.value=r()}),()=>H(j,{personalized:!0},()=>{var a;return(a=i.value)==null?void 0:a.variations.map(s=>{var u;return H(e.component,{key:s.id,personalizationResult:{variation:s,personalizationOccurred:(u=i.value)==null?void 0:u.personalized},...s})})})}}),D=xe;import{EdgeNodeTagName as v,ScriptType as x}from"@uniformdev/context";import{defineComponent as he,h as y}from"vue-demi";var ze=he({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){var o;let t={count:(o=e.count)!=null?o:1};return()=>[y(v,{"data-type":x.ListStart,innerHTML:JSON.stringify(t)}),e.variations.map(r=>[y(v,{"data-type":x.ListItemSettings,innerHTML:JSON.stringify({id:r.id,pz:r.pz||null}),key:`LIS-${r.id}`}),y(v,{"data-type":x.ListItem,key:`LI-${r.id}`},y(e.component,{personalizationResult:{variation:r,personalizationOccurred:!1},...r}))]),y(v,{"data-type":x.ListEnd})]}}),k=ze;var Se=ge({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:t}=n();return()=>be(!d||t==="standard"?D:k,{...e})}}),Ue=Se;import{defineComponent as ke,watchEffect as _,ref as h,h as Ee,toRaw as Ae}from"vue-demi";var Oe=ke({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=h(""),s=h(!1),u=h(),p=h();return _(()=>{a.value!==o&&(a.value=o,s.value=!1)}),_(()=>{var O;let z=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||z||!u.value)return;let M=Array.isArray(e.behavior)?e.behavior:[e.behavior],A=()=>{var m;s.value||(r==null||r.update({enrichments:Ae(M)}),s.value=!1,(m=p.value)==null||m.call(p))};if(e.disableVisibilityTrigger)A();else{(O=p.value)==null||O.call(p);let m=new IntersectionObserver(([P])=>{P.isIntersecting&&A()},{threshold:e.threshold});m.observe(u.value),p.value=()=>{var P;return(P=m.disconnect)==null?void 0:P.call(m)}}return()=>{var m;(m=p.value)==null||m.call(p)}}),()=>Ee(e.tagName,{ref:u,...t.attrs},t.slots.default())}}),Ie=Oe;import{defineComponent as Ve,ref as B,watchEffect as F,h as qe,toRaw as we}from"vue-demi";var Le=Ve({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=B(),s=B(!1);return F(()=>{a.value!==o&&(a.value=o,s.value=!1)}),F(()=>{let u=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||u)return;(()=>{if(s.value)return;let E=Array.isArray(e.behavior)?e.behavior:[e.behavior];r==null||r.update({enrichments:we(E)}),s.value=!0})()}),()=>qe(t.slots.default,{...t.attrs})}}),Ne=Le;import{ref as Re,watch as je}from"vue-demi";var He=()=>{let{context:e}=n(),t=Re(e.quirks),o=r=>{t.value=r};return je(e,()=>(e.events.on("quirksUpdated",o),()=>{e.events.off("quirksUpdated",o)})),t};export{Ue as Personalize,k as PersonalizeEdge,re as Test,Ie as Track,Ne as TrackSlot,se as UniformContextProvider,G as isUsingUniformContext,I as onRouteChange,S as provideIsPersonalized,g as provideUniformContext,c as uniformContextInjectionKey,f as useIsPersonalized,He as useQuirks,b as useScores,n as useUniformContext};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var N=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var ae=(e,t)=>{for(var o in t)N(e,o,{get:t[o],enumerable:!0})},se=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ne(t))!ie.call(e,n)&&n!==o&&N(e,n,{get:()=>t[n],enumerable:!(r=re(t,n))||r.enumerable});return e};var pe=e=>se(N({},"__esModule",{value:!0}),e);var xe={};ae(xe,{Personalize:()=>Y,PersonalizeEdge:()=>V,Test:()=>J,Track:()=>Z,TrackSlot:()=>ee,UniformContextProvider:()=>Q,isUsingUniformContext:()=>B,onRouteChange:()=>R,provideIsPersonalized:()=>O,provideUniformContext:()=>U,uniformContextInjectionKey:()=>x,useIsPersonalized:()=>z,useQuirks:()=>te,useScores:()=>E,useUniformContext:()=>i});module.exports=pe(xe);var g=require("vue-demi");var v=typeof window=="undefined";var C=require("vue-demi");var h=require("vue-demi");var _=require("cookie-es"),x="uniformContextInjectionKey",U=({context:e,outputType:t="standard",trackRouteOnRender:o=!0,vueAppInstance:r})=>{let n={context:e,outputType:t};r?r.provide(x,n):(0,h.provide)(x,n),!v&&o&&R(e)};function R(e){e==null||e.update({url:new URL(window.location.href),cookies:(0,_.parse)(document.cookie)})}var i=()=>{let e=(0,h.inject)(x);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Uniform Nuxt module with a valid manifest.");return e};function B(){var t;return Boolean((t=(0,h.getCurrentInstance)())==null?void 0:t.appContext.provides[x])}var me=(0,C.defineComponent)({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{context:t}=i(),{result:o}=t.test({name:(0,C.toRaw)(e.name),variations:(0,C.toRaw)(e.variations)});return o?()=>(0,C.h)(e.component,{...o}):()=>null}}),F=me;var P=require("vue-demi"),l=require("@uniformdev/context"),ue=(0,P.defineComponent)({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let t={name:e.name};return()=>[(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.TestStart,innerHTML:JSON.stringify(t)}),e.variations.map(o=>[(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.ListItemSettings,key:`LIS-${o.id}`,innerHTML:JSON.stringify({id:o.id})}),(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.ListItem,key:`LI-${o.id}`},(0,P.h)(e.component,{...o}))]),(0,P.h)(l.EdgeNodeTagName,{"data-type":l.ScriptType.TestEnd})]}}),M=ue;var de=(0,g.defineComponent)({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{outputType:t}=i();return()=>!v||t==="standard"?(0,g.h)(F,{...e}):(0,g.h)(M,{...e})}}),J=de;var b=require("vue-demi"),K=require("@uniformdev/context");var ce=(0,b.defineComponent)({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,t){return U(e),()=>[(0,b.h)(t.slots.default),le(e.context)]}}),Q=ce;function le(e){let t=e.getServerToClientTransitionState();return()=>(0,b.h)("script",{id:K.SERVER_STATE_ID,type:"application/json",innerHTML:JSON.stringify(t)})}var q=require("vue-demi");var s=require("vue-demi");var k=require("vue-demi");var $=require("dequal/lite"),E=()=>{let{context:e}=i(),t=(0,k.ref)(e.scores);return(0,k.watchEffect)(()=>{let o=n=>t.value=n,r=e.scores;return(0,$.dequal)(t.value,r)||(t.value=r),e.events.on("scoresUpdated",o),()=>{e.events.off("scoresUpdated",o)}}),t};var I=require("vue-demi");var A=require("vue-demi"),G=Symbol("uniformIsPersonalized"),O=e=>{(0,A.provide)(G,e)},z=()=>(0,A.inject)(G,!1);var fe=(0,I.defineComponent)({name:"PersonalizeProvider",inheritAttrs:!1,props:{personalized:Boolean},setup(e,t){return O(e.personalized),()=>(0,I.h)(t.slots.default,{...e})}}),W=fe;var ye=(0,s.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:t}=i(),o=E(),r=()=>{var m;return t.personalize({name:(0,s.toRaw)(e.name),variations:(0,s.toRaw)(e.variations),take:(m=(0,s.toRaw)(e.count))!=null?m:1})},n=(0,s.ref)(r());return(0,s.watch)([o,()=>e.name,()=>e.variations,()=>e.count],()=>{n.value=r()}),()=>(0,s.h)(W,{personalized:!0},()=>{var m;return(m=n.value)==null?void 0:m.variations.map(u=>{var y;return(0,s.h)(e.component,{key:u.id,personalizationResult:{variation:u,personalizationOccurred:(y=n.value)==null?void 0:y.personalized},...u})})})}}),X=ye;var f=require("@uniformdev/context"),T=require("vue-demi"),Pe=(0,T.defineComponent)({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){var o;let t={count:(o=e.count)!=null?o:1};return()=>[(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListStart,innerHTML:JSON.stringify(t)}),e.variations.map(r=>[(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListItemSettings,innerHTML:JSON.stringify({id:r.id,pz:r.pz||null}),key:`LIS-${r.id}`}),(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListItem,key:`LI-${r.id}`},(0,T.h)(e.component,{personalizationResult:{variation:r,personalizationOccurred:!1},...r}))]),(0,T.h)(f.EdgeNodeTagName,{"data-type":f.ScriptType.ListEnd})]}}),V=Pe;var Te=(0,q.defineComponent)({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:t}=i();return()=>(0,q.h)(!v||t==="standard"?X:V,{...e})}}),Y=Te;var a=require("vue-demi");var Ce=(0,a.defineComponent)({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=i(),n=z(),m=(0,a.ref)(""),u=(0,a.ref)(!1),y=(0,a.ref)(),d=(0,a.ref)();return(0,a.watchEffect)(()=>{m.value!==o&&(m.value=o,u.value=!1)}),(0,a.watchEffect)(()=>{var D;let L=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(n||L||!y.value)return;let oe=Array.isArray(e.behavior)?e.behavior:[e.behavior],H=()=>{var c;u.value||(r==null||r.update({enrichments:(0,a.toRaw)(oe)}),u.value=!1,(c=d.value)==null||c.call(d))};if(e.disableVisibilityTrigger)H();else{(D=d.value)==null||D.call(d);let c=new IntersectionObserver(([S])=>{S.isIntersecting&&H()},{threshold:e.threshold});c.observe(y.value),d.value=()=>{var S;return(S=c.disconnect)==null?void 0:S.call(c)}}return()=>{var c;(c=d.value)==null||c.call(d)}}),()=>(0,a.h)(e.tagName,{ref:y,...t.attrs},t.slots.default())}}),Z=Ce;var p=require("vue-demi");var ve=(0,p.defineComponent)({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=i(),n=z(),m=(0,p.ref)(),u=(0,p.ref)(!1);return(0,p.watchEffect)(()=>{m.value!==o&&(m.value=o,u.value=!1)}),(0,p.watchEffect)(()=>{let y=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(n||y)return;(()=>{if(u.value)return;let j=Array.isArray(e.behavior)?e.behavior:[e.behavior];r==null||r.update({enrichments:(0,p.toRaw)(j)}),u.value=!0})()}),()=>(0,p.h)(t.slots.default,{...t.attrs})}}),ee=ve;var w=require("vue-demi");var te=()=>{let{context:e}=i(),t=(0,w.ref)(e.quirks),o=r=>{t.value=r};return(0,w.watch)(e,()=>(e.events.on("quirksUpdated",o),()=>{e.events.off("quirksUpdated",o)})),t};0&&(module.exports={Personalize,PersonalizeEdge,Test,Track,TrackSlot,UniformContextProvider,isUsingUniformContext,onRouteChange,provideIsPersonalized,provideUniformContext,uniformContextInjectionKey,useIsPersonalized,useQuirks,useScores,useUniformContext});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as te,h as L}from"vue-demi";var d=typeof window=="undefined";import{defineComponent as W,h as X,toRaw as V}from"vue-demi";import{inject as J,provide as K,getCurrentInstance as Q}from"vue-demi";import{parse as $}from"cookie-es";var c="uniformContextInjectionKey",g=({context:e,outputType:t="standard",trackRouteOnRender:o=!0,vueAppInstance:r})=>{let i={context:e,outputType:t};r?r.provide(c,i):K(c,i),!d&&o&&I(e)};function I(e){e==null||e.update({url:new URL(window.location.href),cookies:$(document.cookie)})}var n=()=>{let e=J(c);if(!e)throw Error("Could not inject Uniform's Context, make sure you're using <UniformContextProvider /> or the Uniform Nuxt module with a valid manifest.");return e};function G(){var t;return Boolean((t=Q())==null?void 0:t.appContext.provides[c])}var Y=W({name:"TestStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{context:t}=n(),{result:o}=t.test({name:V(e.name),variations:V(e.variations)});return o?()=>X(e.component,{...o}):()=>null}}),q=Y;import{defineComponent as Z,h as l}from"vue-demi";import{ScriptType as T,EdgeNodeTagName as C}from"@uniformdev/context";var ee=Z({name:"TestEdge",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let t={name:e.name};return()=>[l(C,{"data-type":T.TestStart,innerHTML:JSON.stringify(t)}),e.variations.map(o=>[l(C,{"data-type":T.ListItemSettings,key:`LIS-${o.id}`,innerHTML:JSON.stringify({id:o.id})}),l(C,{"data-type":T.ListItem,key:`LI-${o.id}`},l(e.component,{...o}))]),l(C,{"data-type":T.TestEnd})]}}),w=ee;var oe=te({name:"Test",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Object,Function],required:!0}},setup(e){let{outputType:t}=n();return()=>!d||t==="standard"?L(q,{...e}):L(w,{...e})}}),re=oe;import{defineComponent as ne,h as N}from"vue-demi";import{SERVER_STATE_ID as ie}from"@uniformdev/context";var ae=ne({name:"UniformContextProvider",inheritAttrs:!1,props:{context:{type:Object,required:!0},outputType:{type:String,default:"standard"},trackRouteOnRender:{type:Boolean,default:!0}},setup(e,t){return g(e),()=>[N(t.slots.default),pe(e.context)]}}),se=ae;function pe(e){let t=e.getServerToClientTransitionState();return()=>N("script",{id:ie,type:"application/json",innerHTML:JSON.stringify(t)})}import{defineComponent as ge,h as be}from"vue-demi";import{defineComponent as Te,ref as Ce,watch as ve,h as H,toRaw as U}from"vue-demi";import{ref as me,watchEffect as ue}from"vue-demi";import{dequal as de}from"dequal/lite";var b=()=>{let{context:e}=n(),t=me(e.scores);return ue(()=>{let o=i=>t.value=i,r=e.scores;return de(t.value,r)||(t.value=r),e.events.on("scoresUpdated",o),()=>{e.events.off("scoresUpdated",o)}}),t};import{defineComponent as fe,h as ye}from"vue-demi";import{provide as ce,inject as le}from"vue-demi";var R=Symbol("uniformIsPersonalized"),S=e=>{ce(R,e)},f=()=>le(R,!1);var Pe=fe({name:"PersonalizeProvider",inheritAttrs:!1,props:{personalized:Boolean},setup(e,t){return S(e.personalized),()=>ye(t.slots.default,{...e})}}),j=Pe;var xe=Te({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{context:t}=n(),o=b(),r=()=>{var a;return t.personalize({name:U(e.name),variations:U(e.variations),take:(a=U(e.count))!=null?a:1})},i=Ce(r());return ve([o,()=>e.name,()=>e.variations,()=>e.count],()=>{i.value=r()}),()=>H(j,{personalized:!0},()=>{var a;return(a=i.value)==null?void 0:a.variations.map(s=>{var u;return H(e.component,{key:s.id,personalizationResult:{variation:s,personalizationOccurred:(u=i.value)==null?void 0:u.personalized},...s})})})}}),D=xe;import{EdgeNodeTagName as v,ScriptType as x}from"@uniformdev/context";import{defineComponent as he,h as y}from"vue-demi";var ze=he({name:"PersonalizeStandard",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){var o;let t={count:(o=e.count)!=null?o:1};return()=>[y(v,{"data-type":x.ListStart,innerHTML:JSON.stringify(t)}),e.variations.map(r=>[y(v,{"data-type":x.ListItemSettings,innerHTML:JSON.stringify({id:r.id,pz:r.pz||null}),key:`LIS-${r.id}`}),y(v,{"data-type":x.ListItem,key:`LI-${r.id}`},y(e.component,{personalizationResult:{variation:r,personalizationOccurred:!1},...r}))]),y(v,{"data-type":x.ListEnd})]}}),k=ze;var Se=ge({name:"Personalize",inheritAttrs:!1,props:{name:{type:String,required:!0},variations:{type:Array,required:!0},component:{type:[Function,Object],required:!0},count:{type:Number,default:1}},setup(e){let{outputType:t}=n();return()=>be(!d||t==="standard"?D:k,{...e})}}),Ue=Se;import{defineComponent as ke,watchEffect as _,ref as h,h as Ee,toRaw as Ae}from"vue-demi";var Oe=ke({name:"Track",inheritAttrs:!1,props:{behavior:{type:[Object,Array]},tagName:{type:String,default:"div"},disableVisibilityTrigger:{type:Boolean,default:typeof window=="undefined"||!("IntersectionObserver"in window)},threshold:{type:[Number,Array],default:.5}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=h(""),s=h(!1),u=h(),p=h();return _(()=>{a.value!==o&&(a.value=o,s.value=!1)}),_(()=>{var O;let z=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||z||!u.value)return;let M=Array.isArray(e.behavior)?e.behavior:[e.behavior],A=()=>{var m;s.value||(r==null||r.update({enrichments:Ae(M)}),s.value=!1,(m=p.value)==null||m.call(p))};if(e.disableVisibilityTrigger)A();else{(O=p.value)==null||O.call(p);let m=new IntersectionObserver(([P])=>{P.isIntersecting&&A()},{threshold:e.threshold});m.observe(u.value),p.value=()=>{var P;return(P=m.disconnect)==null?void 0:P.call(m)}}return()=>{var m;(m=p.value)==null||m.call(p)}}),()=>Ee(e.tagName,{ref:u,...t.attrs},t.slots.default())}}),Ie=Oe;import{defineComponent as Ve,ref as B,watchEffect as F,h as qe,toRaw as we}from"vue-demi";var Le=Ve({name:"TrackSlot",inheritAttrs:!1,props:{behavior:{type:[Object,Array]}},setup(e,t){let o=typeof document=="undefined"?"__uniform_ssr_url":document.location.href,{context:r}=n(),i=f(),a=B(),s=B(!1);return F(()=>{a.value!==o&&(a.value=o,s.value=!1)}),F(()=>{let u=!e.behavior||Array.isArray(e.behavior)&&!e.behavior.length;if(i||u)return;(()=>{if(s.value)return;let E=Array.isArray(e.behavior)?e.behavior:[e.behavior];r==null||r.update({enrichments:we(E)}),s.value=!0})()}),()=>qe(t.slots.default,{...t.attrs})}}),Ne=Le;import{ref as Re,watch as je}from"vue-demi";var He=()=>{let{context:e}=n(),t=Re(e.quirks),o=r=>{t.value=r};return je(e,()=>(e.events.on("quirksUpdated",o),()=>{e.events.off("quirksUpdated",o)})),t};export{Ue as Personalize,k as PersonalizeEdge,re as Test,Ie as Track,Ne as TrackSlot,se as UniformContextProvider,G as isUsingUniformContext,I as onRouteChange,S as provideIsPersonalized,g as provideUniformContext,c as uniformContextInjectionKey,f as useIsPersonalized,He as useQuirks,b as useScores,n as useUniformContext};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniformdev/context-vue",
|
|
3
|
-
"version": "16.0.1-nuxt.
|
|
3
|
+
"version": "16.0.1-nuxt.187+32dbc55cd",
|
|
4
4
|
"description": "Vue SDK for Uniform Context",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,10 +22,9 @@
|
|
|
22
22
|
"format": "prettier --write \"src/**/*.{js,ts,tsx}\""
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@uniformdev/context": "^16.0.1-nuxt.
|
|
25
|
+
"@uniformdev/context": "^16.0.1-nuxt.187+32dbc55cd",
|
|
26
26
|
"cookie-es": "^0.5.0",
|
|
27
27
|
"dequal": "^2.0.2",
|
|
28
|
-
"pascal-case": "3.1.2",
|
|
29
28
|
"uuid": "8.3.2",
|
|
30
29
|
"vue-demi": "^0.12.5"
|
|
31
30
|
},
|
|
@@ -64,5 +63,5 @@
|
|
|
64
63
|
"last 2 versions",
|
|
65
64
|
"not dead"
|
|
66
65
|
],
|
|
67
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "32dbc55cd49144087464781aa4072501b46166df"
|
|
68
67
|
}
|