@remkoj/optimizely-one-nextjs 1.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/LICENSE +13 -0
- package/README.md +82 -0
- package/dist/api/graph-info-service.d.ts +14 -0
- package/dist/api/graph-info-service.js +37 -0
- package/dist/api/graph-info-service.js.map +1 -0
- package/dist/api/index.d.ts +20 -0
- package/dist/api/index.js +42 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/profile-api-service.d.ts +21 -0
- package/dist/api/profile-api-service.js +80 -0
- package/dist/api/profile-api-service.js.map +1 -0
- package/dist/api/responses.d.ts +2 -0
- package/dist/api/responses.js +2 -0
- package/dist/api/responses.js.map +1 -0
- package/dist/api/types.d.ts +18 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api.d.ts +5 -0
- package/dist/api.js +4 -0
- package/dist/api.js.map +1 -0
- package/dist/client-types.d.ts +133 -0
- package/dist/client-types.js +2 -0
- package/dist/client-types.js.map +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -0
- package/dist/components/context.d.ts +88 -0
- package/dist/components/context.js +71 -0
- package/dist/components/context.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/optimizely-one-gadget/audiences-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/audiences-panel.js +53 -0
- package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/exp-panel.d.ts +3 -0
- package/dist/components/optimizely-one-gadget/exp-panel.js +42 -0
- package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/graph-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/graph-panel.js +27 -0
- package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/ids-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/ids-panel.js +23 -0
- package/dist/components/optimizely-one-gadget/ids-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/index.d.ts +33 -0
- package/dist/components/optimizely-one-gadget/index.js +39 -0
- package/dist/components/optimizely-one-gadget/index.js.map +1 -0
- package/dist/components/optimizely-one-gadget/interests-panel.d.ts +7 -0
- package/dist/components/optimizely-one-gadget/interests-panel.js +23 -0
- package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -0
- package/dist/components/optimizely-one-gadget/logo.d.ts +6 -0
- package/dist/components/optimizely-one-gadget/logo.js +19 -0
- package/dist/components/optimizely-one-gadget/logo.js.map +1 -0
- package/dist/components/page-activator.d.ts +4 -0
- package/dist/components/page-activator.js +32 -0
- package/dist/components/page-activator.js.map +1 -0
- package/dist/components/use-test-mode.d.ts +11 -0
- package/dist/components/use-test-mode.js +81 -0
- package/dist/components/use-test-mode.js.map +1 -0
- package/dist/env-vars.d.ts +13 -0
- package/dist/env-vars.js +15 -0
- package/dist/env-vars.js.map +1 -0
- package/dist/products/client-types.d.ts +3 -0
- package/dist/products/client-types.js +2 -0
- package/dist/products/client-types.js.map +1 -0
- package/dist/products/content-recs/api.d.ts +19 -0
- package/dist/products/content-recs/api.js +42 -0
- package/dist/products/content-recs/api.js.map +1 -0
- package/dist/products/content-recs/client.d.ts +10 -0
- package/dist/products/content-recs/client.js +29 -0
- package/dist/products/content-recs/client.js.map +1 -0
- package/dist/products/content-recs/helpers.d.ts +20 -0
- package/dist/products/content-recs/helpers.js +27 -0
- package/dist/products/content-recs/helpers.js.map +1 -0
- package/dist/products/content-recs/index.d.ts +2 -0
- package/dist/products/content-recs/index.js +3 -0
- package/dist/products/content-recs/index.js.map +1 -0
- package/dist/products/data-platform/api.d.ts +41 -0
- package/dist/products/data-platform/api.js +116 -0
- package/dist/products/data-platform/api.js.map +1 -0
- package/dist/products/data-platform/client.d.ts +14 -0
- package/dist/products/data-platform/client.js +59 -0
- package/dist/products/data-platform/client.js.map +1 -0
- package/dist/products/data-platform/helpers.d.ts +22 -0
- package/dist/products/data-platform/helpers.js +31 -0
- package/dist/products/data-platform/helpers.js.map +1 -0
- package/dist/products/data-platform/index.d.ts +10 -0
- package/dist/products/data-platform/index.js +10 -0
- package/dist/products/data-platform/index.js.map +1 -0
- package/dist/products/index.d.ts +3 -0
- package/dist/products/index.js +4 -0
- package/dist/products/index.js.map +1 -0
- package/dist/products/types.d.ts +2 -0
- package/dist/products/types.js +2 -0
- package/dist/products/types.js.map +1 -0
- package/dist/products/web-experimentation/client.d.ts +11 -0
- package/dist/products/web-experimentation/client.js +42 -0
- package/dist/products/web-experimentation/client.js.map +1 -0
- package/dist/products/web-experimentation/helpers.d.ts +13 -0
- package/dist/products/web-experimentation/helpers.js +14 -0
- package/dist/products/web-experimentation/helpers.js.map +1 -0
- package/dist/products/web-experimentation/index.d.ts +1 -0
- package/dist/products/web-experimentation/index.js +2 -0
- package/dist/products/web-experimentation/index.js.map +1 -0
- package/dist/server-components/index.d.ts +1 -0
- package/dist/server-components/index.js +2 -0
- package/dist/server-components/index.js.map +1 -0
- package/dist/server-components/scripts/footer.d.ts +6 -0
- package/dist/server-components/scripts/footer.js +11 -0
- package/dist/server-components/scripts/footer.js.map +1 -0
- package/dist/server-components/scripts/header.d.ts +6 -0
- package/dist/server-components/scripts/header.js +12 -0
- package/dist/server-components/scripts/header.js.map +1 -0
- package/dist/server-components/scripts/index.d.ts +18 -0
- package/dist/server-components/scripts/index.js +19 -0
- package/dist/server-components/scripts/index.js.map +1 -0
- package/dist/server-components/scripts/snippets/optimizely-content-recs.d.ts +6 -0
- package/dist/server-components/scripts/snippets/optimizely-content-recs.js +19 -0
- package/dist/server-components/scripts/snippets/optimizely-content-recs.js.map +1 -0
- package/dist/server-components/scripts/snippets/optimizely-data-patform.d.ts +5 -0
- package/dist/server-components/scripts/snippets/optimizely-data-patform.js +37 -0
- package/dist/server-components/scripts/snippets/optimizely-data-patform.js.map +1 -0
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.d.ts +5 -0
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js +9 -0
- package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/env.d.ts +11 -0
- package/dist/utils/env.js +49 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/session.d.ts +11 -0
- package/dist/utils/session.js +28 -0
- package/dist/utils/session.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext, useState, useMemo } from 'react';
|
|
4
|
+
import WebExperimenationService from '../products/web-experimentation/client';
|
|
5
|
+
import DataPlatformService from '../products/data-platform/client';
|
|
6
|
+
import ContentRecsService from '../products/content-recs/client';
|
|
7
|
+
function isActiveWithActivatePage(toTest) {
|
|
8
|
+
return (toTest.isActive && toTest.activatePage && typeof (toTest.activatePage) == 'function') ?? false;
|
|
9
|
+
}
|
|
10
|
+
function isActiveWithTrackPage(toTest) {
|
|
11
|
+
return (toTest.isActive && toTest.trackPage && typeof (toTest.trackPage) == 'function') ?? false;
|
|
12
|
+
}
|
|
13
|
+
function isActiveWithEventTracker(toTest) {
|
|
14
|
+
return (toTest.isActive && toTest.trackEvent && typeof (toTest.trackEvent) == 'function') ?? false;
|
|
15
|
+
}
|
|
16
|
+
const OptimizelyOneContext = createContext({ services: [], setDebug: () => { }, addService: () => { }, removeService: () => { } });
|
|
17
|
+
OptimizelyOneContext.displayName = "Optimizely One: Context";
|
|
18
|
+
function useOptimizelyOne() {
|
|
19
|
+
const ctx = useContext(OptimizelyOneContext);
|
|
20
|
+
const result = useMemo(() => {
|
|
21
|
+
return {
|
|
22
|
+
...ctx,
|
|
23
|
+
getActivatePageServices: () => (ctx.services || []).filter(isActiveWithActivatePage),
|
|
24
|
+
getTrackPageServices: () => (ctx.services || []).filter(isActiveWithTrackPage),
|
|
25
|
+
getService: (code) => (ctx.services || []).filter(s => s.code == code)[0],
|
|
26
|
+
track: (event) => {
|
|
27
|
+
if (ctx.disableTracking) {
|
|
28
|
+
if (ctx.debug)
|
|
29
|
+
console.log('🔐 [Optimizely One] Tracking disabled, ignored event');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (ctx.debug) {
|
|
33
|
+
console.groupCollapsed(`📢 [Optimizely One] Tracking ${event.event} event`);
|
|
34
|
+
console.log('Event:', event);
|
|
35
|
+
}
|
|
36
|
+
(ctx.services || []).filter(isActiveWithEventTracker).forEach(service => service.trackEvent(event));
|
|
37
|
+
if (ctx.debug) {
|
|
38
|
+
console.groupEnd();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}, [ctx]);
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
const OptimizelyOneProvider = ({ value, children }) => {
|
|
46
|
+
const [ctxDebug, setCtxDebug] = useState(value?.debug ?? false);
|
|
47
|
+
const [services, setServices] = useState([
|
|
48
|
+
new WebExperimenationService(),
|
|
49
|
+
new DataPlatformService(),
|
|
50
|
+
new ContentRecsService(),
|
|
51
|
+
...(value?.services || [])
|
|
52
|
+
].sort((a, b) => a.order - b.order));
|
|
53
|
+
services.forEach(service => service.debug = ctxDebug);
|
|
54
|
+
return _jsx(OptimizelyOneContext.Provider, { value: {
|
|
55
|
+
disableAutotracking: value?.disableAutotracking,
|
|
56
|
+
disableTracking: value?.disableTracking,
|
|
57
|
+
services,
|
|
58
|
+
debug: ctxDebug,
|
|
59
|
+
setDebug: debugEnabled => { services.forEach(service => service.debug = debugEnabled); setCtxDebug(debugEnabled); },
|
|
60
|
+
addService: service => setServices(list => list.concat([service]).sort((a, b) => a.order - b.order)),
|
|
61
|
+
removeService: service => {
|
|
62
|
+
const idx = services.indexOf(service);
|
|
63
|
+
if (idx == -1)
|
|
64
|
+
return;
|
|
65
|
+
setServices(list => list.slice(0, idx).concat(list.slice(idx + 1)));
|
|
66
|
+
},
|
|
67
|
+
}, children: children });
|
|
68
|
+
};
|
|
69
|
+
OptimizelyOneProvider.displayName = "Optimizely One: State & Context provider";
|
|
70
|
+
export { OptimizelyOneProvider, useOptimizelyOne };
|
|
71
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/components/context.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { OptimizelyOneGadget } from './optimizely-one-gadget';
|
|
2
|
+
export { OptimizelyOneProvider, useOptimizelyOne } from './context';
|
|
3
|
+
export { PageActivator } from './page-activator';
|
|
4
|
+
export { useIsInTestMode } from './use-test-mode';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { ArrowPathIcon, UserGroupIcon } from '@heroicons/react/20/solid';
|
|
4
|
+
import useSWRInfinite from 'swr/infinite';
|
|
5
|
+
const buildGetKey = (servicePrefix, pageSize) => {
|
|
6
|
+
const serviceURL = `${servicePrefix}?scope=audiences&limit=${pageSize}`;
|
|
7
|
+
const getKey = (pageIndex, previousPageData) => {
|
|
8
|
+
if (previousPageData && previousPageData.audiencesPageCount < pageIndex)
|
|
9
|
+
return null;
|
|
10
|
+
return `${serviceURL}&page=${pageIndex}`;
|
|
11
|
+
};
|
|
12
|
+
return getKey;
|
|
13
|
+
};
|
|
14
|
+
export const AudiencesPanel = ({ servicePrefix = '/api/me', refreshInterval = 0 }) => {
|
|
15
|
+
// Prepare data fetching
|
|
16
|
+
const pageSize = 50;
|
|
17
|
+
const getKey = buildGetKey(servicePrefix, pageSize);
|
|
18
|
+
const config = {
|
|
19
|
+
initialSize: 1,
|
|
20
|
+
revalidateAll: true,
|
|
21
|
+
revalidateOnMount: true,
|
|
22
|
+
revalidateIfStale: true,
|
|
23
|
+
refreshInterval: refreshInterval > 0 ? Math.max(refreshInterval, 10000) : 0, //Minimum refresh interval for audiences is 10 seconds
|
|
24
|
+
fetcher: async (key) => {
|
|
25
|
+
return fetch(key).then(r => {
|
|
26
|
+
if (!r.ok)
|
|
27
|
+
throw new Error(`${r.status}: ${r.statusText}`);
|
|
28
|
+
return r.json();
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
// Fetch results
|
|
33
|
+
const { data: profiles, isLoading, isValidating, error, size, setSize } = useSWRInfinite(getKey, config);
|
|
34
|
+
// Post-process the received values
|
|
35
|
+
const audiencePages = !profiles ? 1 : (profiles[0]?.audiencesPageCount || 1);
|
|
36
|
+
const audienceCount = !profiles ? 0 : (profiles[0]?.audiencesCount || 0);
|
|
37
|
+
const hasMore = size < audiencePages;
|
|
38
|
+
// Automatically correct to the correct size, based upon the response
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
let newSize = !profiles ? -1 : (profiles[0]?.audiencesPageCount || -1);
|
|
41
|
+
if (newSize >= 1 && size != newSize)
|
|
42
|
+
setSize(newSize);
|
|
43
|
+
}, [size, profiles]);
|
|
44
|
+
// Handle error
|
|
45
|
+
if (error)
|
|
46
|
+
return _jsx("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: "There was an error loading your profile information" });
|
|
47
|
+
// Show list
|
|
48
|
+
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 audiences"] }), hasMore && _jsxs("p", { className: 'oo-text-[14px] oo-border oo-border-amber-800 oo-bg-amber-200 oo-text-amber-800 oo-p-1 oo-my-1 oo-rounded-md', children: ["Showing results for the first ", size * pageSize, " audiences of ", audienceCount, ", ", _jsx("span", { onClick: () => setSize(size + 1), className: "oo-cursor-pointer oo-underline oo-text-blue-800", children: "load more" })] }), 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 the audiences..."] }), _jsx("ul", { className: 'oo-text-[14px] oo-grid oo-grid-cols-1 oo-divide-y oo-divide-slate-200', children: (profiles || []).map(profile => (profile?.audiences ?? []).map(a => {
|
|
49
|
+
return _jsxs("li", { className: 'oo-py-1', children: [_jsx(UserGroupIcon, { className: 'oo-inline-block oo-h-4 oo-w-4 oo-mr-2' }), a.name] }, "audience-" + a.id);
|
|
50
|
+
})).flat() }), hasMore && _jsx("p", { onClick: () => setSize(size + 1), className: 'oo-text-center oo-inline-block oo-cursor-pointer oo-px-2 oo-py-1 oo-border oo-border-b-0 oo-border-slate-300 oo-rounded-md oo-bg-blue-500 oo-text-white', children: "Load more" }), _jsxs("p", { className: 'oo-text-[12px] oo-m-2 oo-mt-3 oo-p-1 md:oo-p-2 oo-rounded-md oo-bg-amber-200 oo-border oo-border-amber-800 oo-text-amber-800', children: [_jsx("span", { className: 'oo-font-bold', children: "Please note:" }), " Interest based audiences are updated once per hour"] })] });
|
|
51
|
+
};
|
|
52
|
+
export default AudiencesPanel;
|
|
53
|
+
//# sourceMappingURL=audiences-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audiences-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/audiences-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import Link from 'next/link';
|
|
4
|
+
import { useOptimizelyOne } from '../context';
|
|
5
|
+
export const ExpPanel = () => {
|
|
6
|
+
const opti = useOptimizelyOne();
|
|
7
|
+
const webEx = opti.getService('webex')?.getBrowserApi();
|
|
8
|
+
const data = webEx?.get ? webEx.get('data') : undefined;
|
|
9
|
+
const [pagesObject, setPagesObject] = useState({});
|
|
10
|
+
const [experimentStates, setExperimentStates] = useState({});
|
|
11
|
+
const [campaignStates, setCampaignStates] = useState({});
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
setPagesObject(webEx?.get ? webEx?.get('state').getPageStates({ isActive: true }) : {});
|
|
14
|
+
setExperimentStates(webEx?.get ? webEx?.get('state').getExperimentStates({ isActive: true }) : {});
|
|
15
|
+
setCampaignStates(webEx?.get ? webEx?.get('state').getCampaignStates({ isActive: true }) : {});
|
|
16
|
+
const intervalId = setInterval(() => {
|
|
17
|
+
setPagesObject(webEx?.get ? webEx?.get('state').getPageStates({ isActive: true }) : {});
|
|
18
|
+
setExperimentStates(webEx?.get ? webEx?.get('state').getExperimentStates({ isActive: true }) : {});
|
|
19
|
+
setCampaignStates(webEx?.get ? webEx?.get('state').getCampaignStates({ isActive: true }) : {});
|
|
20
|
+
}, 2000);
|
|
21
|
+
return () => clearInterval(intervalId);
|
|
22
|
+
}, [webEx]);
|
|
23
|
+
// Process pages
|
|
24
|
+
const pagesArray = [];
|
|
25
|
+
for (const pageId of Object.getOwnPropertyNames(pagesObject))
|
|
26
|
+
pagesArray.push(pagesObject[pageId]);
|
|
27
|
+
// Process experimentns
|
|
28
|
+
const experimentsArray = [];
|
|
29
|
+
for (const experimentId of Object.getOwnPropertyNames(experimentStates))
|
|
30
|
+
experimentsArray.push(experimentStates[experimentId]);
|
|
31
|
+
// Process campaigns
|
|
32
|
+
const campaignsArray = [];
|
|
33
|
+
for (const campaignId of Object.getOwnPropertyNames(campaignStates))
|
|
34
|
+
campaignsArray.push(campaignStates[campaignId]);
|
|
35
|
+
const filteredCampaigns = campaignsArray.filter(c => {
|
|
36
|
+
const expIds = experimentsArray.map(ed => ed.id);
|
|
37
|
+
return !expIds.includes(c.experiment.id);
|
|
38
|
+
});
|
|
39
|
+
return _jsxs("dl", { className: 'oo-text-[14px]', children: [_jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Script information:" }), _jsxs("dd", { children: ["Account id: ", data?.accountId, "; Project id: ", _jsx(Link, { href: `https://app.optimizely.com/v2/projects/${data?.projectId ?? ''}`, target: "_blank", className: "oo-underline oo-text-blue-800", children: data?.projectId }), "; Revision: ", data?.revision] }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Active page(s):" }), _jsx("dd", { children: _jsx("ul", { children: pagesArray.map(p => _jsx("li", { children: _jsx(Link, { href: `https://app.optimizely.com/v2/projects/${data?.projectId ?? ''}/implementation/pages/${p.id}`, target: "_blank", className: "oo-underline oo-text-blue-800", children: p.name || p.apiName }) }, `exp-page-${data?.projectId}-${p.id}`)) }) }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Active experiment(s):" }), _jsx("dd", { children: _jsx("ul", { children: experimentsArray.map(e => _jsxs("li", { children: [_jsx(Link, { href: `https://app.optimizely.com/v2/projects/${data?.projectId ?? ''}/experiments/${e.id}`, target: "_blank", className: "oo-underline oo-text-blue-800", children: e.experimentName || e.id }), ", variant: ", _jsx(Link, { href: `https://app.optimizely.com/v2/projects/${data?.projectId ?? ''}/experiments/${e.id}/variations/${e.variation.id}`, target: "_blank", className: "oo-underline oo-text-blue-800", children: e.variation.name || e.variation.id })] }, `exp-${data?.projectId}-${e.id}`)) }) }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Active Personalization Campaigns(s):" }), _jsx("dd", { children: _jsx("ul", { children: filteredCampaigns.map(e => _jsxs("li", { children: [_jsx(Link, { href: `https://app.optimizely.com/v2/projects/${data?.projectId ?? ''}/campaigns/${e.id}`, target: "_blank", className: "oo-underline oo-text-blue-800", children: e.campaignName || e.id }), "; Audience(s): ", e.audiences.map(a => _jsxs("span", { children: [_jsx(Link, { href: `https://app.optimizely.com/v2/projects/${data?.projectId ?? ''}/audiences/${a.id}`, target: "_blank", className: "oo-underline oo-text-blue-800", children: a.name }), ", "] }, "exp-pers-aud-" + a.id))] }, `campaign-${data?.projectId}-${e.id}`)) }) })] });
|
|
40
|
+
};
|
|
41
|
+
export default ExpPanel;
|
|
42
|
+
//# sourceMappingURL=exp-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exp-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/exp-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import useSWR from 'swr';
|
|
3
|
+
import Link from 'next/link';
|
|
4
|
+
export const GraphPanel = ({ servicePrefix = '/api/me', refreshInterval = 30000 }) => {
|
|
5
|
+
const id = `${servicePrefix}/graph`;
|
|
6
|
+
const { data, isLoading, error } = useSWR(id, {
|
|
7
|
+
revalidateOnMount: true,
|
|
8
|
+
refreshInterval,
|
|
9
|
+
fetcher: (key) => fetch(key).then(r => {
|
|
10
|
+
if (!r.ok)
|
|
11
|
+
throw new Error(`${r.status}: ${r.statusText}`);
|
|
12
|
+
return r.json();
|
|
13
|
+
})
|
|
14
|
+
});
|
|
15
|
+
if (isLoading)
|
|
16
|
+
return _jsx("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: "Loading Optimizely Graph information..." });
|
|
17
|
+
if (error)
|
|
18
|
+
return _jsx("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: "There was an error loading Optimizely Graph information" });
|
|
19
|
+
return _jsxs(_Fragment, { children: [_jsxs("dl", { className: 'oo-text-[14px]', children: [_jsx("dt", { className: 'oo-font-bold', children: "Publishing changes to:" }), _jsx("dd", { className: 'oo-pl-2', children: _jsx("ul", { children: (data?.hooks || []).map(hook => _jsxs("li", { children: [hook.method && _jsxs("span", { className: 'oo-text-amber-800', children: ["(", hook.method?.toLowerCase() ?? '', ") "] }), hook.url, hook.hasQueryParams && _jsx(_Fragment, { children: "?..." })] }, `webhook-${hook.url}`)) }) }), _jsx("dt", { className: 'oo-font-bold oo-pt-4', children: "Exposing content from:" }), _jsx("dd", { className: 'oo-pl-2', children: _jsx("ul", { children: (data?.sources || []).map(source => _jsxs("li", { children: [updateLabel(source.label), ", available languages: ", source.languages.join(", ")] }, `source-${source.label}`)) }) })] }), _jsx("p", { className: 'oo-pt-4 oo-text-[14px]', children: _jsx(Link, { className: 'oo-underline oo-text-blue-800', href: "https://cg.optimizely.com/app/portal/", target: '_new', children: "Login to Optimizely Graph" }) })] });
|
|
20
|
+
};
|
|
21
|
+
function updateLabel(label) {
|
|
22
|
+
if (label == "default")
|
|
23
|
+
return "Optimizely CMS";
|
|
24
|
+
return label;
|
|
25
|
+
}
|
|
26
|
+
export default GraphPanel;
|
|
27
|
+
//# sourceMappingURL=graph-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/graph-panel.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,IAAI,MAAM,WAAW,CAAA;AAO5B,MAAM,CAAC,MAAM,UAAU,GAAwC,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,GAAG,KAAK,EAAC,EAAE,EAAE;IAErH,MAAM,EAAE,GAAG,GAAI,aAAc,QAAQ,CAAA;IACrC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAc,EAAE,EAAE;QACvD,iBAAiB,EAAE,IAAI;QACvB,eAAe;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,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,UAAU,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC;KACL,CAAC,CAAA;IAEF,IAAI,SAAS;QACT,OAAO,YAAG,SAAS,EAAC,iHAAiH,wDAA4C,CAAA;IAErL,IAAI,KAAK;QACL,OAAO,YAAG,SAAS,EAAC,iHAAiH,wEAA4D,CAAA;IAErM,OAAO,8BACH,cAAI,SAAS,EAAC,gBAAgB,aAC1B,aAAI,SAAS,EAAC,cAAc,uCAA4B,EACxD,aAAI,SAAS,EAAC,SAAS,YACnB,uBACM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,yBAAoC,IAAI,CAAC,MAAM,IAAI,gBAAM,SAAS,EAAC,mBAAmB,kBAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAW,EAAG,IAAI,CAAC,GAAG,EAAI,IAAI,CAAC,cAAc,IAAI,qCAAS,KAA3K,WAAY,IAAI,CAAC,GAAI,EAAE,CAA0J,CAAC,GAC5N,GACJ,EACL,aAAI,SAAS,EAAC,sBAAsB,uCAA4B,EAChE,aAAI,SAAS,EAAC,SAAS,YACnB,uBACM,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,yBAAsC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA2B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAA5G,UAAW,MAAM,CAAC,KAAK,EAAE,CAAyF,CAAC,GACjK,GACJ,IACJ,EACL,YAAG,SAAS,EAAC,wBAAwB,YAAC,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,EAAC,IAAI,EAAC,uCAAuC,EAAC,MAAM,EAAC,MAAM,0CAAiC,GAAI,IACtL,CAAA;AACP,CAAC,CAAA;AAED,SAAS,WAAW,CAAC,KAAa;IAE9B,IAAI,KAAK,IAAI,SAAS;QAClB,OAAO,gBAAgB,CAAA;IAC3B,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { usePathname } from 'next/navigation';
|
|
3
|
+
import useSWR from 'swr';
|
|
4
|
+
export const IdsPanel = ({ servicePrefix = '/api/me', refreshInterval = 2000 }) => {
|
|
5
|
+
const currentPath = usePathname();
|
|
6
|
+
const ids = `${servicePrefix}?scope=ids`;
|
|
7
|
+
const { data: profile, isLoading, error } = useSWR(ids, {
|
|
8
|
+
revalidateOnMount: true,
|
|
9
|
+
refreshInterval,
|
|
10
|
+
fetcher: () => fetch(ids).then(r => {
|
|
11
|
+
if (!r.ok)
|
|
12
|
+
throw new Error(`${r.status}: ${r.statusText}`);
|
|
13
|
+
return r.json();
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
if (isLoading)
|
|
17
|
+
return _jsx("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: "Loading your profile information..." });
|
|
18
|
+
if (error)
|
|
19
|
+
return _jsx("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: "There was an error loading your profile information" });
|
|
20
|
+
return _jsx(_Fragment, { children: _jsxs("dl", { className: 'oo-text-[14px]', children: [_jsx("dt", { className: 'oo-font-bold', children: "Frontend:" }), _jsx("dd", { children: profile?.ids.frontend ?? 'n/a' }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Web Experimentation:" }), _jsx("dd", { children: profile?.ids.webExperimentation ?? 'n/a' }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Content Intelligence:" }), _jsx("dd", { children: profile?.ids.contentIntelligence ?? 'n/a' }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Data Platform:" }), _jsx("dd", { children: profile?.ids.dataPlatform ?? 'n/a' }), _jsx("dt", { className: 'oo-font-bold oo-pt-1', children: "Current path:" }), _jsx("dd", { children: currentPath })] }) });
|
|
21
|
+
};
|
|
22
|
+
export default IdsPanel;
|
|
23
|
+
//# sourceMappingURL=ids-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/ids-panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,MAAM,MAAM,KAAK,CAAA;AAQxB,MAAM,CAAC,MAAM,QAAQ,GAAsC,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,GAAG,IAAI,EAAC,EAAE,EAAE;IAEhH,MAAM,WAAW,GAAG,WAAW,EAAE,CAAA;IAEjC,MAAM,GAAG,GAAG,GAAI,aAAc,YAAY,CAAA;IAC1C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAa,GAAG,EAAE;QAChE,iBAAiB,EAAE,IAAI;QACvB,eAAe;QACf,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,CAAC,CAAC,EAAE;gBACL,MAAM,IAAI,KAAK,CAAC,GAAI,CAAC,CAAC,MAAO,KAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC;KACL,CAAC,CAAA;IAEF,IAAI,SAAS;QACT,OAAO,YAAG,SAAS,EAAC,iHAAiH,oDAAwC,CAAA;IAEjL,IAAI,KAAK;QACL,OAAO,YAAG,SAAS,EAAC,iHAAiH,oEAAwD,CAAA;IAEjM,OAAO,4BACH,cAAI,SAAS,EAAC,gBAAgB,aAC1B,aAAI,SAAS,EAAC,cAAc,0BAAe,EAC3C,uBAAM,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK,GAAO,EAC3C,aAAI,SAAS,EAAC,sBAAsB,qCAA0B,EAC9D,uBAAM,OAAO,EAAE,GAAG,CAAC,kBAAkB,IAAI,KAAK,GAAO,EACrD,aAAI,SAAS,EAAC,sBAAsB,sCAA2B,EAC/D,uBAAM,OAAO,EAAE,GAAG,CAAC,mBAAmB,IAAI,KAAK,GAAO,EACtD,aAAI,SAAS,EAAC,sBAAsB,+BAAoB,EACxD,uBAAM,OAAO,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK,GAAO,EAC/C,aAAI,SAAS,EAAC,sBAAsB,8BAAmB,EACvD,uBAAM,WAAW,GAAO,IACvB,GACN,CAAA;AACP,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type FunctionComponent } from 'react';
|
|
2
|
+
import '../../styles.css';
|
|
3
|
+
export type OptimizelyOneGadgetProps = {
|
|
4
|
+
/**
|
|
5
|
+
* The API Route at which the companion API has been installed in your
|
|
6
|
+
* Next.JS Application.
|
|
7
|
+
*
|
|
8
|
+
* If not set, defaults to "/api/me"
|
|
9
|
+
*/
|
|
10
|
+
servicePrefix?: string;
|
|
11
|
+
/**
|
|
12
|
+
* The interval, in milliseconds, between refreshes of the content in the
|
|
13
|
+
* debug panels.
|
|
14
|
+
*
|
|
15
|
+
* If not set, defaults to 0 (no auto refresh)
|
|
16
|
+
*/
|
|
17
|
+
refreshInterval?: number;
|
|
18
|
+
/**
|
|
19
|
+
* If set, bypasses the enabled/disabled detection allowing the application
|
|
20
|
+
* to take control of the visibility of the gadget.
|
|
21
|
+
*/
|
|
22
|
+
show?: boolean;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Add an Optimizely One Debug helper to the page, which can be triggered by
|
|
26
|
+
* the "test cookie" feature of the Optimizely Web Experimentation browser
|
|
27
|
+
* extension.
|
|
28
|
+
*
|
|
29
|
+
* @param param0 The component properties
|
|
30
|
+
* @returns The component JSX
|
|
31
|
+
*/
|
|
32
|
+
export declare const OptimizelyOneGadget: FunctionComponent<OptimizelyOneGadgetProps>;
|
|
33
|
+
export default OptimizelyOneGadget;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Popover, Tab } from '@headlessui/react';
|
|
4
|
+
import { ChevronUpIcon, UserGroupIcon, TagIcon, RocketLaunchIcon, IdentificationIcon, Square3Stack3DIcon } from '@heroicons/react/20/solid';
|
|
5
|
+
import OptiLogo from './logo';
|
|
6
|
+
import { useIsInTestMode } from '../use-test-mode';
|
|
7
|
+
// Import the Panel CSS
|
|
8
|
+
import '../../styles.css';
|
|
9
|
+
// Prepare panel imports
|
|
10
|
+
import dynamic from 'next/dynamic';
|
|
11
|
+
const Panels = {
|
|
12
|
+
Ids: dynamic(() => import('./ids-panel'), { ssr: false }),
|
|
13
|
+
Experiments: dynamic(() => import('./exp-panel'), { ssr: false }),
|
|
14
|
+
Interests: dynamic(() => import('./interests-panel'), { ssr: false }),
|
|
15
|
+
Audiences: dynamic(() => import('./audiences-panel'), { ssr: false }),
|
|
16
|
+
Graph: dynamic(() => import('./graph-panel'), { ssr: false })
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Add an Optimizely One Debug helper to the page, which can be triggered by
|
|
20
|
+
* the "test cookie" feature of the Optimizely Web Experimentation browser
|
|
21
|
+
* extension.
|
|
22
|
+
*
|
|
23
|
+
* @param param0 The component properties
|
|
24
|
+
* @returns The component JSX
|
|
25
|
+
*/
|
|
26
|
+
export const OptimizelyOneGadget = ({ servicePrefix = "/api/me", refreshInterval = 0, show = undefined }) => {
|
|
27
|
+
const inTestMode = useIsInTestMode();
|
|
28
|
+
const forceHidden = show != undefined && show == false;
|
|
29
|
+
const forceShown = show != undefined && show == true;
|
|
30
|
+
if (forceHidden || (!forceShown && !inTestMode))
|
|
31
|
+
return _jsx(_Fragment, {});
|
|
32
|
+
console.groupCollapsed(`🔎 [Optimizely One Gadget] Initializing Optimizely Demo Gadget`);
|
|
33
|
+
console.log(`Optimizely One Demo API: ${servicePrefix}`);
|
|
34
|
+
console.log(`Refresh interval: ${refreshInterval == 0 ? 'DISABLED' : refreshInterval + 'ms'}`);
|
|
35
|
+
console.groupEnd();
|
|
36
|
+
return _jsxs(Popover, { className: "oo-gadget md:oo-fixed md:oo-bottom-0 oo-z-[500]", children: [_jsxs(Popover.Button, { className: 'oo-fixed oo-bottom-0 oo-right-0 oo-w-full oo-h-[50px] oo-flex oo-flex-row oo-justify-between oo-p-2 oo-border-t oo-border-slate-500 oo-bg-slate-100 oo-text-slate-800 md:oo-w-[350px] md:oo-right-4 md:oo-rounded-t-md md:oo-border-x oo-z-[500] oo-p-[10px]', children: [_jsx(OptiLogo, { className: 'oo-w-auto oo-h-full' }), _jsx(ChevronUpIcon, { className: "oo-ui-open:oo-rotate-180 oo-ui-open:oo-transform oo-h-full oo-w-auto oo-inline-block" })] }), _jsxs(Popover.Panel, { className: "oo-fixed oo-bottom-[50px] oo-right-0 oo-w-full oo-top-0 md:oo-border md:oo-border-slate-300 oo-bg-white md:oo-right-4 md:oo-bottom-[55px] md:oo-w-[600px] oo-z-[501] oo-max-w-full oo-flex oo-flex-col oo-justify-stretch md:oo-h-[350px] md:oo-top-auto md:oo-rounded-md md:oo-shadow-xl md:oo-overflow-hidden", children: [_jsxs("div", { className: "oo-border-b oo-border-slate-300 oo-bg-slate-100 oo-text-slate-800 oo-text-[18px] oo-font-bold oo-p-1 oo-flex-none md:oo-p-2", children: [_jsx(IdentificationIcon, { className: 'oo-inline-block oo-h-[24px] oo-w-[24px] oo-mr-2 oo-text-blue-500' }), "My Profile"] }), _jsxs(Tab.Group, { children: [_jsxs(Tab.List, { className: "oo-flex-none oo-flex oo-justify-between md:oo-justify-start oo-gap-2 oo-p-1 md:oo-p-2 oo-pb-0 md:oo-pb-0 oo-border-b oo-border-slate-300 oo-text-[14px]", children: [_jsxs(Tab, { as: "div", className: 'oo-text-center oo-inline-block oo-cursor-pointer oo-px-2 oo-py-1 oo-border oo-border-b-0 oo-border-slate-300 oo-rounded-t-md oo-ui-selected:oo-bg-blue-500 oo-ui-selected:oo-text-white', children: [_jsx(TagIcon, { className: 'oo-inline-block oo-h-[18px] oo-w-[18px] oo-mr-2' }), "Interests"] }), _jsxs(Tab, { as: "div", className: 'oo-text-center oo-inline-block oo-cursor-pointer oo-px-2 oo-py-1 oo-border oo-border-b-0 oo-border-slate-300 oo-rounded-t-md oo-ui-selected:oo-bg-blue-500 oo-ui-selected:oo-text-white', children: [_jsx(UserGroupIcon, { className: 'oo-inline-block oo-h-[18px] oo-w-[18px] oo-mr-2' }), "Audiences"] }), _jsxs(Tab, { as: "div", className: 'oo-text-center oo-inline-block oo-cursor-pointer oo-px-2 oo-py-1 oo-border oo-border-b-0 oo-border-slate-300 oo-rounded-t-md oo-ui-selected:oo-bg-blue-500 oo-ui-selected:oo-text-white', children: [_jsx(RocketLaunchIcon, { className: 'oo-inline-block oo-h-[18px] oo-w-[18px] oo-mr-2' }), "Experiments"] }), _jsxs(Tab, { as: "div", className: 'oo-text-center oo-inline-block oo-cursor-pointer oo-px-2 oo-py-1 oo-border oo-border-b-0 oo-border-slate-300 oo-rounded-t-md oo-ui-selected:oo-bg-blue-500 oo-ui-selected:oo-text-white', children: [_jsx(IdentificationIcon, { className: 'oo-inline-block oo-h-[18px] oo-w-[18px] oo-mr-2' }), "Identifiers"] }), _jsxs(Tab, { as: "div", className: 'oo-text-center oo-inline-block oo-cursor-pointer oo-px-2 oo-py-1 oo-border oo-border-b-0 oo-border-slate-300 oo-rounded-t-md oo-ui-selected:oo-bg-blue-500 oo-ui-selected:oo-text-white', children: [_jsx(Square3Stack3DIcon, { className: 'oo-inline-block oo-h-[18px] oo-w-[18px] oo-mr-2' }), "Graph"] })] }), _jsxs(Tab.Panels, { className: "oo-flex-1 md:oo-h-24 oo-overscroll-contain oo-overflow-y-auto", children: [_jsx(Tab.Panel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Interests, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(Tab.Panel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Audiences, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(Tab.Panel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Experiments, {}) }), _jsx(Tab.Panel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Ids, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(Tab.Panel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Graph, { servicePrefix: servicePrefix }) })] })] })] })] });
|
|
37
|
+
};
|
|
38
|
+
export default OptimizelyOneGadget;
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { TagIcon, ArrowPathIcon } from '@heroicons/react/20/solid';
|
|
3
|
+
import useSWR from 'swr';
|
|
4
|
+
export const InterestsPanel = ({ servicePrefix = '/api/me', refreshInterval = 2000 }) => {
|
|
5
|
+
const topics = `${servicePrefix}?scope=topics`;
|
|
6
|
+
const { data: profile, isLoading, isValidating, error } = useSWR(topics, {
|
|
7
|
+
revalidateOnMount: true,
|
|
8
|
+
fetcher: () => fetch(topics).then(r => {
|
|
9
|
+
if (!r.ok)
|
|
10
|
+
throw new Error(`${r.status}: ${r.statusText}`);
|
|
11
|
+
return r.json();
|
|
12
|
+
}),
|
|
13
|
+
refreshInterval
|
|
14
|
+
});
|
|
15
|
+
if (error)
|
|
16
|
+
return _jsx("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: "There was an error loading your profile information" });
|
|
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
|
+
if (contentTopics.length == 0)
|
|
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"] }), _jsx("ul", { className: 'oo-text-[14px] oo-grid oo-grid-cols-1 oo-divide-y oo-divide-slate-200', children: contentTopics })] });
|
|
21
|
+
};
|
|
22
|
+
export default InterestsPanel;
|
|
23
|
+
//# sourceMappingURL=interests-panel.js.map
|
|
@@ -0,0 +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,8BACD,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,EACvP,aAAI,SAAS,EAAC,uEAAuE,YAC/E,aAAa,GACd,IACN,CAAA;AACP,CAAC,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const defaultValues = {
|
|
3
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4
|
+
viewBox: "0 0 162 38",
|
|
5
|
+
fill: 'none',
|
|
6
|
+
"aria-hidden": true
|
|
7
|
+
};
|
|
8
|
+
export const OptimizelyLogo = props => {
|
|
9
|
+
const title = props.title ?? 'Optimizely';
|
|
10
|
+
const svgProps = {
|
|
11
|
+
...defaultValues,
|
|
12
|
+
...props
|
|
13
|
+
};
|
|
14
|
+
if (svgProps.title)
|
|
15
|
+
delete svgProps.title;
|
|
16
|
+
return _jsxs("svg", { ...svgProps, children: [_jsx("title", { children: title }), _jsx("path", { d: "m12.8359 20.4556v4.485c3.4221-.004 6.7029-1.3235 9.1227-3.6691s3.781-5.5257 3.7852-8.8428h-4.627c-.0027 2.128-.8761 4.1682-2.4284 5.6729-1.5524 1.5048-3.6571 2.3513-5.8525 2.354z", fill: "#3be081" }), _jsx("path", { d: "m12.8346 32.8099c-2.1796 0-4.26989-.8393-5.81108-2.3332-1.5412-1.4939-2.40703-3.5201-2.40703-5.6328 0-2.1128.86583-4.1389 2.40703-5.6329 1.54119-1.4939 3.63148-2.3332 5.81108-2.3332v-4.452c-1.6831-.0023-3.35011.3167-4.90597.9389-1.55586.6221-2.97007 1.5353-4.16187 2.6872s-2.13786 2.5202-2.784159 4.0265c-.6463 1.5064-.98018355 3.1214-.98258792 4.7528s.32671792 3.2473.96857492 4.7555c.641862 1.5081 1.583882 2.8789 2.772282 4.0342 1.1884 1.1552 2.59991 2.0723 4.15393 2.6987 1.55402.6265 3.2201.9502 4.9032.9525h.0366z", fill: "#0037ff" }), _jsx("path", { d: "m12.8359 32.81v4.452c3.3991 0 6.659-1.3088 9.0625-3.6386s3.7538-5.4897 3.7538-8.7845h-4.5981c-.0014 2.1127-.8675 4.1387-2.4083 5.6331-1.5407 1.4944-3.6302 2.3353-5.8099 2.338z", fill: "#0cf" }), _jsx("path", { d: "m12.8359 7.9711v4.452c3.3991 0 6.659-1.3088 9.0625-3.63861 2.4035-2.32979 3.7538-5.48967 3.7538-8.78449h-4.5981c-.0014 2.11278-.8675 4.13871-2.4083 5.63314-1.5407 1.49444-3.6302 2.33527-5.8099 2.33796z", fill: "#861dff" }), _jsx("path", { d: "m25.7266 7.9711v4.452c3.3991 0 6.6589-1.3088 9.0624-3.63861 2.4036-2.32979 3.7538-5.48967 3.7538-8.78449h-4.5955c-.0014 2.11321-.8679 4.13953-2.4092 5.63404-1.5413 1.4945-3.6314 2.33504-5.8115 2.33706z", fill: "#ff8110" }), _jsxs("g", { fill: "#000", children: [_jsx("path", { d: "m59.9453 18.6016h2.3671l.5571 1.2119c.2958-.2624.6234-.4888.9756-.6744.367-.1821.7483-.3355 1.1404-.4589.4864-.1487.994-.2215 1.504-.2155.7879-.0044 1.5675.1556 2.286.469.7207.3117 1.3692.7609 1.9067 1.3209.5589.5872 1.0021 1.2686 1.3078 2.0106.6472 1.632.6472 3.4386 0 5.0706-.305.7423-.7483 1.4238-1.3078 2.0106-.5376.5605-1.1861 1.0106-1.9067 1.3234-.7179.3127-1.4964.4735-2.2834.4716-.4763.0087-.951-.0546-1.4072-.1876-.3583-.1107-.708-.2463-1.0462-.4057-.3215-.1723-.6209-.3808-.8919-.6211v5.3977h-3.2015zm6.1257 9.581c.4255.0097.8485-.0669 1.2417-.225.3932-.158.748-.394 1.0417-.6928.6155-.6118.9224-1.4307.9206-2.4567.0222-.4482-.0477-.8962-.2058-1.318-.158-.4218-.401-.8088-.7148-1.1387-.2995-.2904-.6551-.5208-1.0464-.6779-.3914-.1572-.8108-.2381-1.2344-.2381s-.8431.0809-1.2344.2381c-.3913.1571-.7469.3875-1.0464.6779-.612.6135-.9181 1.4324-.9181 2.4567s.3061 1.8432.9181 2.4567c.2936.2988.6485.5348 1.0417.6928.3932.1581.8161.2347 1.2417.225z" }), _jsx("path", { d: "m80.1341 31.1524c-.5958.0069-1.1874-.0981-1.742-.3093-.5182-.2008-.9843-.5099-1.3653-.9051-.3877-.4079-.6897-.8849-.8893-1.4046-.2229-.5875-.332-1.2098-.3217-1.8356v-5.2634h-1.9486v-2.5632h.8344c1.0218 0 1.5327-.4952 1.5327-1.4857v-1.7468h2.7856v2.9714h2.7829v2.832h-2.7829v5.1289c-.0176.2134.0084.4281.0765.6318s.1769.3924.3202.5553.3183.2969.515.3942c.1967.0974.4113.1562.6314.1732.0871.0073.1746.0073.2616 0 .1202.006.2407.006.361 0 .0881-.0068.1756-.0204.2615-.0406.0768-.0194.1513-.0466.2223-.0811v2.7001c-.1434.0585-.2923.1035-.4446.1344-.3562.0876-.7234.1261-1.0907.1141z" }), _jsx("path", { d: "m86.12 17.116c-.4308.0106-.852-.1247-1.1911-.3824-.3391-.2578-.575-.622-.6672-1.0301-.0922-.408-.0349-.8345.1621-1.206.1969-.3716.5212-.665.9172-.83.3959-.1649.8388-.191 1.2524-.0738.4137.1172.7723.3703 1.0143.716s.3522.7622.3117 1.1781c-.0404.4159-.2291.8052-.5335 1.1009-.1626.1671-.3588.3001-.5766.3908-.2177.0907-.4523.1371-.6893.1365zm-1.6713 1.4857h3.2014v12.4232h-3.2014z" }), _jsx("path", { d: "m90.7109 18.6018h2.3671l.5571 1.2119c.2625-.2537.5518-.4797.8632-.6745.3022-.1808.6209-.3344.952-.4588.4-.1477.825-.2208 1.2529-.2155.5683-.014 1.1346.0719 1.6713.2535.4011.1415.7839.3278 1.1404.5552.3195.2179.5941.4923.8081.8088.306-.3118.652-.5837 1.031-.8088.381-.22.782-.4058 1.198-.5552.49-.1737 1.008-.2597 1.53-.2535 1.394 0 2.505.4335 3.342 1.2955s1.253 2.1424 1.253 3.8334v7.4235h-3.206v-7.1522c.035-.6479-.19-1.2839-.628-1.7747-.166-.1864-.368-.3392-.595-.4497-.226-.1106-.473-.1767-.727-.1946-.253-.0179-.507.0128-.748.0903s-.464.2002-.656.3613c-.07.0604-.136.1247-.198.1927-.438.4905-.663 1.1269-.625 1.7747v7.1522h-3.2045v-7.1522c.0371-.6478-.1871-1.2842-.6252-1.7747-.1659-.1864-.3682-.3393-.5952-.4499s-.4742-.1767-.7276-.1946c-.2533-.0179-.5079.0128-.749.0903s-.4641.2004-.6562.3615c-.0699.0597-.1355.1241-.1962.1927-.4378.4908-.6627 1.1268-.6277 1.7747v7.1522h-3.2015z" }), _jsx("path", { d: "m113.268 17.1154c-.432.011-.855-.1242-1.195-.3826-.341-.2583-.578-.6235-.67-1.0329-.093-.4093-.036-.8371.162-1.21.197-.3728.523-.6672.92-.8327s.841-.1916 1.256-.0739.775.3718 1.017.7187c.243.3469.353.7649.312 1.1821s-.23.8076-.536 1.1039c-.163.1671-.359.3001-.577.3908-.217.0907-.452.1372-.689.1366zm-1.671 1.4857h3.209v12.4231h-3.209z" }), _jsx("path", { d: "m117.16 28.4513 5.569-6.8809h-5.569v-2.9688h9.607v2.5632l-5.563 6.8961h5.846v2.9689h-9.89z" }), _jsx("path", { d: "m135.131 31.1517c-.849.0031-1.689-.1698-2.464-.507-.761-.3248-1.451-.7878-2.032-1.3641-.589-.5809-1.062-1.2626-1.394-2.0105-.34-.7817-.514-1.6213-.514-2.4694s.174-1.6877.514-2.4694c.332-.7479.805-1.4296 1.394-2.0105.582-.5755 1.271-1.0384 2.032-1.364.761-.322 1.581-.4916 2.411-.4986.83-.0069 1.653.1488 2.42.458.732.3014 1.395.7419 1.948 1.2956.572.5808 1.021 1.2636 1.324 2.0105.332.8211.497 1.6966.486 2.5784.001.1399-.008.2796-.026.4183-.021.1344-.039.2663-.057.393-.019.1268-.037.2789-.055.4031h-8.911c.138.5976.47 1.1366.946 1.539.557.4387 1.262.6602 1.978.6211.362.0074.724-.0379 1.072-.1343.259-.0784.507-.1874.738-.3246.21-.1339.398-.2981.557-.4867h3.343c-.186.5008-.444.9737-.767 1.4045-.35.4804-.773.9076-1.253 1.2677-.509.3775-1.072.6823-1.671.9051-.645.2344-1.33.3513-2.019.3448zm3.063-7.2865c-.133-.6934-.512-1.3199-1.072-1.7708-.559-.4509-1.264-.6978-1.991-.6978-.728 0-1.432.2469-1.992.6978-.559.4509-.938 1.0774-1.071 1.7708z" }), _jsx("path", { d: "m143.621 14.0122h3.202v17.0045h-3.202z" }), _jsx("path", { d: "m151.686 35.4717c-.147 0-.291-.0051-.432-.0152-.117-.006-.233-.0196-.348-.0406-.113-.0132-.225-.0405-.332-.0811v-2.5632c.581.0371 1.157-.1254 1.627-.4589.387-.3115.688-.7103.879-1.1612l.277-.6744-4.873-11.8755h3.343l3.202 8.0953 2.934-8.0953h3.343c-.91 2.2666-1.737 4.3176-2.48 6.1532-.316.791-.627 1.5669-.933 2.3199-.306.7529-.578 1.4451-.822 2.0663-.243.6211-.444 1.1383-.612 1.5516-.167.4132-.261.6566-.306.7302-.269.6435-.58 1.2694-.934 1.8736-.264.4627-.597.8855-.988 1.255-.326.3084-.714.5476-1.141.7022-.451.1521-.926.2259-1.404.2181z" }), _jsx("path", { d: "m48.0864 12.4258c-1.9099 0-3.777.549-5.365 1.5775s-2.8257 2.4904-3.5566 4.2008-.9222 3.5925-.5496 5.4083c.3726 1.8157 1.2924 3.4836 2.6429 4.7927s3.0711 2.2006 4.9443 2.5617c1.8733.3612 3.8149.1759 5.5794-.5326s3.2727-1.9082 4.3338-3.4476c1.0611-1.5393 1.6274-3.349 1.6274-5.2004.0004-1.2293-.2492-2.4466-.7343-3.5824-.4852-1.1359-1.1965-2.1679-2.0933-3.0371-.8967-.8693-1.9614-1.5588-3.1332-2.0291-1.1717-.4703-2.4276-.7122-3.6958-.7118zm0 15.4655c-1.2486.0145-2.4734-.3304-3.5196-.9911-1.0461-.6607-1.8665-1.6075-2.3572-2.7204-.4907-1.113-.6297-2.342-.3993-3.5315.2304-1.1896.8197-2.2861 1.6934-3.1508.8737-.8646 1.9925-1.4585 3.2146-1.7065 1.2221-.2479 2.4927-.1388 3.6508.3136 1.1581.4525 2.1516 1.2278 2.8548 2.228.7032 1.0001 1.0844 2.18 1.0954 3.3903v.0709c.0055 1.6099-.6473 3.1563-1.8155 4.3006s-2.7567 1.7931-4.4174 1.8045z" })] })] });
|
|
17
|
+
};
|
|
18
|
+
export default OptimizelyLogo;
|
|
19
|
+
//# sourceMappingURL=logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logo.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/logo.tsx"],"names":[],"mappings":";AAIA,MAAM,aAAa,GAAG;IAClB,KAAK,EAAE,4BAA4B;IACnC,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,IAAI;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAA4C,KAAK,CAAC,EAAE;IAE3E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY,CAAA;IACzC,MAAM,QAAQ,GAAyB;QACnC,GAAG,aAAa;QAChB,GAAG,KAAK;KACX,CAAA;IACD,IAAI,QAAQ,CAAC,KAAK;QACd,OAAO,QAAQ,CAAC,KAAK,CAAA;IAEzB,OAAO,kBAAS,QAAQ,aACpB,0BAAS,KAAK,GAAU,EACxB,eAAM,CAAC,EAAC,oLAAoL,EAAC,IAAI,EAAC,SAAS,GAAQ,EACnN,eAAM,CAAC,EAAC,ygBAAygB,EAAC,IAAI,EAAC,SAAS,GAAQ,EACxiB,eAAM,CAAC,EAAC,iLAAiL,EAAC,IAAI,EAAC,MAAM,GAAQ,EAC7M,eAAM,CAAC,EAAC,2MAA2M,EAAC,IAAI,EAAC,SAAS,GAAQ,EAC1O,eAAM,CAAC,EAAC,2MAA2M,EAAC,IAAI,EAAC,SAAS,GAAQ,EAC1O,aAAG,IAAI,EAAC,MAAM,aACV,eAAM,CAAC,EAAC,27BAA27B,GAAQ,EAC38B,eAAM,CAAC,EAAC,okBAAokB,GAAQ,EACplB,eAAM,CAAC,EAAC,4XAA4X,GAAQ,EAC5Y,eAAM,CAAC,EAAC,u3BAAu3B,GAAQ,EACv4B,eAAM,CAAC,EAAC,iVAAiV,GAAQ,EACjW,eAAM,CAAC,EAAC,4FAA4F,GAAQ,EAC5G,eAAM,CAAC,EAAC,g7BAAg7B,GAAQ,EACh8B,eAAM,CAAC,EAAC,wCAAwC,GAAQ,EACxD,eAAM,CAAC,EAAC,giBAAgiB,GAAQ,EAChjB,eAAM,CAAC,EAAC,m0BAAm0B,GAAQ,IACn1B,IACF,CAAA;AACV,CAAC,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useLayoutEffect } from 'react';
|
|
4
|
+
import { usePathname } from 'next/navigation';
|
|
5
|
+
import { useOptimizelyOne } from './context';
|
|
6
|
+
export const PageActivator = props => {
|
|
7
|
+
const path = usePathname();
|
|
8
|
+
const opti = useOptimizelyOne();
|
|
9
|
+
useLayoutEffect(() => {
|
|
10
|
+
if (opti.debug)
|
|
11
|
+
console.groupCollapsed(`📑 [Optimizely One] Applying layout effects for: ${path}`);
|
|
12
|
+
opti.getActivatePageServices().forEach(service => service.activatePage(path));
|
|
13
|
+
if (opti.debug)
|
|
14
|
+
console.groupEnd();
|
|
15
|
+
}, [path, opti]);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (opti.disableAutotracking) {
|
|
18
|
+
if (opti.debug)
|
|
19
|
+
console.log('🔐 [Optimizely One] Automatic page tracking disabled');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (opti.debug)
|
|
23
|
+
console.groupCollapsed(`📢 [Optimizely One] Tracking page view for: ${path}`);
|
|
24
|
+
opti.getTrackPageServices().forEach(service => service.trackPage(path));
|
|
25
|
+
if (opti.debug)
|
|
26
|
+
console.groupEnd();
|
|
27
|
+
}, [path, opti]);
|
|
28
|
+
return _jsx(_Fragment, { children: props.children });
|
|
29
|
+
};
|
|
30
|
+
PageActivator.displayName = "Optimizely One: (Layout) Effect processor";
|
|
31
|
+
export default PageActivator;
|
|
32
|
+
//# sourceMappingURL=page-activator.js.map
|
|
@@ -0,0 +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;AAI5C,MAAM,CAAC,MAAM,aAAa,GAA2C,KAAK,CAAC,EAAE;IAEzE,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;IAE/B,eAAe,CAAC,GAAG,EAAE;QACjB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,cAAc,CAAC,oDAAqD,IAAK,EAAE,CAAC,CAAA;QAEpG,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;QAE7E,IAAI,IAAI,CAAC,KAAK;YACV,OAAO,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAEhB,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAA;YACnF,OAAM;QACV,CAAC;QAED,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,cAAc,CAAC,+CAAgD,IAAK,EAAE,CAAC,CAAA;QAC/F,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACvE,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;IACtC,CAAC,EAAE,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;IAElB,OAAO,4BAAI,KAAK,CAAC,QAAQ,GAAK,CAAA;AAClC,CAAC,CAAA;AACD,aAAa,CAAC,WAAW,GAAG,2CAA2C,CAAA;AACvE,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React hook to determine if the Optimizely Web "test cookie" from the
|
|
3
|
+
* Optimizely Web Google Chrome add-on has been set. This can be used to
|
|
4
|
+
* trigger features based upon the adding/removing of this cookie.
|
|
5
|
+
*
|
|
6
|
+
* @param pollingInterval The frequency with which to check for
|
|
7
|
+
* changes.
|
|
8
|
+
* @returns true if the cookie exists; false otherwise
|
|
9
|
+
*/
|
|
10
|
+
export declare function useIsInTestMode(pollingInterval?: number): boolean;
|
|
11
|
+
export default useIsInTestMode;
|