@remkoj/optimizely-one-nextjs 4.0.0 → 4.2.0

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 (62) hide show
  1. package/dist/api/content-goals.js +9 -1
  2. package/dist/api/content-goals.js.map +1 -1
  3. package/dist/api/content-recs.js.map +1 -1
  4. package/dist/api/experimentation-api.js +4 -6
  5. package/dist/api/experimentation-api.js.map +1 -1
  6. package/dist/api/graph-info-service.js +3 -3
  7. package/dist/api/graph-info-service.js.map +1 -1
  8. package/dist/api/profile-api-service.js +10 -9
  9. package/dist/api/profile-api-service.js.map +1 -1
  10. package/dist/client-types.d.ts +13 -0
  11. package/dist/components/index.d.ts +1 -1
  12. package/dist/components/index.js +2 -1
  13. package/dist/components/index.js.map +1 -1
  14. package/dist/components/optimizely-one-gadget/_notice.d.ts +7 -0
  15. package/dist/components/optimizely-one-gadget/_notice.js +9 -0
  16. package/dist/components/optimizely-one-gadget/_notice.js.map +1 -0
  17. package/dist/components/optimizely-one-gadget/_types.d.ts +24 -0
  18. package/dist/components/optimizely-one-gadget/_types.js +2 -0
  19. package/dist/components/optimizely-one-gadget/_types.js.map +1 -0
  20. package/dist/components/optimizely-one-gadget/audiences-panel.js +7 -6
  21. package/dist/components/optimizely-one-gadget/audiences-panel.js.map +1 -1
  22. package/dist/components/optimizely-one-gadget/gadget.d.ts +13 -0
  23. package/dist/components/optimizely-one-gadget/gadget.js +119 -0
  24. package/dist/components/optimizely-one-gadget/gadget.js.map +1 -0
  25. package/dist/components/optimizely-one-gadget/goals-panel.js +6 -5
  26. package/dist/components/optimizely-one-gadget/goals-panel.js.map +1 -1
  27. package/dist/components/optimizely-one-gadget/graph-panel.js +4 -3
  28. package/dist/components/optimizely-one-gadget/graph-panel.js.map +1 -1
  29. package/dist/components/optimizely-one-gadget/ids-panel.js +8 -3
  30. package/dist/components/optimizely-one-gadget/ids-panel.js.map +1 -1
  31. package/dist/components/optimizely-one-gadget/index.d.ts +3 -32
  32. package/dist/components/optimizely-one-gadget/index.js +15 -66
  33. package/dist/components/optimizely-one-gadget/index.js.map +1 -1
  34. package/dist/components/optimizely-one-gadget/interests-panel.js +6 -5
  35. package/dist/components/optimizely-one-gadget/interests-panel.js.map +1 -1
  36. package/dist/components/optimizely-one-gadget/profile-panel.js +4 -3
  37. package/dist/components/optimizely-one-gadget/profile-panel.js.map +1 -1
  38. package/dist/components/rsc.d.ts +2 -0
  39. package/dist/components/rsc.js +3 -0
  40. package/dist/components/rsc.js.map +1 -0
  41. package/dist/config.d.ts +22 -0
  42. package/dist/config.js +29 -0
  43. package/dist/config.js.map +1 -0
  44. package/dist/env-vars.js.map +1 -1
  45. package/dist/products/content-recs/api.js +8 -7
  46. package/dist/products/content-recs/api.js.map +1 -1
  47. package/dist/products/data-platform/api.js +14 -16
  48. package/dist/products/data-platform/api.js.map +1 -1
  49. package/dist/products/data-platform/helpers.d.ts +2 -1
  50. package/dist/products/data-platform/helpers.js +3 -5
  51. package/dist/products/data-platform/helpers.js.map +1 -1
  52. package/dist/products/data-platform/snippet.d.ts +1 -1
  53. package/dist/products/data-platform/snippet.js +2 -0
  54. package/dist/products/data-platform/snippet.js.map +1 -1
  55. package/dist/server.d.ts +1 -0
  56. package/dist/server.js +1 -0
  57. package/dist/server.js.map +1 -1
  58. package/dist/styles.css +1 -1
  59. package/dist/utils/session.d.ts +2 -2
  60. package/dist/utils/session.js +4 -7
  61. package/dist/utils/session.js.map +1 -1
  62. package/package.json +20 -20
@@ -1,12 +1,20 @@
1
1
  import { ContentRecs } from '../products';
