@remkoj/optimizely-one-nextjs 2.0.1 → 2.0.3
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/README.md +96 -14
- package/dist/api/content-goals.d.ts +15 -0
- package/dist/api/content-goals.js +14 -0
- package/dist/api/content-goals.js.map +1 -0
- package/dist/api/content-recs.d.ts +3 -0
- package/dist/api/content-recs.js +34 -0
- package/dist/api/content-recs.js.map +1 -0
- package/dist/api/experimentation-api.js +3 -4
- package/dist/api/experimentation-api.js.map +1 -1
- package/dist/api/index.js +5 -1
- package/dist/api/index.js.map +1 -1
- package/dist/client-types.d.ts +3 -2
- package/dist/client.d.ts +2 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/components/context.d.ts +14 -0
- package/dist/components/context.js +8 -0
- package/dist/components/context.js.map +1 -1
- package/dist/components/optimizely-one-gadget/audiences-panel.js +2 -2
- package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -1
- package/dist/components/optimizely-one-gadget/exp-panel.js +2 -2
- package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -1
- package/dist/components/optimizely-one-gadget/goals-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/goals-panel.js +23 -0
- package/dist/components/optimizely-one-gadget/goals-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/index.js +4 -3
- package/dist/components/optimizely-one-gadget/index.js.map +1 -1
- package/dist/components/optimizely-one-gadget/interests-panel.js +1 -1
- package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -1
- package/dist/components/page-activator.js +26 -0
- package/dist/components/page-activator.js.map +1 -1
- package/dist/products/content-recs/api.d.ts +4 -0
- package/dist/products/content-recs/api.js +13 -1
- package/dist/products/content-recs/api.js.map +1 -1
- package/dist/products/content-recs/client.d.ts +2 -0
- package/dist/products/content-recs/client.js +10 -0
- package/dist/products/content-recs/client.js.map +1 -1
- package/dist/products/content-recs/delivery.d.ts +83 -0
- package/dist/products/content-recs/delivery.js +68 -0
- package/dist/products/content-recs/delivery.js.map +1 -0
- package/dist/{server-components/scripts/snippets/optimizely-content-recs.js → products/content-recs/snippet.js} +2 -2
- package/dist/products/content-recs/snippet.js.map +1 -0
- package/dist/products/data-platform/client.d.ts +1 -0
- package/dist/products/data-platform/client.js +15 -3
- package/dist/products/data-platform/client.js.map +1 -1
- package/dist/{server-components/scripts/snippets/optimizely-data-patform.js → products/data-platform/snippet.js} +1 -1
- package/dist/products/data-platform/snippet.js.map +1 -0
- package/dist/products/web-experimentation/client.d.ts +1 -0
- package/dist/products/web-experimentation/client.js +14 -2
- package/dist/products/web-experimentation/client.js.map +1 -1
- package/dist/{server-components/scripts/snippets/optimizely-web-experimentation.d.ts → products/web-experimentation/snippet.d.ts} +3 -2
- package/dist/products/web-experimentation/snippet.js +29 -0
- package/dist/products/web-experimentation/snippet.js.map +1 -0
- package/dist/server-components/scripts/footer.js +1 -1
- package/dist/server-components/scripts/footer.js.map +1 -1
- package/dist/server-components/scripts/header.d.ts +44 -1
- package/dist/server-components/scripts/header.js +14 -7
- package/dist/server-components/scripts/header.js.map +1 -1
- package/package.json +5 -5
- package/dist/server-components/scripts/snippets/optimizely-content-recs.js.map +0 -1
- package/dist/server-components/scripts/snippets/optimizely-data-patform.js.map +0 -1
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js +0 -9
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js.map +0 -1
- /package/dist/{server-components/scripts/snippets/optimizely-content-recs.d.ts → products/content-recs/snippet.d.ts} +0 -0
- /package/dist/{server-components/scripts/snippets/optimizely-data-patform.d.ts → products/data-platform/snippet.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAA0B,MAAM,OAAO,CAAA;AACtF,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export const InterestsPanel = ({ servicePrefix = '/api/me', refreshInterval = 20
|
|
|
17
17
|
const contentTopics = (profile?.contentTopics ?? []).map(t => _jsxs("li", { className: 'oo-py-1', children: [_jsx(TagIcon, { className: 'oo-inline-block oo-h-[16px] oo-w-[16px] oo-mr-2' }), t] }, "topic-" + t));
|
|
18
18
|
if (contentTopics.length == 0)
|
|
19
19
|
contentTopics.push(_jsx("li", { className: 'oo-py-1', children: _jsx("div", { className: "oo-m-2 md:oo-m-4 oo-rounded-md oo-bg-amber-200 oo-border oo-border-amber-800 oo-text-amber-800 oo-p-1 md:oo-p-2", children: "No topics inferred from behaviour" }) }, "no-topics"));
|
|
20
|
-
return _jsxs(_Fragment, { children: [(isValidating && !isLoading) && _jsxs("p", { className: 'oo-text-[14px] oo-m-2 md:oo-m-4 oo-rounded-md oo-bg-amber-200 oo-border oo-border-amber-800 oo-text-amber-800 oo-p-1 md:oo-p-2', children: [_jsx(ArrowPathIcon, { className: 'oo-inline-block oo-h-4 oo-w-4 oo-ml-2 oo-animate-spin' }), " Refreshing interests"] }), isLoading && _jsxs("p", { className: 'oo-m-2 md:oo-m-4 oo-rounded-md oo-bg-amber-200 oo-border oo-border-amber-800 oo-text-amber-800 oo-p-1 md:oo-p-2', children: [_jsx(ArrowPathIcon, { className: 'oo-inline-block oo-h-4 oo-w-4 oo-mr-2 oo-animate-spin' }), " Loading interests"] })
|
|
20
|
+
return _jsxs(_Fragment, { children: [_jsx("ul", { className: 'oo-text-[14px] oo-grid oo-grid-cols-1 oo-divide-y oo-divide-slate-200', children: contentTopics }), _jsx("p", { className: 'oo-text-[12px]', children: "Powered by: Optimizely Content Recommendations" }), (isValidating && !isLoading) && _jsxs("p", { className: 'oo-text-[14px] oo-m-2 md:oo-m-4 oo-rounded-md oo-bg-amber-200 oo-border oo-border-amber-800 oo-text-amber-800 oo-p-1 md:oo-p-2', children: [_jsx(ArrowPathIcon, { className: 'oo-inline-block oo-h-4 oo-w-4 oo-ml-2 oo-animate-spin' }), " Refreshing interests"] }), isLoading && _jsxs("p", { className: 'oo-m-2 md:oo-m-4 oo-rounded-md oo-bg-amber-200 oo-border oo-border-amber-800 oo-text-amber-800 oo-p-1 md:oo-p-2', children: [_jsx(ArrowPathIcon, { className: 'oo-inline-block oo-h-4 oo-w-4 oo-mr-2 oo-animate-spin' }), " Loading interests"] })] });
|
|
21
21
|
};
|
|
22
22
|
export default InterestsPanel;
|
|
23
23
|
//# sourceMappingURL=interests-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interests-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/interests-panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,MAAM,MAAM,KAAK,CAAA;AASxB,MAAM,CAAC,MAAM,cAAc,GAA4C,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,EAAE,EAAE;IAE7H,MAAM,MAAM,GAAG,GAAI,aAAc,eAAe,CAAA;IAChD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAa,MAAM,EAAE;QACjF,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACL,MAAM,IAAI,KAAK,CAAC,GAAI,CAAC,CAAC,MAAO,KAAM,CAAC,CAAC,UAAW,EAAE,CAAC,CAAA;YACvD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC;QACF,eAAe;KAClB,CAAC,CAAA;IAEF,IAAI,KAAK;QACL,OAAO,YAAG,SAAS,EAAC,iHAAiH,oEAAwD,CAAA;IAEjM,MAAM,aAAa,GAAmB,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAI,SAAS,EAAC,SAAS,aAAkB,KAAC,OAAO,IAAC,SAAS,EAAC,iDAAiD,GAAG,EAAE,CAAC,KAAtF,QAAQ,GAAC,CAAC,CAAmF,CAAC,CAAA;IACzM,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;QACzB,aAAa,CAAC,IAAI,CAAC,aAAI,SAAS,EAAC,SAAS,YAAiB,cAAK,SAAS,EAAC,iHAAiH,kDAAwC,IAApL,WAAW,CAA8K,CAAC,CAAA;IAE7O,OAAO,
|
|
1
|
+
{"version":3,"file":"interests-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/interests-panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,MAAM,MAAM,KAAK,CAAA;AASxB,MAAM,CAAC,MAAM,cAAc,GAA4C,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,EAAE,EAAE;IAE7H,MAAM,MAAM,GAAG,GAAI,aAAc,eAAe,CAAA;IAChD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAa,MAAM,EAAE;QACjF,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACL,MAAM,IAAI,KAAK,CAAC,GAAI,CAAC,CAAC,MAAO,KAAM,CAAC,CAAC,UAAW,EAAE,CAAC,CAAA;YACvD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC;QACF,eAAe;KAClB,CAAC,CAAA;IAEF,IAAI,KAAK;QACL,OAAO,YAAG,SAAS,EAAC,iHAAiH,oEAAwD,CAAA;IAEjM,MAAM,aAAa,GAAmB,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAI,SAAS,EAAC,SAAS,aAAkB,KAAC,OAAO,IAAC,SAAS,EAAC,iDAAiD,GAAG,EAAE,CAAC,KAAtF,QAAQ,GAAC,CAAC,CAAmF,CAAC,CAAA;IACzM,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;QACzB,aAAa,CAAC,IAAI,CAAC,aAAI,SAAS,EAAC,SAAS,YAAiB,cAAK,SAAS,EAAC,iHAAiH,kDAAwC,IAApL,WAAW,CAA8K,CAAC,CAAA;IAE7O,OAAO,8BACH,aAAI,SAAS,EAAC,uEAAuE,YAC/E,aAAa,GACd,EACL,YAAG,SAAS,EAAC,gBAAgB,+DAAmD,EAC9E,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,aAAG,SAAS,EAAC,gIAAgI,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,6BAAyB,EAC1R,SAAS,IAAI,aAAG,SAAS,EAAC,iHAAiH,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,0BAAsB,IACxP,CAAA;AACP,CAAC,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -6,6 +6,7 @@ import { useOptimizelyOne } from './context';
|
|
|
6
6
|
export const PageActivator = props => {
|
|
7
7
|
const path = usePathname();
|
|
8
8
|
const opti = useOptimizelyOne();
|
|
9
|
+
// Page activation effect
|
|
9
10
|
useLayoutEffect(() => {
|
|
10
11
|
if (opti.debug)
|
|
11
12
|
console.groupCollapsed(`📑 [Optimizely One] Applying layout effects for: ${path}`);
|
|
@@ -13,6 +14,7 @@ export const PageActivator = props => {
|
|
|
13
14
|
if (opti.debug)
|
|
14
15
|
console.groupEnd();
|
|
15
16
|
}, [path, opti]);
|
|
17
|
+
// Page tracking effect
|
|
16
18
|
useEffect(() => {
|
|
17
19
|
if (opti.disableAutotracking) {
|
|
18
20
|
if (opti.debug)
|
|
@@ -25,6 +27,30 @@ export const PageActivator = props => {
|
|
|
25
27
|
if (opti.debug)
|
|
26
28
|
console.groupEnd();
|
|
27
29
|
}, [path, opti]);
|
|
30
|
+
// Profile data effect
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (opti.debug)
|
|
33
|
+
console.log(`📢 [Optimizely One] Refreshing profile data for: ${path}`);
|
|
34
|
+
const abort = new AbortController();
|
|
35
|
+
Promise.allSettled(opti.getProfileDataSources().map(pds => pds.discoverProfileData(abort.signal))).then(results => {
|
|
36
|
+
const mergedProfileData = { custom: {} };
|
|
37
|
+
results.forEach(result => {
|
|
38
|
+
if (result.status == "fulfilled") {
|
|
39
|
+
if (result.value.content_intelligence_id)
|
|
40
|
+
mergedProfileData.content_intelligence_id = result.value.content_intelligence_id;
|
|
41
|
+
mergedProfileData.custom = { ...mergedProfileData.custom, ...result.value.custom };
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (mergedProfileData.content_intelligence_id || Object.getOwnPropertyNames(mergedProfileData.custom).length > 0) {
|
|
45
|
+
if (opti.debug)
|
|
46
|
+
console.log(`📢 [Optimizely One] Discovered profile data: ${JSON.stringify(mergedProfileData)}`);
|
|
47
|
+
opti.getProfileServices().forEach(service => service.updateProfile(mergedProfileData));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
abort.abort(`[Optimizely One] Profile data refresh cancelled`);
|
|
52
|
+
};
|
|
53
|
+
}, [path, opti]);
|
|
28
54
|
return _jsx(_Fragment, { children: props.children });
|
|
29
55
|
};
|
|
30
56
|
PageActivator.displayName = "Optimizely One: (Layout) Effect processor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-activator.js","sourceRoot":"","sources":["../../src/components/page-activator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,SAAS,EAAE,eAAe,EAAkD,MAAM,OAAO,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"page-activator.js","sourceRoot":"","sources":["../../src/components/page-activator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,10 @@ export declare class ContentRecsClient {
|
|
|
11
11
|
get delivery(): number;
|
|
12
12
|
constructor(options?: Partial<ContentRecsOptions>);
|
|
13
13
|
getContentTopics(visitorId: string): Promise<string[]>;
|
|
14
|
+
getNextBestGoals(visitorId: string): Promise<Array<{
|
|
15
|
+
goal: string;
|
|
16
|
+
score: number;
|
|
17
|
+
}>>;
|
|
14
18
|
}
|
|
15
19
|
export declare class ContentRecsError extends Error {
|
|
16
20
|
readonly deliveryId: number | undefined;
|
|
@@ -26,9 +26,21 @@ export class ContentRecsClient {
|
|
|
26
26
|
return [];
|
|
27
27
|
const profileUrl = new URL(`/1.0/users/idio_visitor_id:${visitorId}/topics`, this._config.host);
|
|
28
28
|
profileUrl.searchParams.set('key', this._config.deliveryKey);
|
|
29
|
-
const topics = await fetch(profileUrl).then(r => r.json()).catch(() => undefined);
|
|
29
|
+
const topics = await fetch(profileUrl, { cache: 'no-store' }).then(r => r.json()).catch(() => undefined);
|
|
30
30
|
return (topics?.topic ?? []).map(x => x.title);
|
|
31
31
|
}
|
|
32
|
+
async getNextBestGoals(visitorId) {
|
|
33
|
+
if (!visitorId || visitorId == "")
|
|
34
|
+
return [];
|
|
35
|
+
const profileUrl = new URL(`/1.0/users/idio_visitor_id:${visitorId}/conversions/predictions`, this._config.host);
|
|
36
|
+
profileUrl.searchParams.set('key', this._config.deliveryKey);
|
|
37
|
+
profileUrl.searchParams.set('callback', 'fn');
|
|
38
|
+
const body = await fetch(profileUrl, { cache: 'no-store' }).then(r => r.ok ? r.text() : undefined).catch(() => undefined);
|
|
39
|
+
if (!body)
|
|
40
|
+
return [];
|
|
41
|
+
const goals = JSON.parse(body.substring(body.indexOf('{'), body.lastIndexOf('}') + 1));
|
|
42
|
+
return goals.conversions;
|
|
43
|
+
}
|
|
32
44
|
}
|
|
33
45
|
export class ContentRecsError extends Error {
|
|
34
46
|
deliveryId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/products/content-recs/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,OAAO,MAAM,gBAAgB,CAAA;AASpC,MAAM,OAAO,iBAAiB;IAET,OAAO,CAA+B;IAEvD,IAAc,aAAa;QAEvB,OAAO;YACH,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC3D,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACnE,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;YACnE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC3E,CAAA;IACL,CAAC;IAED,IAAW,MAAM;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;IAChC,CAAC;IAED,IAAW,QAAQ;QAEf,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAA;IAClC,CAAC;IAED,YAAmB,OAAqC;QAEpD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,EAAE,CAAA;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;YAC7F,MAAM,IAAI,gBAAgB,CAAC,mCAAmC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACvH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QAE3C,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,EAAE;YAC7B,OAAO,EAAE,CAAA;QAEb,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,8BAA+B,SAAU,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/products/content-recs/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,10 @@ export declare class ContentRecsService implements ClientApi.OptimizelyOneServic
|
|
|
3
3
|
order: Readonly<number>;
|
|
4
4
|
code: Readonly<string>;
|
|
5
5
|
debug: boolean;
|
|
6
|
+
endpoint: string;
|
|
6
7
|
get isActive(): boolean;
|
|
7
8
|
trackPage(): void;
|
|
8
9
|
getBrowserApi(): ClientApi.OptimizelyContentRecsApi | undefined;
|
|
10
|
+
discoverProfileData(signal?: AbortSignal | null): Promise<ClientApi.OptimizelyOneProfileData>;
|
|
9
11
|
}
|
|
10
12
|
export default ContentRecsService;
|
|
@@ -3,6 +3,7 @@ export class ContentRecsService {
|
|
|
3
3
|
order = 300;
|
|
4
4
|
code = "crecs";
|
|
5
5
|
debug = false;
|
|
6
|
+
endpoint = "/api/me/cgoals";
|
|
6
7
|
get isActive() {
|
|
7
8
|
return this.getBrowserApi() != undefined;
|
|
8
9
|
}
|
|
@@ -24,6 +25,15 @@ export class ContentRecsService {
|
|
|
24
25
|
return undefined;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
28
|
+
async discoverProfileData(signal) {
|
|
29
|
+
const nbg = await fetch(this.endpoint, { cache: 'no-store', signal }).then(r => r.ok ? r.json() : undefined);
|
|
30
|
+
return {
|
|
31
|
+
custom: {
|
|
32
|
+
"next_best_goal": (nbg?.goals || []).at(0)?.goal || '',
|
|
33
|
+
"next_best_goals": (nbg?.goals || []).map(x => x.goal).join(", ")
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
27
37
|
}
|
|
28
38
|
export default ContentRecsService;
|
|
29
39
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/content-recs/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,kBAAkB;IAEpB,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,OAAO,CAAA;IACjC,KAAK,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/content-recs/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,kBAAkB;IAEpB,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,OAAO,CAAA;IACjC,KAAK,GAAa,KAAK,CAAA;IACvB,QAAQ,GAAY,gBAAgB,CAAA;IAC3C,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,SAAS,CAAA;IAC5C,CAAC;IAEM,SAAS;QAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAA;QACvF,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IACnC,CAAC;IAEM,aAAa;QAEhB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI;gBACZ,MAAM,CAAC,IAAI,GAAG,EAAqB,CAAA;YACvC,OAAO,MAAM,CAAC,IAAI,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAA;QACpB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,MAA2B;QAExD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAA+D,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACzK,OAAO;YACH,MAAM,EAAE;gBACJ,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;gBACtD,iBAAiB,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACpE;SACJ,CAAA;IACL,CAAC;CACJ;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type FunctionComponent } from "react";
|
|
2
|
+
export type ContentRecsItemData = {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
abstract: string;
|
|
6
|
+
featured: boolean;
|
|
7
|
+
approved: string;
|
|
8
|
+
read: boolean;
|
|
9
|
+
published: null;
|
|
10
|
+
original_url: string;
|
|
11
|
+
metadata: Record<string, string | Record<string, string | Record<string, string>>>;
|
|
12
|
+
topics?: Array<{
|
|
13
|
+
id: string;
|
|
14
|
+
title: string;
|
|
15
|
+
full_details_url: string;
|
|
16
|
+
}>;
|
|
17
|
+
link_url: string;
|
|
18
|
+
full_details_url: string;
|
|
19
|
+
main_image_url: string;
|
|
20
|
+
main_image: {
|
|
21
|
+
width: string;
|
|
22
|
+
height: string;
|
|
23
|
+
};
|
|
24
|
+
source: {
|
|
25
|
+
id: string;
|
|
26
|
+
full_details_url: string;
|
|
27
|
+
title: string;
|
|
28
|
+
display: string;
|
|
29
|
+
};
|
|
30
|
+
author: null | string;
|
|
31
|
+
};
|
|
32
|
+
export type ContentRecsResponse = {
|
|
33
|
+
group: string;
|
|
34
|
+
model: boolean | string;
|
|
35
|
+
next_page: string;
|
|
36
|
+
recommendation_id: string;
|
|
37
|
+
total_hits: number;
|
|
38
|
+
content: Array<ContentRecsItemData>;
|
|
39
|
+
};
|
|
40
|
+
export type ContentRecsItem = FunctionComponent<{
|
|
41
|
+
data: ContentRecsItemData;
|
|
42
|
+
}>;
|
|
43
|
+
export type ContentRecsItemPlaceholder = FunctionComponent;
|
|
44
|
+
/**
|
|
45
|
+
* Insert a block of Content Recommendations
|
|
46
|
+
*
|
|
47
|
+
* @param param0
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
export declare const ContentRecsDelivery: FunctionComponent<ContentRecsDeliveryProps>;
|
|
51
|
+
export type ContentRecsDeliveryProps = {
|
|
52
|
+
/**
|
|
53
|
+
* The API Key of the web delivery used for these recommendations. This is
|
|
54
|
+
* shown as the value for "data-api-key" within the Content Recs delivery
|
|
55
|
+
* instructions
|
|
56
|
+
*/
|
|
57
|
+
apiKey: string;
|
|
58
|
+
/**
|
|
59
|
+
* The CSS Classes tot apply to the container, in addition to the
|
|
60
|
+
* "idio-recommendations" CSS Class
|
|
61
|
+
*/
|
|
62
|
+
className?: string;
|
|
63
|
+
/**
|
|
64
|
+
* The item template to be used to render an individual item
|
|
65
|
+
*/
|
|
66
|
+
template: ContentRecsItem;
|
|
67
|
+
/**
|
|
68
|
+
* The component to show for each recommendation slot whilest the actual
|
|
69
|
+
* recommendations are still loading
|
|
70
|
+
*/
|
|
71
|
+
placeholder?: ContentRecsItemPlaceholder;
|
|
72
|
+
/**
|
|
73
|
+
* The number of recommendations to fetch and render, defaults to 10
|
|
74
|
+
*/
|
|
75
|
+
count?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Set the endpoint to be used for the Content Recommendations API, this
|
|
78
|
+
* defaults to the proxy included in the Optimizely One Package. It assumes
|
|
79
|
+
* the default prefix of /api/me to be used.
|
|
80
|
+
*/
|
|
81
|
+
endpoint?: string;
|
|
82
|
+
};
|
|
83
|
+
export default ContentRecsDelivery;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useEffect, useState, useId } from "react";
|
|
4
|
+
import { usePathname } from "next/navigation";
|
|
5
|
+
function getFullUrl() {
|
|
6
|
+
try {
|
|
7
|
+
return window.location.href;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Insert a block of Content Recommendations
|
|
15
|
+
*
|
|
16
|
+
* @param param0
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export const ContentRecsDelivery = ({ apiKey, className, template: ItemTpl, count = 10, endpoint = '/api/me/crecs', placeholder: ItemPlaceholder }) => {
|
|
20
|
+
const id = useId();
|
|
21
|
+
const [data, setData] = useState(undefined);
|
|
22
|
+
const [pageUrl, setPageUrl] = useState(undefined);
|
|
23
|
+
const path = usePathname();
|
|
24
|
+
// Make sure we only load the recommendations client side
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
console.log(`💭 Enabling recommendations widget ${apiKey} on page ${path}`);
|
|
27
|
+
setPageUrl(getFullUrl());
|
|
28
|
+
}, [path, apiKey]);
|
|
29
|
+
// Build the service URL that will yield the recommendations
|
|
30
|
+
const serviceUrl = useMemo(() => {
|
|
31
|
+
if (!pageUrl)
|
|
32
|
+
return undefined;
|
|
33
|
+
const search = new URLSearchParams();
|
|
34
|
+
search.set('include_topics', '');
|
|
35
|
+
search.set('key', apiKey);
|
|
36
|
+
search.set('session[]', pageUrl);
|
|
37
|
+
if (count)
|
|
38
|
+
search.set('rpp', count.toString());
|
|
39
|
+
return endpoint + '?' + search.toString();
|
|
40
|
+
}, [apiKey, count, endpoint, pageUrl]);
|
|
41
|
+
// Run the actual request for the recommendations
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (!serviceUrl)
|
|
44
|
+
return;
|
|
45
|
+
console.log(`💭 Fetching recommendations for widget ${apiKey}`);
|
|
46
|
+
const abort = new AbortController();
|
|
47
|
+
fetch(serviceUrl, { signal: abort.signal, cache: 'no-store' })
|
|
48
|
+
.then(r => r.json())
|
|
49
|
+
.then(d => setData(d))
|
|
50
|
+
.catch(() => setData(undefined));
|
|
51
|
+
return () => {
|
|
52
|
+
abort.abort("Refreshing component");
|
|
53
|
+
};
|
|
54
|
+
}, [serviceUrl]);
|
|
55
|
+
// Make sure placeholders are rendered while loading
|
|
56
|
+
if (!data && ItemPlaceholder)
|
|
57
|
+
return _jsx("div", { className: "optimizely-recs " + className, "data-recs-widget": apiKey, "data-recs-id": "loading-" + id, children: (Array.from({ length: count }, (v, k) => {
|
|
58
|
+
const itemKey = `${id}-placeholder-${k}`;
|
|
59
|
+
return _jsx(ItemPlaceholder, {}, itemKey);
|
|
60
|
+
})) });
|
|
61
|
+
// Render the actual recommendations
|
|
62
|
+
return _jsx("div", { className: "optimizely-recs " + className, "data-recs-widget": apiKey, "data-recs-id": data?.recommendation_id || "loading-" + id, children: (data?.content || []).map(item => {
|
|
63
|
+
const itemKey = `${id}-${data?.recommendation_id || ''}-${item.id || ''}`;
|
|
64
|
+
return _jsx(ItemTpl, { data: item }, itemKey);
|
|
65
|
+
}) });
|
|
66
|
+
};
|
|
67
|
+
export default ContentRecsDelivery;
|
|
68
|
+
//# sourceMappingURL=delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/products/content-recs/delivery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,9 @@ export const OptimizelyContentRecsTrackingScript = (props) => {
|
|
|
11
11
|
['delivery', ${JSON.stringify(delivery_id)}]
|
|
12
12
|
];
|
|
13
13
|
|
|
14
|
-
// Include
|
|
14
|
+
// Include Content Analytics
|
|
15
15
|
!function(d,s){var ia=d.createElement(s);ia.async=1,s=d.getElementsByTagName(s)[0],ia.src='//s.idio.co/ia.js',s.parentNode.insertBefore(ia,s)}(document,'script');
|
|
16
16
|
` });
|
|
17
17
|
};
|
|
18
18
|
export default OptimizelyContentRecsTrackingScript;
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=snippet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/content-recs/snippet.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAOhC,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,KAAiC,EAAE,EAAE;IACrF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;IAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAA;IAElC,OAAO,KAAC,MAAM,IAAC,EAAE,EAAC,qBAAqB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;qBAGpD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAE;uBACxB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAE;;;;;CAKnD,GACQ,CAAA;AACT,CAAC,CAAA;AAED,eAAe,mCAAmC,CAAA"}
|
|
@@ -7,6 +7,7 @@ export declare class DataPlatformService implements ClientApi.OptimizelyOneServi
|
|
|
7
7
|
trackPage(): void;
|
|
8
8
|
trackEvent(event: ClientApi.OptimizelyOneEvent): void;
|
|
9
9
|
getBrowserApi(): ClientApi.OptimizelyDataPlatformApi | undefined;
|
|
10
|
+
updateProfile(profileData: ClientApi.OptimizelyOneProfileData): void;
|
|
10
11
|
private lastTrackedContentIntelligenceId;
|
|
11
12
|
private get contentIntelligenceId();
|
|
12
13
|
private _contentIntelligenceId;
|
|
@@ -11,11 +11,11 @@ export class DataPlatformService {
|
|
|
11
11
|
if (!zaius)
|
|
12
12
|
return;
|
|
13
13
|
if (this.debug)
|
|
14
|
-
console.log("Data platform - Tracking page view");
|
|
14
|
+
console.log("🏬 Data platform - Tracking page view");
|
|
15
15
|
zaius.event('pageview');
|
|
16
16
|
if (this.lastTrackedContentIntelligenceId != this.contentIntelligenceId && this.contentIntelligenceId != '') {
|
|
17
17
|
if (this.debug)
|
|
18
|
-
console.log(
|
|
18
|
+
console.log(`🏬 Data platform - Updating Content Intelligence ID to ${this.contentIntelligenceId}`);
|
|
19
19
|
zaius.customer({ content_intelligence_id: this.contentIntelligenceId });
|
|
20
20
|
this.lastTrackedContentIntelligenceId = this.contentIntelligenceId;
|
|
21
21
|
}
|
|
@@ -30,7 +30,8 @@ export class DataPlatformService {
|
|
|
30
30
|
if (prop_name != 'event')
|
|
31
31
|
event_data[prop_name] = event[prop_name];
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
if (this.debug)
|
|
34
|
+
console.log("🏬 Data platform - Tracking event:", event_name, event_data);
|
|
34
35
|
zaius.event(event_name, event_data);
|
|
35
36
|
}
|
|
36
37
|
getBrowserApi() {
|
|
@@ -41,6 +42,17 @@ export class DataPlatformService {
|
|
|
41
42
|
return undefined;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
45
|
+
updateProfile(profileData) {
|
|
46
|
+
const zaius = this.getBrowserApi();
|
|
47
|
+
if (!zaius)
|
|
48
|
+
return;
|
|
49
|
+
const ids = {};
|
|
50
|
+
if (profileData.content_intelligence_id)
|
|
51
|
+
ids.content_intelligence_id = profileData.content_intelligence_id;
|
|
52
|
+
if (this.debug)
|
|
53
|
+
console.log("🏬 Data platform - Updating profile (ids, attributes):", ids, profileData.custom);
|
|
54
|
+
zaius.customer(ids, profileData.custom);
|
|
55
|
+
}
|
|
44
56
|
lastTrackedContentIntelligenceId = undefined;
|
|
45
57
|
get contentIntelligenceId() {
|
|
46
58
|
if (!this._contentIntelligenceId || this._contentIntelligenceId == '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/data-platform/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,mBAAmB;IAErB,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,KAAK,CAAA;IAC/B,KAAK,GAAY,KAAK,CAAA;IAC7B,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,SAAS,CAAA;IAC5C,CAAC;IAEM,SAAS;QAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/data-platform/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/data-platform/snippet.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAMhC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAkC,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;IACvD,OAAO,KAAC,MAAM,IAAC,EAAE,EAAC,sBAAsB,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;;;;;;;;;;;;;;;;;;;;;gIAwBsD,MAAO;;;;CAIvI,GACQ,CAAA;AACT,CAAC,CAAA;AAED,eAAe,4BAA4B,CAAA"}
|
|
@@ -7,5 +7,6 @@ export declare class WebExperimenationService implements ClientApi.OptimizelyOne
|
|
|
7
7
|
activatePage(): void;
|
|
8
8
|
trackEvent(event: ClientApi.OptimizelyOneEvent): void;
|
|
9
9
|
getBrowserApi(): ClientApi.OptimizelyWebExperimentationApi | undefined;
|
|
10
|
+
updateProfile(profileData: ClientApi.OptimizelyOneProfileData): void;
|
|
10
11
|
}
|
|
11
12
|
export default WebExperimenationService;
|
|
@@ -12,7 +12,7 @@ export class WebExperimenationService {
|
|
|
12
12
|
return;
|
|
13
13
|
webex.push({ type: 'activate' });
|
|
14
14
|
if (this.debug)
|
|
15
|
-
console.log("Web Experimentation - Activating pages");
|
|
15
|
+
console.log("🚀 Web Experimentation - Activating pages");
|
|
16
16
|
}
|
|
17
17
|
trackEvent(event) {
|
|
18
18
|
const webex = this.getBrowserApi();
|
|
@@ -24,7 +24,8 @@ export class WebExperimenationService {
|
|
|
24
24
|
if (prop_name != 'event' && prop_name != 'action')
|
|
25
25
|
eventTags[prop_name] = event[prop_name];
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
if (this.debug)
|
|
28
|
+
console.log("🚀 Web Experimentation - Tracking event:", { type: 'event', eventName, tags: eventTags });
|
|
28
29
|
webex.push({ type: 'event', eventName, tags: eventTags });
|
|
29
30
|
}
|
|
30
31
|
getBrowserApi() {
|
|
@@ -37,6 +38,17 @@ export class WebExperimenationService {
|
|
|
37
38
|
return undefined;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
41
|
+
updateProfile(profileData) {
|
|
42
|
+
const webex = this.getBrowserApi();
|
|
43
|
+
if (!webex)
|
|
44
|
+
return;
|
|
45
|
+
if (this.debug)
|
|
46
|
+
console.log("🚀 Web Experimentation - Tracking attributes:", { type: 'user', attributes: profileData.custom });
|
|
47
|
+
webex.push({
|
|
48
|
+
type: "user",
|
|
49
|
+
attributes: profileData.custom
|
|
50
|
+
});
|
|
51
|
+
}
|
|
40
52
|
}
|
|
41
53
|
export default WebExperimenationService;
|
|
42
54
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,wBAAwB;IAE1B,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,OAAO,CAAA;IACjC,KAAK,GAAY,KAAK,CAAA;IAC7B,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,SAAS,CAAA;IAC5C,CAAC;IAEM,YAAY;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,MAAM,OAAO,wBAAwB;IAE1B,KAAK,GAAsB,GAAG,CAAA;IAC9B,IAAI,GAAsB,OAAO,CAAA;IACjC,KAAK,GAAY,KAAK,CAAA;IAC7B,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,SAAS,CAAA;IAC5C,CAAC;IAEM,YAAY;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IAC5E,CAAC;IAEM,UAAU,CAAC,KAAmC;QAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QAClD,MAAM,SAAS,GAAyB,EAAE,CAAA;QAC1C,KAAK,MAAM,SAAS,IAAK,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAA4C,EAAE,CAAC;YACpG,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,QAAQ;gBAAE,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;QAC9F,CAAC;QACD,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACtH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7D,CAAC;IAEM,aAAa;QAEhB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClB,MAAM,CAAC,UAAU,GAAG,EAA0D,CAAA;YAClF,OAAO,MAAM,CAAC,UAAU,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAA;QACpB,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,WAA+C;QAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9H,KAAK,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,WAAW,CAAC,MAAM;SACjC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,eAAe,wBAAwB,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export type OptimizelyWebExperimentationProps = {
|
|
2
2
|
projectId: string | number;
|
|
3
|
-
|
|
3
|
+
allowProjectOverride?: boolean;
|
|
4
|
+
useProxy?: boolean;
|
|
4
5
|
apiPrefix?: string;
|
|
5
6
|
};
|
|
6
|
-
export declare const OptimizelyWebExperimentationScript: ({ projectId,
|
|
7
|
+
export declare const OptimizelyWebExperimentationScript: ({ projectId, allowProjectOverride, useProxy, apiPrefix }: OptimizelyWebExperimentationProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
8
|
export default OptimizelyWebExperimentationScript;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint @next/next/no-before-interactive-script-outside-document: 0 */
|
|
3
|
+
import Script from 'next/script';
|
|
4
|
+
export const OptimizelyWebExperimentationScript = ({ projectId, allowProjectOverride = false, useProxy = false, apiPrefix = '/api/me' }) => {
|
|
5
|
+
function buildUrl(pid) {
|
|
6
|
+
return useProxy ?
|
|
7
|
+
`${apiPrefix}/exp?pid=${pid}` :
|
|
8
|
+
`https://cdn.optimizely.com/js/${pid}.js`;
|
|
9
|
+
}
|
|
10
|
+
return _jsxs(_Fragment, { children: [_jsx(Script, { id: 'web-experimentation-startup', strategy: 'beforeInteractive', children: `window["optimizely"] = window["optimizely"] || [];` }), allowProjectOverride ?
|
|
11
|
+
_jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', children: `
|
|
12
|
+
((w,d,l) => {
|
|
13
|
+
const localProject = l.getItem('_pid');
|
|
14
|
+
const queryProject = (new URLSearchParams(w.location.search)).get('pid');
|
|
15
|
+
const currentProject = queryProject || localProject || '${projectId}';
|
|
16
|
+
if (currentProject != localProject)
|
|
17
|
+
l.setItem('_pid', currentProject)
|
|
18
|
+
|
|
19
|
+
let ia = d.createElement('script');
|
|
20
|
+
ia.async=0;
|
|
21
|
+
ia.src='${buildUrl('\'+ currentProject +\'')}';
|
|
22
|
+
let s=d.getElementsByTagName('script')[0];
|
|
23
|
+
s.parentNode.insertBefore(ia,s);
|
|
24
|
+
})(window,document,localStorage)
|
|
25
|
+
` }) :
|
|
26
|
+
_jsx(Script, { id: 'web-experimentation-project', strategy: 'beforeInteractive', src: buildUrl(projectId) })] });
|
|
27
|
+
};
|
|
28
|
+
export default OptimizelyWebExperimentationScript;
|
|
29
|
+
//# sourceMappingURL=snippet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/products/web-experimentation/snippet.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,MAAM,MAAM,aAAa,CAAA;AAShC,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,SAAS,EAAqC,EAAE,EAAE;IAE1K,SAAS,QAAQ,CAAC,GAAkB;QAEhC,OAAO,QAAQ,CAAC,CAAC;YACb,GAAI,SAAU,YAAa,GAAI,EAAE,CAAC,CAAC;YACnC,iCAAkC,GAAI,KAAK,CAAA;IACnD,CAAC;IAED,OAAO,8BACH,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAG,oDAAoD,GAAU,EACpI,oBAAoB,CAAC,CAAC;gBACpB,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,YAAE;;;;8DAIpB,SAAU;;;;;;cAM1D,QAAQ,CAAC,wBAAwB,CAAE;;;;aAIrC,GAAU,CAAC,CAAC;gBACb,KAAC,MAAM,IAAC,EAAE,EAAC,6BAA6B,EAAC,QAAQ,EAAC,mBAAmB,EAAC,GAAG,EAAG,QAAQ,CAAC,SAAS,CAAC,GAAK,IAEzG,CAAA;AACP,CAAC,CAAA;AAED,eAAe,kCAAkC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import 'server-only';
|
|
3
3
|
import EnvTools from '../../utils/env';
|
|
4
4
|
import EnvVars from '../../env-vars';
|
|
5
|
-
import CRecsScript from '
|
|
5
|
+
import CRecsScript from '../../products/content-recs/snippet';
|
|
6
6
|
export default function (props) {
|
|
7
7
|
const crecs_client = props.contentRecsClient || EnvTools.readValue(EnvVars.ContentRecsClient);
|
|
8
8
|
const crecs_delivery = props.contentRecsDelivery || EnvTools.readValueAsInt(EnvVars.ContentRecsDelivery);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/server-components/scripts/footer.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,WAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/server-components/scripts/footer.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AACtC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,WAAW,MAAM,qCAAqC,CAAA;AAO7D,MAAM,CAAC,OAAO,WAAW,KAAyB;IAE9C,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,IAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC5F,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACxG,OAAO,4BACD,YAAY,IAAI,cAAc,IAAI,KAAC,WAAW,IAAC,MAAM,EAAG,YAAY,EAAG,QAAQ,EAAG,cAAc,GAAK,GACxG,CAAA;AACP,CAAC"}
|
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
export type HeaderScriptsProps = {
|
|
3
|
+
/**
|
|
4
|
+
* The public or private key for the Optimizely Data Platform that will be
|
|
5
|
+
* used to add the ODP tracking script.
|
|
6
|
+
*
|
|
7
|
+
* If not provided, it will be read from the "OPTIMIZELY_DATAPLATFORM_ID"
|
|
8
|
+
* environment variable.
|
|
9
|
+
*/
|
|
3
10
|
dataPlatformTrackerId?: string;
|
|
11
|
+
/**
|
|
12
|
+
* The Optimizely Web Experimentation Project ID that will be used within the
|
|
13
|
+
* frontend.
|
|
14
|
+
*
|
|
15
|
+
* If not provided, it will be read from the "OPTIMIZELY_WEB_EXPERIMENTATION_PROJECT"
|
|
16
|
+
* environment variable.
|
|
17
|
+
*/
|
|
4
18
|
experimentationProjectId?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Allow (persisted using localStorage) overriding of the Web Experimentation
|
|
21
|
+
* ProjectID. This is usefull if you need to use one demo site with multiple
|
|
22
|
+
* projects.
|
|
23
|
+
*
|
|
24
|
+
* If not provided (i.e. undefined), it will allow overriding based upon the
|
|
25
|
+
* "OPTIMIZELY_ONE_HELPER" environment variable.
|
|
26
|
+
*/
|
|
27
|
+
experimentationAllowOverride?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* When set, the Web Experimentation script will be proxied through a Next.JS
|
|
30
|
+
* api, so there's no call to the optimizely.com domain within the page. The
|
|
31
|
+
* snippet will be cached for 15 minutes, so this will add an additional delay
|
|
32
|
+
* to publishing new experiments.
|
|
33
|
+
*/
|
|
34
|
+
useScriptProxy?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The path where the proxy, included within this package has been installed,
|
|
37
|
+
* it defaults to /api/me, which is the path used when following the
|
|
38
|
+
* instructions of the README.
|
|
39
|
+
*/
|
|
40
|
+
apiPrefix?: string;
|
|
5
41
|
};
|
|
6
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Add the Scripts that must be included within the frontend to use the Optimizely
|
|
44
|
+
* One services.
|
|
45
|
+
*
|
|
46
|
+
* @param param0 The parameters for this component
|
|
47
|
+
* @returns The fragment with all Header Scripts
|
|
48
|
+
*/
|
|
49
|
+
export default function ({ dataPlatformTrackerId, experimentationProjectId, experimentationAllowOverride, useScriptProxy, apiPrefix }: HeaderScriptsProps): import("react/jsx-runtime").JSX.Element;
|