@coframe/sdk 1.1.48 → 1.1.49

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.
@@ -2123,7 +2123,13 @@ const applyVariantChanges = (variantElements, currentUrl, logger, nonce, lifecyc
2123
2123
  });
2124
2124
  }
2125
2125
  else if (selectedElement instanceof HTMLElement) {
2126
- selectedElement.setAttribute('coframe-exp-id', variant.experiment_id);
2126
+ const listAttribute = 'coframe-experiment-ids';
2127
+ const listed = selectedElement.getAttribute(listAttribute);
2128
+ const experimentIds = listed ? listed.split(',') : [];
2129
+ if (experimentIds.indexOf(variant.experiment_id) === -1) {
2130
+ experimentIds.push(variant.experiment_id);
2131
+ selectedElement.setAttribute(listAttribute, experimentIds.join(','));
2132
+ }
2127
2133
  }
2128
2134
  }
2129
2135
  return true;
@@ -4200,8 +4206,11 @@ function setupListeners(Coframe, executionStartTime) {
4200
4206
  for (const variantElement of Coframe.variantsAndElements || []) {
4201
4207
  const variant = variantElement.variant;
4202
4208
  if (!experiencedCoframeIds.has(variant.id)) {
4203
- const elements = document.querySelectorAll(`[coframe-exp-id="${variant.experiment_id}"]`);
4209
+ const elements = document.querySelectorAll('[coframe-experiment-ids]');
4204
4210
  for (const el of Array.from(elements)) {
4211
+ const experimentIds = (el.getAttribute('coframe-experiment-ids') || '').split(',');
4212
+ if (experimentIds.indexOf(variant.experiment_id) === -1)
4213
+ continue;
4205
4214
  if (isElementVisible(el)) {
4206
4215
  el.setAttribute('coframe-experienced', 'true');
4207
4216
  experiencedCoframeIds.add(variant.id);
@@ -2121,7 +2121,13 @@ const applyVariantChanges = (variantElements, currentUrl, logger, nonce, lifecyc
2121
2121
  });
2122
2122
  }
2123
2123
  else if (selectedElement instanceof HTMLElement) {
2124
- selectedElement.setAttribute('coframe-exp-id', variant.experiment_id);
2124
+ const listAttribute = 'coframe-experiment-ids';
2125
+ const listed = selectedElement.getAttribute(listAttribute);
2126
+ const experimentIds = listed ? listed.split(',') : [];
2127
+ if (experimentIds.indexOf(variant.experiment_id) === -1) {
2128
+ experimentIds.push(variant.experiment_id);
2129
+ selectedElement.setAttribute(listAttribute, experimentIds.join(','));
2130
+ }
2125
2131
  }
2126
2132
  }
2127
2133
  return true;
@@ -4198,8 +4204,11 @@ function setupListeners(Coframe, executionStartTime) {
4198
4204
  for (const variantElement of Coframe.variantsAndElements || []) {
4199
4205
  const variant = variantElement.variant;
4200
4206
  if (!experiencedCoframeIds.has(variant.id)) {
4201
- const elements = document.querySelectorAll(`[coframe-exp-id="${variant.experiment_id}"]`);
4207
+ const elements = document.querySelectorAll('[coframe-experiment-ids]');
4202
4208
  for (const el of Array.from(elements)) {
4209
+ const experimentIds = (el.getAttribute('coframe-experiment-ids') || '').split(',');
4210
+ if (experimentIds.indexOf(variant.experiment_id) === -1)
4211
+ continue;
4203
4212
  if (isElementVisible(el)) {
4204
4213
  el.setAttribute('coframe-experienced', 'true');
4205
4214
  experiencedCoframeIds.add(variant.id);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coframe/sdk",
3
- "version": "1.1.48",
3
+ "version": "1.1.49",
4
4
  "description": "Coframe optimizes your website using generative AI to deliver maximum impact to your audience and allow your site to improve itself as you sleep. Learn more at coframe.com.",
5
5
  "main": "dist/pkg/cf.cjs.js",
6
6
  "module": "dist/pkg/cf.esm.mjs",