2
+ import getConfig, { checkProductStatus } from '../config';
3
+ import * as Responses from './responses';
2
4
  export const ContentRecsGoalsService = {
3
5
  for: { path: '/cgoals', verb: 'get' },
4
6
  handler: async (query, cookies) => {
7
+ const config = getConfig();
8
+ if (!config.HelperEnabled)
9
+ return Responses.NotFound;
10
+ const products = checkProductStatus(config);
11
+ if (!products.contentRecsApi)
12
+ return Responses.NotFound;
5
13
  const crId = ContentRecs.Tools.getVisitorID(cookies);
6
14
  if (!crId)
7
15
  return [{ goals: [] }, 200];
8
16
  const contentRecs = new ContentRecs.Client();
9
- const nextBestGoals = await contentRecs.getNextBestGoals(crId);
17
+ const nextBestGoals = await contentRecs.getNextBestGoals(crId).catch(() => []);
10
18
  return [{ goals: nextBestGoals }, 200];
11
19
  }
12
20
  };
@@ -1 +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"}
1
+ {"version":3,"file":"content-goals.js","sourceRoot":"","sources":["../../src/api/content-goals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,SAAS,EAAE,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAgBxC,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC7D,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAA;QAEpD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAA;QAEvD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,IAAI;YACL,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAC/B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9E,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;CACJ,CAAA;AAED,eAAe,uBAAuB,CAAA"}
@@ -1 +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"}
1
+ {"version":3,"file":"content-recs.js","sourceRoot":"","sources":["../../src/api/content-recs.ts"],"names":[],"mappings":"AAEA,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"}
@@ -1,15 +1,13 @@
1
- import * as EnvTools from '../utils/env';
2
- import EnvVars from '../env-vars';
1
+ import getConfig from '../config';
3
2
  export const ExperimentationApiService = {
4
3
  for: { path: '/exp', verb: 'get' },
5
4
  handler: async (query) => {
6
- const configuredProjectId = EnvTools.readValue(EnvVars.WebExperimentationProject);
5
+ const { WebExperimentationProject: configuredProjectId, HelperEnabled: helperEnabled, OptimizelyDebug: debug } = getConfig();
7
6
  const queryProjectId = query.get('pid') ?? undefined;
8
- const helperEnabled = EnvTools.readValueAsBoolean(EnvVars.HelperEnabled, false);
9
7
  const projectId = helperEnabled ? queryProjectId ?? configuredProjectId : configuredProjectId;
10
8
  // Make sure we have a Project ID
11
9
  if (!projectId) {
12
- if (EnvTools.readValueAsBoolean(EnvVars.OptimizelyDebug, false))
10
+ if (debug)
13
11
  console.log("🔴 No Optimizely Web Experimentation Project ID identified");
14
12
  return [{ error: { message: "Project not found", status: 404 } }, 404];
15
13
  }
@@ -20,7 +18,7 @@ export const ExperimentationApiService = {
20
18
  }
21
19
  });
22
20
  if (!snippetResponse.ok) {
23
- if (EnvTools.readValueAsBoolean(EnvVars.OptimizelyDebug, false))
21
+ if (debug)
24
22
  console.log("🔴 Non OK response from the Optimizely Web Experimentation CDN");
25
23
  return [{ error: { message: snippetResponse.statusText, status: snippetResponse.status } }, snippetResponse.status];
26
24
  }
@@ -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,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"}
1
+ {"version":3,"file":"experimentation-api.js","sourceRoot":"","sources":["../../src/api/experimentation-api.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,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,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAA;QAC5H,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAA;QACpD,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,KAAK;gBACL,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,KAAK;gBACL,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,12 +1,12 @@
1
- import * as EnvTools from '../utils/env';
2
- import EnvVars from '../env-vars';
3
1
  import * as Responses from './responses';
4
2
  import createAdminApi from '@remkoj/optimizely-graph-client/admin';
3
+ import getConfig from '../config';
5
4
  export const GraphInfoApiService = {
6
5
  for: { path: '/graph', verb: 'get' },
7
6
  handler: async (query, cookies) => {
7
+ const config = getConfig();
8
8
  // Check if the toolkit is enabled
9
- if (!EnvTools.readValueAsBoolean(EnvVars.HelperEnabled, false))
9
+ if (!config.HelperEnabled)
10
10
  return Responses.NotFound;
11
11
  const adminApi = createAdminApi();
12
12
  const hooks = await adminApi.webhooks.listWebhookHandler();
@@ -1 +1 @@
1
- {"version":3,"file":"graph-info-service.js","sourceRoot":"","sources":["../../src/api/graph-info-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAA;AACxC,OAAO,OAAO,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,cAAc,MAAM,uCAAuC,CAAA;AAGlE,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IAClE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,kCAAkC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;YAC1D,OAAO,SAAS,CAAC,QAAQ,CAAA;QAE7B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;QAEjC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAA;QAC1D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAA;QACzE,MAAM,OAAO,GAAW,EAAE,CAAA;QAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC,CAAA;QACN,CAAC;QAED,OAAO,CAAC;gBACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC5E,OAAO;wBACH,GAAG,EAAE,UAAU;wBACf,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,UAAU;wBAC9C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;qBAC9B,CAAA;gBACL,CAAC,CAAC;gBACF,OAAO;aACV,EAAE,GAAG,CAAC,CAAA;IACX,CAAC;CACJ,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"graph-info-service.js","sourceRoot":"","sources":["../../src/api/graph-info-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,cAAc,MAAM,uCAAuC,CAAA;AAClE,OAAO,SAAS,MAAM,WAAW,CAAA;AAGjC,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IAClE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa;YACrB,OAAO,SAAS,CAAC,QAAQ,CAAA;QAE7B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;QAEjC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAA;QAC1D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAA;QACzE,MAAM,OAAO,GAAW,EAAE,CAAA;QAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC,CAAA;QACN,CAAC;QAED,OAAO,CAAC;gBACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC5E,OAAO;wBACH,GAAG,EAAE,UAAU;wBACf,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,UAAU;wBAC9C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;qBAC9B,CAAA;gBACL,CAAC,CAAC;gBACF,OAAO;aACV,EAAE,GAAG,CAAC,CAAA;IACX,CAAC;CACJ,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -1,14 +1,15 @@
1
- import * as EnvTools from '../utils/env';
2
- import EnvVars from '../env-vars';
3
1
  import * as Responses from './responses';
4
2
  import Session from '../utils/session';
3
+ import getConfig, { checkProductStatus } from '../config';
5
4
  import { DataPlatform, ContentRecs, WebExperimentation } from '../products';
6
5
  const NO_ID = 'n/a';
7
6
  export const ProfileApiService = {
8
7
  for: { path: '/', verb: 'get' },
9
8
  handler: async (query, cookies) => {
9
+ const config = getConfig();
10
+ const products = checkProductStatus(config);
10
11
  // Check if the toolkit is enabled
11
- if (!EnvTools.readValueAsBoolean(EnvVars.HelperEnabled, false))
12
+ if (!config.HelperEnabled)
12
13
  return Responses.NotFound;
13
14
  // Start timer
14
15
  let start = Date.now();
@@ -23,20 +24,20 @@ export const ProfileApiService = {
23
24
  const webExId = WebExperimentation.Tools.getVisitorID(cookies);
24
25
  const frontendId = Session.getVisitorId(cookies);
25
26
  // Read parameters & set values
26
- const pageSize = Math.max(stringToInt(query.get('limit'), 10), 1);
27
+ const pageSize = config.OdpAudienceBatchSize;
27
28
  const pageNumber = Math.max(stringToInt(query.get('page'), 0), 0);
28
29
  let audiencesPageCount = 0;
29
30
  let audiencesCount = 0;
30
31
  // Determine audiences if needed
31
32
  let audiences = [];
32
- const odp = new DataPlatform.Client();
33
- if (fetchODPAudiences && odpId) {
33
+ const odp = products.dataPlatform ? new DataPlatform.Client() : undefined;
34
+ if (odp && fetchODPAudiences && odpId) {
34
35
  const allAudiences = await odp.getAllAudiences();
35
36
  audiencesCount = allAudiences.length;
36
37
  // Split the list into manageable groups
37
38
  const chunks = [];
38
39
  allAudiences.forEach((item, idx) => {
39
- const chunkId = Math.floor(idx / EnvTools.readValueAsInt(EnvVars.OdpAudienceBatchSize, pageSize));
40
+ const chunkId = Math.floor(idx / config.OdpAudienceBatchSize);
40
41
  chunks[chunkId] = chunks[chunkId] || [];
41
42
  chunks[chunkId].push(item.id);
42
43
  });
@@ -47,7 +48,7 @@ export const ProfileApiService = {
47
48
  audiences = allAudiences.filter(a => userAudienceIds.includes(a.id));
48
49
  }
49
50
  // Fetch the profile if needed
50
- const profile = fetchProfileCard && odpId ? await odp.getProfileInfo(odpId) : undefined;
51
+ const profile = odp && fetchProfileCard && odpId ? await odp.getProfileInfo(odpId) : undefined;
51
52
  // Determine topics if needed
52
53
  let topics = [];
53
54
  if (fetchContentTopics && crId) {
@@ -64,7 +65,7 @@ export const ProfileApiService = {
64
65
  rts: {
65
66
  pageSize,
66
67
  pageNumber,
67
- audiences: audiences,
68
+ audiences,
68
69
  audiencesPageCount,
69
70
  audiencesCount,
70
71
  },
@@ -1 +1 @@
1
- {"version":3,"file":"profile-api-service.js","sourceRoot":"","sources":["../../src/api/profile-api-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-api-service.js","sourceRoot":"","sources":["../../src/api/profile-api-service.ts"],"names":[],"mappings":"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"}
@@ -130,5 +130,18 @@ export type OptlyWebGet = {
130
130
  accountId: string;
131
131
  revision: string;
132
132
  };
133
+ visitor_id: {
134
+ [strategy: string]: string;
135
+ };
136
+ visitor: {
137
+ visitorId: string;
138
+ source_type: string;
139
+ referrer: string | null;
140
+ first_session: boolean;
141
+ device_type: string;
142
+ device: string;
143
+ browser: string;
144
+ browserVersion: string;
145
+ };
133
146
  };
134
147
  export {};
@@ -1,4 +1,4 @@
1
- export { OptimizelyOneGadget } from './optimizely-one-gadget';
1
+ export { OptimizelyOneGadget } from './optimizely-one-gadget/gadget';
2
2
  export { OptimizelyOneProvider, useOptimizelyOne } from './context';
3
3
  export { PageActivator } from './page-activator';
4
4
  export { useIsInTestMode } from './use-test-mode';
@@ -1,4 +1,5 @@
1
- export { OptimizelyOneGadget } from './optimizely-one-gadget';
1
+ 'use client';
2
+ export { OptimizelyOneGadget } from './optimizely-one-gadget/gadget';
2
3
  export { OptimizelyOneProvider, useOptimizelyOne } from './context';
3
4
  export { PageActivator } from './page-activator';
4
5
  export { useIsInTestMode } from './use-test-mode';
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,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,7 @@
1
+ import { type ReactNode, type FunctionComponent, type PropsWithChildren } from "react";
2
+ export declare const Notice: FunctionComponent<PropsWithChildren<{
3
+ prefix?: string;
4
+ message?: string | ReactNode;
5
+ isLoading?: boolean;
6
+ }>>;
7
+ export default Notice;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowPathIcon } from '@heroicons/react/20/solid';
3
+ export const Notice = ({ prefix, message, isLoading = false, children }) => {
4
+ const PrefixComponent = prefix && _jsx("span", { className: 'oo-notice-prefix', children: prefix });
5
+ const Spinner = isLoading && _jsx(ArrowPathIcon, { className: 'oo-notice-spinner' });
6
+ return _jsxs("p", { className: 'oo-notice', children: [Spinner, PrefixComponent, message, children] });
7
+ };
8
+ export default Notice;
9
+ //# sourceMappingURL=_notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_notice.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/_notice.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,MAAM,CAAC,MAAM,MAAM,GAIb,CAAC,EACH,MAAM,EACN,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,QAAQ,EACX,EAAE,EAAE;IAED,MAAM,eAAe,GAAG,MAAM,IAAI,eAAM,SAAS,EAAC,kBAAkB,YAAG,MAAM,GAAS,CAAA;IACtF,MAAM,OAAO,GAAG,SAAS,IAAI,KAAC,aAAa,IAAC,SAAS,EAAC,mBAAmB,GAAG,CAAA;IAC5E,OAAO,aAAG,SAAS,EAAC,WAAW,aACzB,OAAO,EACP,eAAe,EACf,OAAO,EACP,QAAQ,IACV,CAAA;AACR,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,24 @@
1
+ export type OptimizelyOneGadgetProps = {
2
+ /**
3
+ * The API Route at which the companion API has been installed in your
4
+ * Next.JS Application.
5
+ *
6
+ * If not set, defaults to "/api/me"
7
+ */
8
+ servicePrefix?: string;
9
+ /**
10
+ * The interval, in milliseconds, between refreshes of the content in the
11
+ * debug panels.
12
+ *
13
+ * If not set, defaults to 0 (no auto refresh)
14
+ */
15
+ refreshInterval?: number;
16
+ /**
17
+ * If set, bypasses the enabled/disabled detection allowing the application
18
+ * to take control of the visibility of the gadget.
19
+ */
20
+ show?: boolean;
21
+ showDataPlatform?: boolean;
22
+ showContentRecs?: boolean;
23
+ showWebEx?: boolean;
24
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/_types.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect } from 'react';
3
- import { ArrowPathIcon, UserGroupIcon } from '@heroicons/react/20/solid';
3
+ import { UserGroupIcon } from '@heroicons/react/20/solid';
4
4
  import useSWRInfinite from 'swr/infinite';
5
+ import Notice from './_notice';
5
6
  const buildGetKey = (servicePrefix, pageSize) => {
6
7
  const serviceURL = `${servicePrefix}?scope=audiences&limit=${pageSize}`;
7
8
  const getKey = (pageIndex, previousPageData) => {
@@ -43,11 +44,11 @@ export const AudiencesPanel = ({ servicePrefix = '/api/me', refreshInterval = 0
43
44
  }, [size, profiles]);
44
45
  // Handle error
45
46
  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
+ return _jsx(Notice, { message: 'There was an error loading your profile information' });
47
48
  // Show list
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?.rts.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() }), _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"] })] });
49
+ return _jsxs(_Fragment, { children: [hasMore && _jsx(Notice, { prefix: 'Please note:', message: _jsxs(_Fragment, { children: ["Showing results for the first ", size * pageSize, " audiences of ", audienceCount, ", ", _jsx("span", { onClick: () => setSize(size + 1), className: "oo-link", children: "load more" })] }) }), _jsx("ul", { className: 'oo-list', children: (profiles || []).map(profile => (profile?.rts.audiences ?? []).map(a => {
50
+ return _jsxs("li", { className: 'oo-list-item', children: [_jsx(UserGroupIcon, { className: 'oo-list-item-icon' }), a.name] }, "audience-" + a.id);
51
+ })).flat() }), _jsx("p", { className: 'oo-small', children: "Powered by: Optimizely Data Platform" }), hasMore && _jsx("p", { onClick: () => setSize(size + 1), className: 'oo-btn', children: "Load more" }), isLoading && _jsx(Notice, { isLoading: true, message: 'Loading the audiences...' }), (isValidating && !isLoading) && _jsx(Notice, { isLoading: true, message: 'Refreshing audiences' }), _jsx(Notice, { prefix: 'Please note:', message: 'Interest based audiences are updated once per hour' })] });
51
52
  };
52
53
  export default AudiencesPanel;
53
54
  //# 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,GAAG,CAAC,kBAAkB,GAAG,SAAS;YAAE,OAAO,IAAI,CAAA;QACxF,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,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAA;IAChF,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAC5E,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,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1E,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,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,EAClV,aAAI,SAAS,EAAC,uEAAuE,YAC/E,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACrE,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,EACL,YAAG,SAAS,EAAC,gBAAgB,qDAAyC,EACpE,OAAO,IAAI,YAAG,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,SAAS,EAAC,yJAAyJ,0BAAc,EACjO,SAAS,IAAI,aAAG,SAAS,EAAC,iHAAiH,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,gCAA4B,EAC3P,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,aAAG,SAAS,EAAC,gIAAgI,aAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uDAAuD,GAAG,6BAAyB,EAC5R,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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"}
@@ -0,0 +1,13 @@
1
+ import type { OptimizelyOneGadgetProps } from './_types';
2
+ import { type FunctionComponent } from 'react';
3
+ import '../../styles.css';
4
+ /**
5
+ * Add an Optimizely One Demo helper to the page, which can be triggered by
6
+ * the "test cookie" feature of the Optimizely Web Experimentation browser
7
+ * extension.
8
+ *
9
+ * @param param0 The component properties
10
+ * @returns The component JSX
11
+ */
12
+ export declare const OptimizelyOneGadget: FunctionComponent<OptimizelyOneGadgetProps>;
13
+ export default OptimizelyOneGadget;
@@ -0,0 +1,119 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Fragment, useLayoutEffect, useCallback } from 'react';
4
+ import useCookie from '../use-cookie';
5
+ import { Popover, PopoverButton, PopoverPanel, Tab, TabGroup, TabList, TabPanels, TabPanel } from '@headlessui/react';
6
+ import { ChevronUpIcon, UserGroupIcon, TagIcon, RocketLaunchIcon, IdentificationIcon, Square3Stack3DIcon, TrophyIcon, FingerPrintIcon } from '@heroicons/react/20/solid';
7
+ import OptiLogo from './logo';
8
+ import { useIsInTestMode } from '../use-test-mode';
9
+ import { useSearchParams, usePathname } from 'next/navigation';
10
+ // Import the Panel CSS
11
+ import '../../styles.css';
12
+ // Prepare panel imports
13
+ import dynamic from 'next/dynamic';
14
+ const Panels = [
15
+ {
16
+ id: 'Profile',
17
+ Tab: () => _jsxs(Tab, { as: "div", className: "oo-gadget-tab-label", children: [_jsx(IdentificationIcon, { className: 'oo-gadget-tab-label-icon' }), "Profile"] }),
18
+ Panel: dynamic(() => import('./profile-panel'), { ssr: false }),
19
+ products: ['odp']
20
+ },
21
+ {
22
+ id: 'Interests',
23
+ Tab: () => _jsxs(Tab, { as: "div", className: 'oo-gadget-tab-label', children: [_jsx(TagIcon, { className: 'oo-gadget-tab-label-icon' }), "Interests"] }),
24
+ Panel: dynamic(() => import('./interests-panel'), { ssr: false }),
25
+ products: ['crecs']
26
+ },
27
+ {
28
+ id: 'Goals',
29
+ Tab: () => _jsxs(Tab, { as: "div", className: 'oo-gadget-tab-label', children: [_jsx(TrophyIcon, { className: 'oo-gadget-tab-label-icon' }), "Goals"] }),
30
+ Panel: dynamic(() => import('./goals-panel'), { ssr: false }),
31
+ products: ['crecs']
32
+ },
33
+ {
34
+ id: 'Audiences',
35
+ Tab: () => _jsxs(Tab, { as: "div", className: 'oo-gadget-tab-label', children: [_jsx(UserGroupIcon, { className: 'oo-gadget-tab-label-icon' }), "Audiences"] }),
36
+ Panel: dynamic(() => import('./audiences-panel'), { ssr: false }),
37
+ products: ['odp']
38
+ },
39
+ {
40
+ id: 'Experiments',
41
+ Tab: () => _jsxs(Tab, { as: "div", className: 'oo-gadget-tab-label', children: [_jsx(RocketLaunchIcon, { className: 'oo-gadget-tab-label-icon' }), "Experiments"] }),
42
+ Panel: dynamic(() => import('./exp-panel'), { ssr: false }),
43
+ products: ['webex']
44
+ },
45
+ {
46
+ id: 'Identifiers',
47
+ Tab: () => _jsxs(Tab, { as: "div", className: 'oo-gadget-tab-label', children: [_jsx(FingerPrintIcon, { className: 'oo-gadget-tab-label-icon' }), "Identifiers"] }),
48
+ Panel: dynamic(() => import('./ids-panel'), { ssr: false }),
49
+ products: []
50
+ },
51
+ {
52
+ id: 'Graph',
53
+ Tab: () => _jsxs(Tab, { as: "div", className: 'oo-gadget-tab-label', children: [_jsx(Square3Stack3DIcon, { className: 'oo-gadget-tab-label-icon' }), "Graph"] }),
54
+ Panel: dynamic(() => import('./graph-panel'), { ssr: false }),
55
+ products: []
56
+ },
57
+ ];
58
+ /**
59
+ * Add an Optimizely One Demo helper to the page, which can be triggered by
60
+ * the "test cookie" feature of the Optimizely Web Experimentation browser
61
+ * extension.
62
+ *
63
+ * @param param0 The component properties
64
+ * @returns The component JSX
65
+ */
66
+ export const OptimizelyOneGadget = ({ servicePrefix = "/api/me", refreshInterval = 0, show = undefined, showContentRecs = true, showDataPlatform = true, showWebEx = true }) => {
67
+ const inTestMode = useIsInTestMode();
68
+ const searchParams = useSearchParams();
69
+ const pathname = usePathname();
70
+ const wxProjectIdParam = searchParams.get('pid');
71
+ const [projectIdCookie, setProjectIdCookie, removeProjectIdCookie] = useCookie('wx.projectid');
72
+ const enabledProducts = [];
73
+ if (showContentRecs)
74
+ enabledProducts.push('crecs');
75
+ if (showDataPlatform)
76
+ enabledProducts.push('odp');
77
+ if (showWebEx)
78
+ enabledProducts.push('webex');
79
+ const removeQueryParam = useCallback((paramName) => {
80
+ const newParams = new URLSearchParams(searchParams.toString());
81
+ if (newParams.has(paramName))
82
+ newParams.delete(paramName);
83
+ const newSearch = newParams.toString();
84
+ const newPath = pathname + (newSearch.length > 0 ? '?' + newParams.toString() : '');
85
+ try {
86
+ window.location.href = newPath;
87
+ }
88
+ catch (e) {
89
+ console.log("🛑 Refreshing the page to apply the new Web Experimenation project failed, please refresh manually.");
90
+ }
91
+ }, [pathname, searchParams]);
92
+ useLayoutEffect(() => {
93
+ if (wxProjectIdParam != null && wxProjectIdParam != projectIdCookie) {
94
+ if (wxProjectIdParam == "")
95
+ removeProjectIdCookie();
96
+ else
97
+ setProjectIdCookie(wxProjectIdParam);
98
+ removeQueryParam('pid');
99
+ }
100
+ }, [wxProjectIdParam, projectIdCookie, removeQueryParam, removeProjectIdCookie, setProjectIdCookie]);
101
+ const forceHidden = show != undefined && show == false;
102
+ const forceShown = show != undefined && show == true;
103
+ if (forceHidden || (!forceShown && !inTestMode))
104
+ return _jsx(_Fragment, {});
105
+ console.groupCollapsed(`🔎 [Optimizely One Gadget] Initializing Optimizely Demo Gadget`);
106
+ console.log(`Optimizely One Demo API: ${servicePrefix}`);
107
+ console.log(`Refresh interval: ${refreshInterval == 0 ? 'DISABLED' : refreshInterval + 'ms'}`);
108
+ console.log(`Enabled products: ${enabledProducts.join(', ')}`);
109
+ console.groupEnd();
110
+ return _jsxs(Popover, { className: "oo-gadget", children: [_jsxs(PopoverButton, { className: 'oo-gadget-button', children: [_jsx(OptiLogo, { className: 'oo-gadget-button-logo' }), _jsx(ChevronUpIcon, { className: "oo-gadget-button-icon" })] }), _jsxs(PopoverPanel, { className: "oo-gadget-panel", children: [_jsxs("div", { className: "oo-gadget-panel-heading", children: [_jsx(IdentificationIcon, { className: 'oo-gadget-panel-heading-icon' }), "My Profile"] }), _jsxs(TabGroup, { as: Fragment, children: [_jsx(TabList, { className: "oo-gadget-tab-list", children: Panels.filter(pnl => pnl.products.length == 0 || pnl.products.every(pk => enabledProducts.includes(pk))).map(({ id: pnlId, Tab: GadgetTab }) => {
111
+ const pnlTabKey = 'Tab-' + pnlId;
112
+ return _jsx(GadgetTab, {}, pnlTabKey);
113
+ }) }), _jsx(TabPanels, { className: "oo-gadget-tab-container", children: Panels.filter(pnl => pnl.products.length == 0 || pnl.products.every(pk => enabledProducts.includes(pk))).map(({ id: pnlId, Panel: GadgetPanel }) => {
114
+ const pnlKey = 'Panel-' + pnlId;
115
+ return _jsx(TabPanel, { as: "div", className: "oo-gadget-tab-panel", children: _jsx(GadgetPanel, { servicePrefix: servicePrefix, refreshInterval: refreshInterval }) }, pnlKey);
116
+ }) })] })] })] });
117
+ };
118
+ export default OptimizelyOneGadget;
119
+ //# sourceMappingURL=gadget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gadget.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/gadget.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { TrophyIcon, ArrowPathIcon } from '@heroicons/react/20/solid';
2
+ import { TrophyIcon } from '@heroicons/react/20/solid';
3
3
  import useSWR from 'swr';
4
+ import Notice from './_notice';
4
5
  export const GoalsPanel = ({ servicePrefix = '/api/me', refreshInterval = 2000 }) => {
5
6
  const serviceUrl = `${servicePrefix}/cgoals`;
6
7
  const { data, isLoading, isValidating, error } = useSWR(serviceUrl, {
@@ -13,11 +14,11 @@ export const GoalsPanel = ({ servicePrefix = '/api/me', refreshInterval = 2000 }
13
14
  refreshInterval
14
15
  });
15
16
  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));
17
+ return _jsx(Notice, { children: "There was an error loading your next best goals" });
18
+ const goals = (data?.goals ?? []).map(t => _jsxs("li", { className: 'oo-list-item', children: [_jsx(TrophyIcon, { className: 'oo-list-item-icon' }), t.goal, " (", `${t.score * 100}%`, ")"] }, "goal-" + t.goal));
18
19
  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"] })] });
20
+ goals.push(_jsx("li", { className: 'oo-list-item', children: _jsx(Notice, { children: "No goals inferred from behaviour" }) }, "no-topics"));
21
+ return _jsxs(_Fragment, { children: [_jsx("ul", { className: 'oo-list', children: goals }), _jsx("p", { className: 'oo-small', children: "Powered by: Optimizely Content Recommendations" }), (isValidating && !isLoading) && _jsx(Notice, { isLoading: true, children: " Refreshing goals" }), isLoading && _jsx(Notice, { isLoading: true, children: " Loading goals" })] });
21
22
  };
22
23
  export default GoalsPanel;
23
24
  //# sourceMappingURL=goals-panel.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"goals-panel.js","sourceRoot":"","sources":["../../../src/components/optimizely-one-gadget/goals-panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,2BAA2B,CAAA;AACrE,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,MAAM,MAAM,WAAW,CAAA;AAO9B,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,KAAC,MAAM,kEAAyD,CAAA;IAE3E,MAAM,KAAK,GAAmB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAI,SAAS,EAAC,cAAc,aACnF,KAAC,UAAU,IAAC,SAAS,EAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,IAAI,QAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,UADY,OAAO,GAAC,CAAC,CAAC,IAAI,CAEtG,CAAC,CAAA;IACN,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,aAAI,SAAS,EAAC,cAAc,YAAiB,KAAC,MAAM,mDAA0C,IAA7D,WAAW,CAAuD,CAAC,CAAA;IAEnH,OAAO,8BACH,aAAI,SAAS,EAAC,SAAS,YAAG,KAAK,GAAO,EACtC,YAAG,SAAS,EAAC,UAAU,+DAAmD,EACxE,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAC,MAAM,IAAC,SAAS,wCAA2B,EAC5E,SAAS,IAAI,KAAC,MAAM,IAAC,SAAS,qCAAwB,IACzD,CAAA;AACP,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import useSWR from 'swr';
3
3
  import Link from 'next/link';
4
+ import Notice from './_notice';
4
5
  export const GraphPanel = ({ servicePrefix = '/api/me', refreshInterval = 30000 }) => {
5
6
  const id = `${servicePrefix}/graph`;
6
7
  const { data, isLoading, error } = useSWR(id, {
@@ -13,10 +14,10 @@ export const GraphPanel = ({ servicePrefix = '/api/me', refreshInterval = 30000
13
14
  })
14
15
  });
15
16
  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
+ return _jsx(Notice, { isLoading: true, message: 'Loading Optimizely Graph information...' });
17
18
  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" }) })] });
19
+ return _jsx(Notice, { message: 'There was an error loading Optimizely Graph information' });
20
+ return _jsxs(_Fragment, { children: [_jsxs("dl", { className: 'oo-definitions', children: [_jsx("dt", { className: 'oo-definitions-term', children: "Publishing changes to:" }), _jsx("dd", { className: 'oo-definitions-data', children: _jsx("ul", { className: 'oo-list', children: (data?.hooks || []).map(hook => _jsxs("li", { className: 'oo-list-item', 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-definitions-term', children: "Exposing content from:" }), _jsx("dd", { className: 'oo-definitions-data', children: _jsx("ul", { className: 'oo-list', children: (data?.sources || []).map(source => _jsxs("li", { className: 'oo-list-item', 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-link', href: "https://cg.optimizely.com/app/portal/", target: '_new', children: "Login to Optimizely Graph" }) })] });
20
21
  };
21
22
  function updateLabel(label) {
22
23
  if (label == "default")
@@ -1 +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"}
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;AAC5B,OAAO,MAAM,MAAM,WAAW,CAAA;AAO9B,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,KAAC,MAAM,IAAC,SAAS,QAAC,OAAO,EAAC,yCAAyC,GAAG,CAAA;IAEjF,IAAI,KAAK;QACL,OAAO,KAAC,MAAM,IAAC,OAAO,EAAC,yDAAyD,GAAG,CAAA;IAEvF,OAAO,8BACH,cAAI,SAAS,EAAC,gBAAgB,aAC1B,aAAI,SAAS,EAAC,qBAAqB,uCAA4B,EAC/D,aAAI,SAAS,EAAC,qBAAqB,YAC/B,aAAI,SAAS,EAAC,SAAS,YACjB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAI,SAAS,EAAC,cAAc,aAAiC,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,GACrP,GACJ,EACL,aAAI,SAAS,EAAC,qBAAqB,uCAA4B,EAC/D,aAAI,SAAS,EAAC,qBAAqB,YAC/B,aAAI,SAAS,EAAC,SAAS,YACjB,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,cAAI,SAAS,EAAC,cAAc,aAAmC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA2B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAA5G,UAAW,MAAM,CAAC,KAAK,EAAE,CAAyF,CAAC,GAC1L,GACJ,IACJ,EACL,YAAG,SAAS,EAAC,wBAAwB,YAAC,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,uCAAuC,EAAC,MAAM,EAAC,MAAM,0CAAiC,GAAI,IAChK,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"}