@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.
Files changed (65) hide show
  1. package/README.md +96 -14
  2. package/dist/api/content-goals.d.ts +15 -0
  3. package/dist/api/content-goals.js +14 -0
  4. package/dist/api/content-goals.js.map +1 -0
  5. package/dist/api/content-recs.d.ts +3 -0
  6. package/dist/api/content-recs.js +34 -0
  7. package/dist/api/content-recs.js.map +1 -0
  8. package/dist/api/experimentation-api.js +3 -4
  9. package/dist/api/experimentation-api.js.map +1 -1
  10. package/dist/api/index.js +5 -1
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/client-types.d.ts +3 -2
  13. package/dist/client.d.ts +2 -0
  14. package/dist/client.js +2 -0
  15. package/dist/client.js.map +1 -1
  16. package/dist/components/context.d.ts +14 -0
  17. package/dist/components/context.js +8 -0
  18. package/dist/components/context.js.map +1 -1
  19. package/dist/components/optimizely-one-gadget/audiences-panel.js +2 -2
  20. package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -1
  21. package/dist/components/optimizely-one-gadget/exp-panel.js +2 -2
  22. package/dist/components/optimizely-one-gadget/exp-panel.js.map +1 -1
  23. package/dist/components/optimizely-one-gadget/goals-panel.d.ts +7 -0
  24. package/dist/components/optimizely-one-gadget/goals-panel.js +23 -0
  25. package/dist/components/optimizely-one-gadget/goals-panel.js.map +1 -0
  26. package/dist/components/optimizely-one-gadget/index.js +4 -3
  27. package/dist/components/optimizely-one-gadget/index.js.map +1 -1
  28. package/dist/components/optimizely-one-gadget/interests-panel.js +1 -1
  29. package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -1
  30. package/dist/components/page-activator.js +26 -0
  31. package/dist/components/page-activator.js.map +1 -1
  32. package/dist/products/content-recs/api.d.ts +4 -0
  33. package/dist/products/content-recs/api.js +13 -1
  34. package/dist/products/content-recs/api.js.map +1 -1
  35. package/dist/products/content-recs/client.d.ts +2 -0
  36. package/dist/products/content-recs/client.js +10 -0
  37. package/dist/products/content-recs/client.js.map +1 -1
  38. package/dist/products/content-recs/delivery.d.ts +83 -0
  39. package/dist/products/content-recs/delivery.js +68 -0
  40. package/dist/products/content-recs/delivery.js.map +1 -0
  41. package/dist/{server-components/scripts/snippets/optimizely-content-recs.js → products/content-recs/snippet.js} +2 -2
  42. package/dist/products/content-recs/snippet.js.map +1 -0
  43. package/dist/products/data-platform/client.d.ts +1 -0
  44. package/dist/products/data-platform/client.js +15 -3
  45. package/dist/products/data-platform/client.js.map +1 -1
  46. package/dist/{server-components/scripts/snippets/optimizely-data-patform.js → products/data-platform/snippet.js} +1 -1
  47. package/dist/products/data-platform/snippet.js.map +1 -0
  48. package/dist/products/web-experimentation/client.d.ts +1 -0
  49. package/dist/products/web-experimentation/client.js +14 -2
  50. package/dist/products/web-experimentation/client.js.map +1 -1
  51. package/dist/{server-components/scripts/snippets/optimizely-web-experimentation.d.ts → products/web-experimentation/snippet.d.ts} +3 -2
  52. package/dist/products/web-experimentation/snippet.js +29 -0
  53. package/dist/products/web-experimentation/snippet.js.map +1 -0
  54. package/dist/server-components/scripts/footer.js +1 -1
  55. package/dist/server-components/scripts/footer.js.map +1 -1
  56. package/dist/server-components/scripts/header.d.ts +44 -1
  57. package/dist/server-components/scripts/header.js +14 -7
  58. package/dist/server-components/scripts/header.js.map +1 -1
  59. package/package.json +5 -5
  60. package/dist/server-components/scripts/snippets/optimizely-content-recs.js.map +0 -1
  61. package/dist/server-components/scripts/snippets/optimizely-data-patform.js.map +0 -1
  62. package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js +0 -9
  63. package/dist/server-components/scripts/snippets/optimizely-web-experimentation.js.map +0 -1
  64. /package/dist/{server-components/scripts/snippets/optimizely-content-recs.d.ts → products/content-recs/snippet.d.ts} +0 -0
  65. /package/dist/{server-components/scripts/snippets/optimizely-data-patform.d.ts → products/data-platform/snippet.d.ts} +0 -0
package/README.md CHANGED
@@ -1,17 +1,32 @@
1
- # Next.JS Optimizely One toolkit
1
+ # Next.JS Optimizely One toolkit <!-- omit in toc -->
2
2
  React components (both client & server) to integrate the browser-side products from Optimizely (Web Experimentation, Data Platform & Content Analytics / Recommendations)
3
3
 
4
- ## Requirements
5
- - Next.JS 14.1+
6
- - TypeScript
4
+ ## Table of Contents <!-- omit in toc -->
5
+ - [1. Requirements](#1-requirements)
6
+ - [2. Installation \& Configuration](#2-installation--configuration)
7
+ - [2.1. Add API Routes](#21-add-api-routes)
8
+ - [2.2. Add Provider \& PageTracker to your layout](#22-add-provider--pagetracker-to-your-layout)
9
+ - [2.3. Instrument your site with additional events](#23-instrument-your-site-with-additional-events)
10
+ - [2.4. Enable session cookie for Visitor ID](#24-enable-session-cookie-for-visitor-id)
11
+ - [2.5. Configuration](#25-configuration)
12
+ - [2.5.1. Prevent key leakage and unauthorized access](#251-prevent-key-leakage-and-unauthorized-access)
13
+ - [2.5.2. List of supported environment variables](#252-list-of-supported-environment-variables)
14
+ - [3. Usage](#3-usage)
15
+ - [3.1. Optimizely One Gadget](#31-optimizely-one-gadget)
16
+ - [3.2. Selecting the Web Experimentation project in browser](#32-selecting-the-web-experimentation-project-in-browser)
17
+
18
+
19
+ ## 1. Requirements
20
+ - Next.JS 14.2+
21
+ - TypeScript 5+
7
22
  - Access to the Optimizely One Products
8
23
 
9
- ## Installing & Usage
24
+ ## 2. Installation & Configuration
10
25
 
11
26
  Start by adding the package to your project:
12
27
  `yarn add @remkoj/optimizely-one-nextjs`
13
28
 
14
- ### Add API Routes
29
+ ### 2.1. Add API Routes
15
30
  Then make the service endpoints available by creating a new API route within Next.JS. For the app router this is done by creating this file:
16
31
 
17
32
  `app/api/me/[[...path]]/route.ts`
@@ -19,25 +34,24 @@ Then make the service endpoints available by creating a new API route within Nex
19
34
  Put the following code in this file to use the API Route handler from the package:
20
35
 
21
36
  ```typescript
22
- import { createOptimizelyOneApi } from '@remkoj/optimizely-one-nextjs/server';
37
+ import { createOptimizelyOneApi } from '@remkoj/optimizely-one-nextjs/api';
23
38
 
24
39
  const handler = createOptimizelyOneApi()
25
40
 
26
41
  export const GET = handler
27
42
  export const POST = handler
28
- export const runtime = 'edge' // 'nodejs' (default) | 'edge'
43
+ export const runtime = 'nodejs' // 'nodejs' (default) | 'edge'
29
44
  export const dynamic = 'force-dynamic'
30
45
  export const dynamicParams = true
31
46
  export const fetchCache = 'default-no-store'
32
47
  ```
33
48
 
34
- ### Add Provider & PageTracker to your layout
49
+ ### 2.2. Add Provider & PageTracker to your layout
35
50
  Within the global layout (or your ["third party providers component"](https://vercel.com/guides/react-context-state-management-nextjs#rendering-third-party-context-providers-in-server-components), whatever applies best), add the Optimizely One Scripts (`Scripts.Header` & `Scripts.Footer`), Context Provider (`OptimizelyOneProvider`), Page Activator (`PageActivator`), and - if you want to - the demo gadget (`OptimizelyOneGadget`).
36
51
 
37
52
  ```typescript
38
53
  import { Scripts } from '@remkoj/optimizely-one-nextjs/server'
39
- import { OptimizelyOneProvider, PageActivator } from '@remkoj/optimizely-one-nextjs/client'
40
- import OptimizelyOneGadget from '@remkoj/optimizely-one-nextjs/optimizely-one-gadget'
54
+ import { OptimizelyOneProvider, PageActivator, OptimizelyOneGadget } from '@remkoj/optimizely-one-nextjs/client'
41
55
 
42
56
  export type RootLayoutProps = {
43
57
  children: React.ReactNode
@@ -53,7 +67,7 @@ export default function RootLayout({ children }: RootLayoutProps)
53
67
  <OptimizelyOneProvider value={{ debug: true }}>
54
68
  <PageActivator />
55
69
  { children }
56
- <OptimizelyOneGadget />
70
+ <OptimizelyOneGadget servicePrefix='/api/me' refreshInterval={ 2000 } />
57
71
  </OptimizelyOneProvider>
58
72
  <Scripts.Footer />
59
73
  </body>
@@ -61,7 +75,7 @@ export default function RootLayout({ children }: RootLayoutProps)
61
75
  }
62
76
  ```
63
77
 
64
- ### Instrument your site with additional events
78
+ ### 2.3. Instrument your site with additional events
65
79
  Whenever you want to track additional events, use the provided hook to get to the context and send events.
66
80
 
67
81
  ```typescript
@@ -79,4 +93,72 @@ export const YourComponent : FunctionComponent<{}> = props => {
79
93
 
80
94
  return <button onClick={() => handler()}>Output</button>
81
95
  }
82
- ```
96
+ ```
97
+
98
+ ### 2.4. Enable session cookie for Visitor ID
99
+ Within your middleware (`src/middleware.ts`), use the Session to make sure each visitor gets a unique Visitor ID. Either create this middleware within your project or add this logic to it.
100
+
101
+ ```typescript
102
+ import { NextResponse, type NextRequest } from "next/server"
103
+ import { Session } from '@remkoj/optimizely-one-nextjs/api'
104
+
105
+ export function middleware(request: NextRequest)
106
+ {
107
+ // Get the response
108
+ const response = NextResponse.next()
109
+
110
+ // Inject the Visitor ID cookie, with a sliding expiry
111
+ const visitorId = Session.getOrCreateVisitorId(request)
112
+ Session.addVisitorId(response, visitorId)
113
+
114
+ // Return the response
115
+ return response
116
+ }
117
+
118
+ export const config = {
119
+ matcher: [
120
+ // Skip all internal paths and paths with a '.'
121
+ '/((?!.*\\.|ui|api|assets|_next\\/static|_next\\/image|_vercel).*)',
122
+ ]
123
+ }
124
+ ```
125
+
126
+ ### 2.5. Configuration
127
+ The Optimizely One Integration is configured by setting the appropriate environment variables.
128
+
129
+ #### 2.5.1. Prevent key leakage and unauthorized access
130
+ These environment variables must ***never*** be, consider them compromised when
131
+ 1. Comitted into your source control system. Set them using the method available on your hosting environment.
132
+ 2. Configured to be exposed to the browser
133
+
134
+ Locally, you may use a `.env.local` file, which must be added to the ignore list of you source control system.
135
+
136
+ #### 2.5.2. List of supported environment variables
137
+ | Product | Environment Variable | Default Value | Purpose |
138
+ | - | - | - | - |
139
+ | *Global* | OPTIMIZELY_ONE_HELPER | 0 | Set to "1" to enable the Optimizely One Demo tools.<br/>- Allow overriding of the WebEx project ID through the 'pid' query string parameter <br/>- Enable the `<OptimizelyOneGadget />` component.
140
+ | *Global* | OPTIMIZELY_DEBUG | 0 | Set to "1" to enable debugging output. ***Note:*** This setting is shared across the different packages - it will enable debug mode for all of them |
141
+ | *Global* | OPTIMIZELY_FRONTEND_COOKIE | visitorId | The cookie used to track the current Visitor ID |
142
+ | Data Platform | OPTIMIZELY_DATAPLATFORM_ID | | The public or private key of your ODP instance, use the private key to enable fetching of visitor behaviour / profile information |
143
+ | Data Platform | OPTIMIZLEY_DATAPLATFORM_ENDPOINT | https://api.zaius.com/ | The endpoint used to read data from ODP |
144
+ | Data Platform | OPTIMIZELY_DATAPLATFORM_BATCH_SIZE | 25 | The maximum number of items to fetch in one request, if there are more results, paging will be used to get the full data set |
145
+ | Content Intelligence & Recommendations | OPTIMIZELY_CONTENTRECS_CLIENT | | The client ID for Content Intelligence & Recommendations |
146
+ | Content Intelligence & Recommendations | OPTIMIZELY_CONTENTRECS_DELIVERY | 0 | The Delivery ID setup in the main tracking script |
147
+ | Content Intelligence & Recommendations | OPTIMIZELY_CONTENTRECS_DELIVERY_KEY | | The Delivery Key used to fetch visitor topic and goal information |
148
+ | Content Intelligence & Recommendations | OPTIMIZELY_CONTENTRECS_API | https://api.idio.co | The API Endpoint of Content Intelligence & Recommendations to be used |
149
+ | Web Experimentation | OPTIMIZELY_WEB_EXPERIMENTATION_PROJECT | | The project identifier of the Web Experimentation Project |
150
+
151
+ ## 3. Usage
152
+ When leveraging the components and structure from the installation, everything should work immediately.
153
+
154
+ ### 3.1. Optimizely One Gadget
155
+ The OptimizelyOneGadget will only show if the following two criteria have been met, this ensures that the gadget is only available when it has intentionally ben enabled:
156
+ 1. The environment variable `OPTIMIZELY_ONE_HELPER` has been set to "1"
157
+ 2. A test-cookie has been added to the browser using the 'Add test cookie' feature of the [Optimizely Assistant Chrome Add-On](https://support.optimizely.com/hc/en-us/articles/4410289500301-Optimizely-Experimentation-Assistant-Chrome-extension)
158
+
159
+ Using the Optimizely One Gadget it is possible to demonstrate the in-session behaviour tracking and analysis performed by the configured Optimizely products.
160
+
161
+ ### 3.2. Selecting the Web Experimentation project in browser
162
+ When the `OPTIMIZELY_ONE_HELPER` is set to "1" - or the Scripts.Header component has been instructed to do so explicitly - it is possible to change the Optimizely Web Experimentation project on the fly. This is done by adding a query string parameter `?pid=`, with the new project id.
163
+
164
+ The project id is persisted in localStorage with the key `_pid` and needs to be removed manually to revert back to the configured Web Experimentation project.
@@ -0,0 +1,15 @@
1
+ import type { ApiService } from './types';
2
+ export type GoalsReponse = {
3
+ goals: Array<{
4
+ /**
5
+ * The name of the goal within Content Recommendations
6
+ */
7
+ goal: string;
8
+ /**
9
+ * The relevancy of the goal, as a float between 0 and 1
10
+ */
11
+ score: number;
12
+ }>;
13
+ };
14
+ export declare const ContentRecsGoalsService: ApiService<GoalsReponse>;
15
+ export default ContentRecsGoalsService;
@@ -0,0 +1,14 @@
1
+ import { ContentRecs } from '../products';
2
+ export const ContentRecsGoalsService = {
3
+ for: { path: '/cgoals', verb: 'get' },
4
+ handler: async (query, cookies) => {
5
+ const crId = ContentRecs.Tools.getVisitorID(cookies);
6
+ if (!crId)
7
+ return [{ goals: [] }, 200];
8
+ const contentRecs = new ContentRecs.Client();
9
+ const nextBestGoals = await contentRecs.getNextBestGoals(crId);
10
+ return [{ goals: nextBestGoals }, 200];
11
+ }
12
+ };
13
+ export default ContentRecsGoalsService;
14
+ //# sourceMappingURL=content-goals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-goals.js","sourceRoot":"","sources":["../../src/api/content-goals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAgBzC,MAAM,CAAC,MAAM,uBAAuB,GAA8B;IAC9D,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,IAAI;YACL,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC,EAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC9D,OAAO,CAAC,EAAC,KAAK,EAAE,aAAa,EAAC,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;CACJ,CAAA;AAED,eAAe,uBAAuB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ApiService } from './types';
2
+ export declare const ContentRecsApiService: ApiService<any>;
3
+ export default ContentRecsApiService;
@@ -0,0 +1,34 @@
1
+ import { ContentRecs } from '../products';
2
+ export const ContentRecsApiService = {
3
+ for: { path: '/crecs', verb: 'get' },
4
+ handler: async (query, cookies) => {
5
+ const crId = ContentRecs.Tools.getVisitorID(cookies);
6
+ if (!crId)
7
+ return [{ total_hits: 0, content: [] }, 200];
8
+ const recsService = new URL(`https://api.idio.co/1.0/users/idio_visitor_id:${crId}/content?callback=fn`);
9
+ query.forEach((value, name) => {
10
+ if (name.toLowerCase() != 'callback')
11
+ recsService.searchParams.set(name, value);
12
+ });
13
+ const snippetResponse = await fetch(recsService, { cache: 'no-store' });
14
+ if (!snippetResponse.ok)
15
+ return [{ error: { status: snippetResponse.status, message: snippetResponse.statusText } }, snippetResponse.status];
16
+ const body = await snippetResponse.text();
17
+ const jsonData = body.substring(body.indexOf('{'), body.lastIndexOf('}') + 1);
18
+ try {
19
+ const recsData = JSON.parse(jsonData);
20
+ return [
21
+ {
22
+ ...recsData,
23
+ next_page: (new URL(recsData.next_page)).search
24
+ },
25
+ 200
26
+ ];
27
+ }
28
+ catch {
29
+ return [{ error: { status: 500, message: "Unable to parse Content Recommendations data" } }, 500];
30
+ }
31
+ }
32
+ };
33
+ export default ContentRecsApiService;
34
+ //# sourceMappingURL=content-recs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-recs.js","sourceRoot":"","sources":["../../src/api/content-recs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACnD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,IAAI;YACL,OAAO,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,EAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,iDAAkD,IAAK,sBAAsB,CAAC,CAAA;QAC1G,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,UAAU;gBAChC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QACF,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;QACvE,IAAI,CAAC,eAAe,CAAC,EAAE;YACnB,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,UAAU,EAAE,EAAC,EAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACpH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC,CAAA;QAC1E,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACrC,OAAO;gBACH;oBACI,GAAG,QAAQ;oBACX,SAAS,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;iBAClD;gBACD,GAAG;aACN,CAAA;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,8CAA8C,EAAE,EAAC,EAAC,GAAG,CAAC,CAAA;QAClG,CAAC;IACL,CAAC;CACJ,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -2,12 +2,11 @@ import * as EnvTools from '../utils/env';
2
2
  import EnvVars from '../env-vars';
3
3
  export const ExperimentationApiService = {
4
4
  for: { path: '/exp', verb: 'get' },
5
- handler: async (query, cookies) => {
5
+ handler: async (query) => {
6
6
  const configuredProjectId = EnvTools.readValue(EnvVars.WebExperimentationProject);
7
- const cookieProjectId = cookies.get("wx.projectid")?.value;
8
- const queryProjectId = query.get('wx.projectid') ?? undefined;
7
+ const queryProjectId = query.get('pid') ?? undefined;
9
8
  const helperEnabled = EnvTools.readValueAsBoolean(EnvVars.HelperEnabled, false);
10
- const projectId = helperEnabled ? cookieProjectId ?? queryProjectId ?? configuredProjectId : configuredProjectId;
9
+ const projectId = helperEnabled ? queryProjectId ?? configuredProjectId : configuredProjectId;
11
10
  // Make sure we have a Project ID
12
11
  if (!projectId) {
13
12
  if (EnvTools.readValueAsBoolean(EnvVars.OptimizelyDebug, false))
@@ -1 +1 @@
1
- {"version":3,"file":"experimentation-api.js","sourceRoot":"","sources":["../../src/api/experimentation-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAA;AACxC,OAAO,OAAO,MAAM,aAAa,CAAA;AAEjC,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACvD,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;IAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;QACjF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAA;QAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAA;QAC7D,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QAC/E,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,IAAI,cAAc,IAAI,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAA;QAEhH,iCAAiC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;YAC7E,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,EAAE,GAAG,CAAC,CAAA;QACzE,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,iCAAkC,SAAU,KAAK,EAAE;YACnF,0CAA0C;YAC1C,IAAI,EAAE;gBACF,UAAU,EAAE,GAAG,CAAC,kCAAkC;aACrD;SACJ,CAAC,CAAA;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YACjF,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAC,EAAC,EAAE,eAAe,CAAC,MAAM,CAAE,CAAA;QACrH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;QAEzC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;IAC3E,CAAC;CACJ,CAAA;AAED,eAAe,yBAAyB,CAAA"}
1
+ {"version":3,"file":"experimentation-api.js","sourceRoot":"","sources":["../../src/api/experimentation-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAA;AACxC,OAAO,OAAO,MAAM,aAAa,CAAA;AAEjC,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACvD,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;IAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;QACjF,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAA;QACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QAC/E,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,IAAI,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAA;QAE7F,iCAAiC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;YAC7E,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,EAAE,GAAG,CAAC,CAAA;QACzE,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,iCAAkC,SAAU,KAAK,EAAE;YACnF,0CAA0C;YAC1C,IAAI,EAAE;gBACF,UAAU,EAAE,GAAG,CAAC,kCAAkC;aACrD;SACJ,CAAC,CAAA;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YACjF,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAC,EAAC,EAAE,eAAe,CAAC,MAAM,CAAE,CAAA;QACrH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;QAEzC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;IAC3E,CAAC;CACJ,CAAA;AAED,eAAe,yBAAyB,CAAA"}
package/dist/api/index.js CHANGED
@@ -4,13 +4,17 @@ import { cookies } from 'next/headers';
4
4
  import ProfileApiService from './profile-api-service';
5
5
  import GraphInfoApiService from './graph-info-service';
6
6
  import ExperimentationApiService from './experimentation-api';
7
+ import ContentRecsApiService from './content-recs';
8
+ import ContentRecsGoalsService from './content-goals';
7
9
  export function createOptimizelyOneApi(config) {
8
10
  const pathParameterName = config?.pathParameterName ?? 'path';
9
11
  const services = [
10
12
  ...(config?.services || []),
11
13
  ProfileApiService,
12
14
  GraphInfoApiService,
13
- ExperimentationApiService
15
+ ExperimentationApiService,
16
+ ContentRecsApiService,
17
+ ContentRecsGoalsService
14
18
  ];
15
19
  // Basic service matcher, but get's the job done for now
16
20
  function matchService(verb, path, serviceFor) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,iBAAiB,MAAM,uBAAuB,CAAA;AACrD,OAAO,mBAAmB,MAAM,sBAAsB,CAAA;AACtD,OAAO,yBAAyB,MAAM,uBAAuB,CAAA;AAkB7D,MAAM,UAAU,sBAAsB,CAAC,MAAwC;IAE3E,MAAM,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,MAAM,CAAA;IAC7D,MAAM,QAAQ,GAAG;QACb,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC3B,iBAAiB;QACjB,mBAAmB;QACnB,yBAAyB;KAC5B,CAAA;IAED,wDAAwD;IACxD,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,UAA6B;QAE3E,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;YACtD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3D,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,OAAoB,EAAE,OAAuB;QAEhE,iEAAiE;QACjE,IAAI,OAAO,GAAmC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC/E,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,GAAG,CAAA;aACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAA;QAC1D,MAAM,IAAI,GAAY,OAAO,CAAA;QAC7B,qMAAqM;QACrM,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAA;QAE3B,mBAAmB;QACnB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAC,IAAI,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QAChF,IAAI,CAAC,UAAU;YACX,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAE9F,qBAAqB;QACrB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAA;QACnB,MAAM,CAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;QAEvG,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,WAAW;YACX,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;QAE5C,qBAAqB;QACrB,IAAI,OAAO,QAAQ,IAAI,QAAQ;YAC3B,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;QACtE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,iBAAiB,MAAM,uBAAuB,CAAA;AACrD,OAAO,mBAAmB,MAAM,sBAAsB,CAAA;AACtD,OAAO,yBAAyB,MAAM,uBAAuB,CAAA;AAC7D,OAAO,qBAAqB,MAAM,gBAAgB,CAAA;AAClD,OAAO,uBAAuB,MAAM,iBAAiB,CAAA;AAkBrD,MAAM,UAAU,sBAAsB,CAAC,MAAwC;IAE3E,MAAM,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,MAAM,CAAA;IAC7D,MAAM,QAAQ,GAAG;QACb,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC3B,iBAAiB;QACjB,mBAAmB;QACnB,yBAAyB;QACzB,qBAAqB;QACrB,uBAAuB;KAC1B,CAAA;IAED,wDAAwD;IACxD,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,UAA6B;QAE3E,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;YACtD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3D,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,OAAoB,EAAE,OAAuB;QAEhE,iEAAiE;QACjE,IAAI,OAAO,GAAmC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC/E,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,GAAG,CAAA;aACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAA;QAC1D,MAAM,IAAI,GAAY,OAAO,CAAA;QAC7B,qMAAqM;QACrM,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAA;QAE3B,mBAAmB;QACnB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAC,IAAI,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QAChF,IAAI,CAAC,UAAU;YACX,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAE9F,qBAAqB;QACrB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAA;QACnB,MAAM,CAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;QAEvG,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,WAAW;YACX,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;QAE5C,qBAAqB;QACrB,IAAI,OAAO,QAAQ,IAAI,QAAQ;YAC3B,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;QACtE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC"}
@@ -29,6 +29,7 @@ export interface OptimizelyOneService<T = any> {
29
29
  trackPage?: (path: string) => void;
30
30
  trackEvent?: (event: OptimizelyOneEvent) => void;
31
31
  updateProfile?: (profileData: OptimizelyOneProfileData) => void;
32
+ discoverProfileData?: (signal?: AbortSignal | null) => Promise<OptimizelyOneProfileData>;
32
33
  getBrowserApi: () => T | undefined;
33
34
  }
34
35
  export type OptimizelyOneEvent = NavigationSearchEvent | {
@@ -42,7 +43,7 @@ type NavigationSearchEvent = {
42
43
  search_term: string;
43
44
  };
44
45
  export type OptimizelyOneProfileData = {
45
- content_intelligence_id: string;
46
+ content_intelligence_id?: string;
46
47
  custom: Record<string, string | number | boolean>;
47
48
  };
48
49
  export type OptimizelyDataPlatformApi = {
@@ -52,7 +53,7 @@ export type OptimizelyDataPlatformApi = {
52
53
  dispatch: (group: string, action: string, params?: {
53
54
  [param: string]: any;
54
55
  }) => Promise<void>;
55
- customer: (customerProps: any) => void;
56
+ customer: (customerIds: Record<string, string | number>, customerAttributes?: Record<string, any>) => void;
56
57
  };
57
58
  export type OptimizelyContentRecsApi = {
58
59
  push: (command: [string, any]) => void;
package/dist/client.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export type * from './products/client-types';
2
2
  export * from './products';
3
3
  export * from './components';
4
+ export { ContentRecsDelivery } from './products/content-recs/delivery';
5
+ export type { ContentRecsDeliveryProps } from './products/content-recs/delivery';
package/dist/client.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from './products'; // Product libraries work across client & server
2
2
  export * from './components'; // Client component hooks
3
+ // Content Recs
4
+ export { ContentRecsDelivery } from './products/content-recs/delivery';
3
5
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA,CAAC,gDAAgD;AAC3E,cAAc,cAAc,CAAA,CAAC,yBAAyB"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA,CAAC,gDAAgD;AAC3E,cAAc,cAAc,CAAA,CAAC,yBAAyB;AAEtD,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA"}
@@ -75,6 +75,20 @@ type OptimizelyOneHookResult<TM extends DefaultServiceMap = DefaultServiceMap> =
75
75
  trackPage: NonNullable<ClientApi.OptimizelyOneService['trackPage']>;
76
76
  isActive: true;
77
77
  })[];
78
+ /**
79
+ * Retrieve all services that must be invoked when new profile information has
80
+ * been discovered
81
+ *
82
+ * @returns A list of active services
83
+ */
84
+ getProfileServices: () => (Omit<ClientApi.OptimizelyOneService, 'updateProfile' | 'isActive'> & {
85
+ updateProfile: NonNullable<ClientApi.OptimizelyOneService['updateProfile']>;
86
+ isActive: true;
87
+ })[];
88
+ getProfileDataSources: () => (Omit<ClientApi.OptimizelyOneService, 'discoverProfileData' | 'isActive'> & {
89
+ discoverProfileData: NonNullable<ClientApi.OptimizelyOneService['discoverProfileData']>;
90
+ isActive: true;
91
+ })[];
78
92
  /**
79
93
  * Retrieve an individual service by its code from the collection of services
80
94
  *
@@ -10,6 +10,12 @@ function isActiveWithActivatePage(toTest) {
10
10
  function isActiveWithTrackPage(toTest) {
11
11
  return (toTest.isActive && toTest.trackPage && typeof (toTest.trackPage) == 'function') ?? false;
12
12
  }
13
+ function isActiveWithUpdateProfile(toTest) {
14
+ return (toTest.isActive && toTest.updateProfile && typeof (toTest.updateProfile) == 'function') ?? false;
15
+ }
16
+ function isActiveWithProfileDiscovery(toTest) {
17
+ return (toTest.isActive && toTest.discoverProfileData && typeof (toTest.discoverProfileData) == 'function') ?? false;
18
+ }
13
19
  function isActiveWithEventTracker(toTest) {
14
20
  return (toTest.isActive && toTest.trackEvent && typeof (toTest.trackEvent) == 'function') ?? false;
15
21
  }
@@ -22,6 +28,8 @@ function useOptimizelyOne() {
22
28
  ...ctx,
23
29
  getActivatePageServices: () => (ctx.services || []).filter(isActiveWithActivatePage),
24
30
  getTrackPageServices: () => (ctx.services || []).filter(isActiveWithTrackPage),
31
+ getProfileServices: () => (ctx.services || []).filter(isActiveWithUpdateProfile),
32
+ getProfileDataSources: () => (ctx.services || []).filter(isActiveWithProfileDiscovery),
25
33
  getService: (code) => (ctx.services || []).filter(s => s.code == code)[0],
26
34
  track: (event) => {
27
35
  if (ctx.disableTracking) {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/components/context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/components/context.tsx"],"names":[],"mappings":"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"}
@@ -45,9 +45,9 @@ export const AudiencesPanel = ({ servicePrefix = '/api/me', refreshInterval = 0
45
45
  if (error)
46
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
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 => {
48
+ return _jsxs(_Fragment, { children: [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" })] }), _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
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"] })] });
50
+ })).flat() }), _jsx("p", { className: 'oo-text-[12px]', children: "Powered by: Optimizely Data Platform" }), 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" }), 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..."] }), (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"] }), _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
51
  };
52
52
  export default AudiencesPanel;
53
53
  //# sourceMappingURL=audiences-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audiences-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/audiences-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,cAA4E,MAAM,cAAc,CAAA;AAQvG,MAAM,WAAW,GAAmF,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE;IAC5H,MAAM,UAAU,GAAG,GAAI,aAAc,0BAA2B,QAAS,EAAE,CAAA;IAC3E,MAAM,MAAM,GAAsC,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE;QAC9E,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,kBAAkB,GAAG,SAAS;YAAE,OAAO,IAAI,CAAA;QACpF,OAAO,GAAI,UAAW,SAAU,SAAU,EAAE,CAAA;IAChD,CAAC,CAAA;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAA4C,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,GAAG,CAAC,EAAC,EAAE,EAAE;IAEzH,wBAAwB;IACxB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,MAAM,GAA0C;QAClD,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,sDAAsD;QACnI,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvB,IAAI,CAAC,CAAC,CAAC,EAAE;oBACL,MAAM,IAAI,KAAK,CAAC,GAAI,CAAC,CAAC,MAAO,KAAM,CAAC,CAAC,UAAW,EAAE,CAAC,CAAA;gBACvD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;YACnB,CAAC,CAAC,CAAA;QACN,CAAC;KACJ,CAAA;IAED,gBAAgB;IAChB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CAAa,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpH,mCAAmC;IACnC,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,IAAI,CAAC,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,CAAA;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,aAAa,CAAA;IAEpC,qEAAqE;IACrE,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAA;QACtE,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC,EAAE,CAAE,IAAI,EAAE,QAAQ,CAAE,CAAC,CAAA;IAEtB,eAAe;IACf,IAAI,KAAK;QACL,OAAO,YAAG,SAAS,EAAC,iHAAiH,oEAAwD,CAAA;IAEjM,YAAY;IACZ,OAAO,8BACD,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,aAAG,SAAS,EAAC,gIAAgI,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,6BAAyB,EAC1R,OAAO,IAAI,aAAG,SAAS,EAAC,6GAA6G,+CAAiC,IAAI,GAAG,QAAQ,oBAAkB,aAAa,QAAI,eAAM,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,SAAS,EAAC,iDAAiD,0BAAiB,IAAI,EAChV,SAAS,IAAI,aAAG,SAAS,EAAC,iHAAiH,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,gCAA4B,EAC7P,aAAI,SAAS,EAAC,uEAAuE,YAC/E,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACjE,OAAO,cAAI,SAAS,EAAC,SAAS,aAAwB,KAAC,aAAa,IAAC,SAAS,EAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC,IAAI,KAA7F,WAAW,GAAC,CAAC,CAAC,EAAE,CAAoF,CAAA;gBAC5I,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GACT,EACH,OAAO,IAAI,YAAG,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,SAAS,EAAC,yJAAyJ,0BAAc,EACnO,aAAG,SAAS,EAAC,8HAA8H,aAAC,eAAM,SAAS,EAAC,cAAc,6BAAoB,2DAAuD,IACtP,CAAA;AACP,CAAC,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"audiences-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/audiences-panel.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from 'react';
3
3
  import Link from 'next/link';
4
4
  import { useOptimizelyOne } from '../context';
@@ -36,7 +36,7 @@ export const ExpPanel = () => {
36
36
  const expIds = experimentsArray.map(ed => ed.id);
37
37
  return !expIds.includes(c.experiment.id);
38
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}`)) }) })] });
39
+ return _jsxs(_Fragment, { children: [_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}`)) }) })] }), _jsx("p", { className: 'oo-text-[12px]', children: "Powered by: Optimizely Web Experimentation" })] });
40
40
  };
41
41
  export default ExpPanel;
42
42
  //# sourceMappingURL=exp-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exp-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/exp-panel.tsx"],"names":[],"mappings":"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"}
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,7 @@
1
+ import { type FunctionComponent } from 'react';
2
+ export type GoalsPanelProps = {
3
+ servicePrefix?: string;
4
+ refreshInterval?: number;
5
+ };
6
+ export declare const GoalsPanel: FunctionComponent<GoalsPanelProps>;
7
+ export default GoalsPanel;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { TrophyIcon, ArrowPathIcon } from '@heroicons/react/20/solid';
3
+ import useSWR from 'swr';
4
+ export const GoalsPanel = ({ servicePrefix = '/api/me', refreshInterval = 2000 }) => {
5
+ const serviceUrl = `${servicePrefix}/cgoals`;
6
+ const { data, isLoading, isValidating, error } = useSWR(serviceUrl, {
7
+ revalidateOnMount: true,
8
+ fetcher: () => fetch(serviceUrl).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 next best goals" });
17
+ const goals = (data?.goals ?? []).map(t => _jsxs("li", { className: 'oo-py-1', children: [_jsx(TrophyIcon, { className: 'oo-inline-block oo-h-[16px] oo-w-[16px] oo-mr-2' }), t.goal, " (", `${t.score * 100}%`, ")"] }, "goal-" + t.goal));
18
+ if (goals.length == 0)
19
+ goals.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 goals inferred from behaviour" }) }, "no-topics"));
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: goals }), _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 goals"] }), 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 goals"] })] });
21
+ };
22
+ export default GoalsPanel;
23
+ //# sourceMappingURL=goals-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goals-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/goals-panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,MAAM,MAAM,KAAK,CAAA;AAQxB,MAAM,CAAC,MAAM,UAAU,GAAwC,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,EAAE,EAAE;IAErH,MAAM,UAAU,GAAG,GAAI,aAAc,SAAS,CAAA;IAC9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAc,UAAU,EAAE;QAC7E,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtC,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,gEAAoD,CAAA;IAE7L,MAAM,KAAK,GAAmB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAI,SAAS,EAAC,SAAS,aAC9E,KAAC,UAAU,IAAC,SAAS,EAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC,IAAI,QAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,UADvB,OAAO,GAAC,CAAC,CAAC,IAAI,CAEjG,CAAC,CAAA;IACN,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,aAAI,SAAS,EAAC,SAAS,YAAiB,cAAK,SAAS,EAAC,iHAAiH,iDAAuC,IAAnL,WAAW,CAA6K,CAAC,CAAA;IAEpO,OAAO,8BACH,aAAI,SAAS,EAAC,uEAAuE,YAAG,KAAK,GAAO,EACpG,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,yBAAqB,EACtR,SAAS,IAAI,aAAG,SAAS,EAAC,iHAAiH,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,sBAAkB,IACpP,CAAA;AACP,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -3,7 +3,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
3
3
  import { Fragment, useLayoutEffect, useCallback } from 'react';
4
4
  import useCookie from '../use-cookie';
5
5
  import { Popover, PopoverButton, PopoverPanel, Tab, TabGroup, TabList, TabPanels, TabPanel } from '@headlessui/react';
6
- import { ChevronUpIcon, UserGroupIcon, TagIcon, RocketLaunchIcon, IdentificationIcon, Square3Stack3DIcon } from '@heroicons/react/20/solid';
6
+ import { ChevronUpIcon, UserGroupIcon, TagIcon, RocketLaunchIcon, IdentificationIcon, Square3Stack3DIcon, TrophyIcon } from '@heroicons/react/20/solid';
7
7
  import OptiLogo from './logo';
8
8
  import { useIsInTestMode } from '../use-test-mode';
9
9
  import { useSearchParams, usePathname } from 'next/navigation';
@@ -16,7 +16,8 @@ const Panels = {
16
16
  Experiments: dynamic(() => import('./exp-panel'), { ssr: false }),
17
17
  Interests: dynamic(() => import('./interests-panel'), { ssr: false }),
18
18
  Audiences: dynamic(() => import('./audiences-panel'), { ssr: false }),
19
- Graph: dynamic(() => import('./graph-panel'), { ssr: false })
19
+ Graph: dynamic(() => import('./graph-panel'), { ssr: false }),
20
+ Goals: dynamic(() => import('./goals-panel'), { ssr: false })
20
21
  };
21
22
  /**
22
23
  * Add an Optimizely One Debug helper to the page, which can be triggered by
@@ -62,7 +63,7 @@ export const OptimizelyOneGadget = ({ servicePrefix = "/api/me", refreshInterval
62
63
  console.log(`Optimizely One Demo API: ${servicePrefix}`);
63
64
  console.log(`Refresh interval: ${refreshInterval == 0 ? 'DISABLED' : refreshInterval + 'ms'}`);
64
65
  console.groupEnd();
65
- return _jsxs(Popover, { className: "oo-gadget md:oo-fixed md:oo-bottom-0 oo-z-[500]", children: [_jsxs(PopoverButton, { 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] dark:oo-text-slate-800', 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(PopoverPanel, { 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 oo-text-slate-800 dark:oo-text-slate-800", 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(TabGroup, { as: Fragment, children: [_jsxs(TabList, { 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(TabPanels, { className: "oo-flex-1 md:oo-h-24 oo-overscroll-contain oo-overflow-y-auto", children: [_jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Interests, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Audiences, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Experiments, {}) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Ids, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Graph, { servicePrefix: servicePrefix }) })] })] })] })] });
66
+ return _jsxs(Popover, { className: "oo-gadget md:oo-fixed md:oo-bottom-0 oo-z-[500]", children: [_jsxs(PopoverButton, { 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] dark:oo-text-slate-800', 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(PopoverPanel, { 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 oo-text-slate-800 dark:oo-text-slate-800", 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(TabGroup, { as: Fragment, children: [_jsxs(TabList, { 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(TrophyIcon, { className: 'oo-inline-block oo-h-[18px] oo-w-[18px] oo-mr-2' }), "Goals"] }), _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(TabPanels, { className: "oo-flex-1 md:oo-h-24 oo-overscroll-contain oo-overflow-y-auto", children: [_jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Interests, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Goals, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Audiences, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Experiments, {}) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Ids, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }), _jsx(TabPanel, { as: "div", className: 'oo-p-1 md:oo-p-2', children: _jsx(Panels.Graph, { servicePrefix: servicePrefix }) })] })] })] })] });
66
67
  };
67
68
  export default OptimizelyOneGadget;
68
69
  //# sourceMappingURL=index.js.map