@active-reach/web-sdk 1.19.0 → 1.20.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.
- package/dist/aegis.min.js +1 -1
- package/dist/aegis.min.js.map +1 -1
- package/dist/inapp/AegisInAppManager.d.ts.map +1 -1
- package/dist/index.js +197 -47
- package/dist/index.js.map +1 -1
- package/dist/runtime/AegisMessageRuntime.d.ts +36 -19
- package/dist/runtime/AegisMessageRuntime.d.ts.map +1 -1
- package/dist/triggers/ContactScoresFetcher.d.ts +6 -0
- package/dist/triggers/ContactScoresFetcher.d.ts.map +1 -1
- package/dist/triggers/IntentRuleEvaluator.d.ts +29 -4
- package/dist/triggers/IntentRuleEvaluator.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AegisInAppManager.d.ts","sourceRoot":"","sources":["../../src/inapp/AegisInAppManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;AAiC5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EACA,OAAO,GACP,QAAQ,GACR,SAAS,GACT,aAAa,GACb,mBAAmB,GACnB,OAAO,GACP,KAAK,GACL,OAAO,GAEP,SAAS,GAET,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,gBAAgB,GAChB,wBAAwB,GAGxB,iBAAiB,GACjB,aAAa,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAO1B,iCAAiC,CAAC,EAAE,MAAM,CAAC;QAC3C,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;KACzC,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAO7B,cAAc,CAAC,EAAE,KAAK,CAAC,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,CAAC,CAAC;IAK/E,eAAe,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAKvF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IASnE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAInB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB;;iDAE6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;0EACsE;IACtE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,wEAAwE;IACxE,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,KAAK,GAAG,cAAc,GAAG,cAAc,CAAC;CAC9E;AAED;kEACkE;AAClE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf;yEACqE;IACrE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACzD,oBAAoB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,GAAG,KAAK,CAAC;IAChE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACpD,gBAAgB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,KAAK,CAAC;IAC5D,kBAAkB,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;CAC5C;AAiBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,qBAAqB,CAAC,CAAoC;IAClE,OAAO,CAAC,cAAc,CAAC,CAA2B;IAClD,OAAO,CAAC,YAAY,CAAC,CAA8B;IAEnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,kBAAkB,CAAqB;IAI/C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAGjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAiB;IAclE,OAAO,CAAC,KAAK,CAA4E;IAKzF,OAAO,CAAC,YAAY,CAAc;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAE1B;IAEH,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,QAAQ;IAWhB;;;;;;;;;;OAUG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,sBAAsB,EACvC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,MAAM,IAAI;IAIb;sEACkE;IAClE,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,GAC5C,MAAM,IAAI;IAIb;;sCAEkC;IAClC,kBAAkB,CAChB,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,GAAG,KAAK,GACjD,MAAM,IAAI;IAIb;oDACgD;IAChD,eAAe,CACb,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,GACzC,MAAM,IAAI;IAIb;;4EAEwE;IACxE,eAAe,CACb,OAAO,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,KAAK,GACjD,MAAM,IAAI;IAIb;oDACgD;IAChD,iBAAiB,CACf,OAAO,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,GAC3C,MAAM,IAAI;IAIb;;uDAEmD;IACnD,OAAO,CACL,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GACtC,MAAM,IAAI;gBAID,MAAM,EAAE,gBAAgB;IAsB9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAsBxC,OAAO,CAAC,oBAAoB,CAAC,CAAgC;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAOlD,OAAO,CAAC,cAAc,CAAuB;IAQ7C,OAAO,CAAC,aAAa,CAAuB;IAQ5C,OAAO,CAAC,iBAAiB,CAAuB;IAQhD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CASnC;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,UAAQ,GAAG,IAAI;IA8BpE;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAe5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAsBxC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,6BAA6B;IAuBrC;;;;;;OAMG;IACH,OAAO,CAAC,+BAA+B;IAwBvC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAwDlB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;YAkBV,gBAAgB;IAsJ9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAyB;IAEpE,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,WAAW,CAA0B;IAE7C;;;;;;;;;;OAUG;IACH;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,eAAe;IAiDvB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAyC1B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,kBAAkB;IA4C1B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAoH9B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,mBAAmB;IAmB3B;;;iFAG6E;IAC7E,OAAO,CAAC,qBAAqB;IAyD7B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IActB;+CAC2C;IAC3C,OAAO,CAAC,cAAc;IAqHtB;sFACkF;YACpE,kBAAkB;IAoChC;;;;;OAKG;YACW,oBAAoB;IAuClC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"AegisInAppManager.d.ts","sourceRoot":"","sources":["../../src/inapp/AegisInAppManager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4580,6 +4580,7 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4580
4580
|
const labels = shown.map((s) => s.label);
|
|
4581
4581
|
const n = labels.length >= 2 ? labels.length : 8;
|
|
4582
4582
|
const isLossSeg = (i) => !!shown[i] && String(shown[i].prize_type || "").toLowerCase() === "no_prize";
|
|
4583
|
+
const alreadyWon = ic.already_won && typeof ic.already_won === "object" ? ic.already_won : null;
|
|
4583
4584
|
const colorOf = (i) => {
|
|
4584
4585
|
const c = shown[i] && typeof shown[i].color === "string" ? shown[i].color : "";
|
|
4585
4586
|
return c || (i % 2 === 0 ? text : `${text}40`);
|
|
@@ -4615,6 +4616,8 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4615
4616
|
let soundOn = ic.spin_sound_enabled !== false;
|
|
4616
4617
|
const pointerColor = cfgStr("spin_pointer_color") || "#ffffff";
|
|
4617
4618
|
const hubImg = cfgStr("spin_hub_image_url");
|
|
4619
|
+
const wheelBgImg = cfgStr("wheel_background_url");
|
|
4620
|
+
const pointerImg = cfgStr("pointer_image_url");
|
|
4618
4621
|
const isUrl = (s) => /^https?:\/\//i.test(s);
|
|
4619
4622
|
const now = () => typeof performance !== "undefined" && performance.now ? performance.now() : Date.now();
|
|
4620
4623
|
let rotation = 0;
|
|
@@ -4692,11 +4695,12 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4692
4695
|
const wheelWrap = document.createElement("div");
|
|
4693
4696
|
wheelWrap.style.cssText = `position: relative; width: ${SIZE}px; height: ${SIZE}px; filter: drop-shadow(0 10px 22px rgba(0,0,0,0.30));`;
|
|
4694
4697
|
const pointer = document.createElement("div");
|
|
4695
|
-
pointer.style.cssText = `position: absolute; left: 50%; top: -7px; transform: translateX(-50%); transform-origin: 50% 0; width: 0; height: 0; border-left: 9px solid transparent; border-right: 9px solid transparent; border-top: 16px solid ${pointerColor}; z-index: 5; filter: drop-shadow(0 2px 2px rgba(0,0,0,0.35));`;
|
|
4698
|
+
pointer.style.cssText = pointerImg ? `position: absolute; left: 50%; top: -10px; transform: translateX(-50%); transform-origin: 50% 0; width: 26px; height: 30px; background: center / contain no-repeat url("${pointerImg}"); z-index: 5; filter: drop-shadow(0 2px 2px rgba(0,0,0,0.35));` : `position: absolute; left: 50%; top: -7px; transform: translateX(-50%); transform-origin: 50% 0; width: 0; height: 0; border-left: 9px solid transparent; border-right: 9px solid transparent; border-top: 16px solid ${pointerColor}; z-index: 5; filter: drop-shadow(0 2px 2px rgba(0,0,0,0.35));`;
|
|
4696
4699
|
const wheel = document.createElement("div");
|
|
4697
|
-
|
|
4700
|
+
const wheelFace = wheelBgImg ? `center / cover no-repeat url("${wheelBgImg}")` : `conic-gradient(${stops})`;
|
|
4701
|
+
wheel.style.cssText = `position: relative; width: ${SIZE}px; height: ${SIZE}px; border-radius: 50%; border: 5px solid #ffffff; box-shadow: 0 0 0 2px ${text}2e, inset 0 0 22px rgba(0,0,0,0.20); background: ${wheelFace}; overflow: hidden; will-change: transform; touch-action: none; cursor: ${spinMode === "button" ? "default" : "grab"};`;
|
|
4698
4702
|
if (idleAnim === "wobble") wheel.style.animation = "aegisSpinWobble 3s ease-in-out infinite";
|
|
4699
|
-
starts.forEach((b) => {
|
|
4703
|
+
if (!wheelBgImg) starts.forEach((b) => {
|
|
4700
4704
|
const ln = document.createElement("div");
|
|
4701
4705
|
ln.style.cssText = `position: absolute; left: 50%; top: 0; width: 1.5px; height: 50%; background: rgba(255,255,255,0.55); transform-origin: bottom center; transform: translateX(-50%) rotate(${b}deg); pointer-events: none;`;
|
|
4702
4706
|
wheel.appendChild(ln);
|
|
@@ -4705,8 +4709,19 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4705
4709
|
const rRim = radius - 8;
|
|
4706
4710
|
const bandLen = rRim - rHub;
|
|
4707
4711
|
const rText = (rHub + rRim) / 2;
|
|
4708
|
-
labels.forEach((label, i) => {
|
|
4712
|
+
if (!wheelBgImg) labels.forEach((label, i) => {
|
|
4709
4713
|
const mid = midOf(i);
|
|
4714
|
+
const wedgeImg = shown[i] && typeof shown[i].image_url === "string" ? shown[i].image_url : "";
|
|
4715
|
+
if (wedgeImg && isUrl(wedgeImg)) {
|
|
4716
|
+
const flipImg = mid > 180 && mid < 360;
|
|
4717
|
+
const isz = Math.max(18, Math.min(40, bandLen * 0.62));
|
|
4718
|
+
const wim = document.createElement("img");
|
|
4719
|
+
wim.src = wedgeImg;
|
|
4720
|
+
wim.alt = label || "";
|
|
4721
|
+
wim.style.cssText = `position: absolute; left: 50%; top: 50%; width: ${isz}px; height: ${isz}px; object-fit: contain; transform: translate(-50%, -50%) rotate(${mid}deg) translateY(-${rText}px) rotate(${flipImg ? 90 : -90}deg); filter: drop-shadow(0 1px 3px rgba(0,0,0,0.55)); pointer-events: none;`;
|
|
4722
|
+
wheel.appendChild(wim);
|
|
4723
|
+
return;
|
|
4724
|
+
}
|
|
4710
4725
|
const icoVal = shown[i] && typeof shown[i].icon === "string" ? shown[i].icon : "";
|
|
4711
4726
|
const chord = 2 * rText * Math.sin(spans[i] * Math.PI / 180 / 2);
|
|
4712
4727
|
const byThickness = chord * 0.6;
|
|
@@ -4943,7 +4958,25 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4943
4958
|
this._playReaction(card, "empathize", void 0, ic);
|
|
4944
4959
|
}
|
|
4945
4960
|
if (winReveal === "takeover" && r.won) renderTakeover(r);
|
|
4946
|
-
else
|
|
4961
|
+
else if (r.label && r.code) {
|
|
4962
|
+
result.textContent = "";
|
|
4963
|
+
const tag = document.createElement("span");
|
|
4964
|
+
tag.textContent = `${r.label} — `;
|
|
4965
|
+
const chip = document.createElement("button");
|
|
4966
|
+
chip.type = "button";
|
|
4967
|
+
chip.textContent = `${r.code} ⧉`;
|
|
4968
|
+
chip.style.cssText = `padding: 2px 8px; border-radius: 999px; border: 1.5px dashed ${text}66; background: transparent; color: ${text}; font-weight: 800; font-size: 12px; letter-spacing: 0.5px; cursor: pointer;`;
|
|
4969
|
+
chip.addEventListener("click", () => {
|
|
4970
|
+
var _a;
|
|
4971
|
+
try {
|
|
4972
|
+
void ((_a = navigator.clipboard) == null ? void 0 : _a.writeText(r.code));
|
|
4973
|
+
chip.textContent = "Copied ✓";
|
|
4974
|
+
} catch {
|
|
4975
|
+
}
|
|
4976
|
+
});
|
|
4977
|
+
result.appendChild(tag);
|
|
4978
|
+
result.appendChild(chip);
|
|
4979
|
+
} else result.textContent = r.label || "Thanks for playing!";
|
|
4947
4980
|
retireCta();
|
|
4948
4981
|
};
|
|
4949
4982
|
const beginSpin = (velocityDegPerMs) => {
|
|
@@ -4959,16 +4992,40 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4959
4992
|
const v = Math.min(2.4, Math.max(0.25, velocityDegPerMs || 0.6));
|
|
4960
4993
|
const turns = Math.round(3 + v * 2);
|
|
4961
4994
|
const provisional = Math.floor(Math.random() * n);
|
|
4995
|
+
const loopSpeed = 0.5 + v * 0.35;
|
|
4996
|
+
let looping = true;
|
|
4962
4997
|
let done = false;
|
|
4998
|
+
let lastTs = now();
|
|
4999
|
+
const loopFrame = () => {
|
|
5000
|
+
if (!looping) return;
|
|
5001
|
+
const t = now();
|
|
5002
|
+
const moved = loopSpeed * (t - lastTs);
|
|
5003
|
+
lastTs = t;
|
|
5004
|
+
rotation += moved;
|
|
5005
|
+
spinSpeed = moved;
|
|
5006
|
+
wheel.style.transform = `rotate(${rotation}deg)`;
|
|
5007
|
+
playTicks(rotation);
|
|
5008
|
+
requestAnimationFrame(loopFrame);
|
|
5009
|
+
};
|
|
5010
|
+
requestAnimationFrame(loopFrame);
|
|
5011
|
+
const lossIndex = () => {
|
|
5012
|
+
for (let i = 0; i < n; i++) {
|
|
5013
|
+
if (isLossSeg(i)) return i;
|
|
5014
|
+
}
|
|
5015
|
+
return provisional;
|
|
5016
|
+
};
|
|
4963
5017
|
const launch = (idx, r) => {
|
|
4964
5018
|
if (done) return;
|
|
4965
5019
|
done = true;
|
|
5020
|
+
looping = false;
|
|
4966
5021
|
const segMid = midOf(idx);
|
|
4967
5022
|
const want = ((360 - segMid) % 360 + 360) % 360;
|
|
4968
5023
|
const base = rotation;
|
|
4969
5024
|
let target2 = base - (base % 360 + 360) % 360 + want + turns * 360;
|
|
4970
5025
|
if (target2 <= base + 360) target2 += 360;
|
|
4971
|
-
|
|
5026
|
+
const matched = 3 * (target2 - base) / Math.max(0.05, loopSpeed);
|
|
5027
|
+
const duration = Math.min(4200, Math.max(2300, matched));
|
|
5028
|
+
animateTo(target2, duration, () => {
|
|
4972
5029
|
spinning = false;
|
|
4973
5030
|
reveal(r);
|
|
4974
5031
|
});
|
|
@@ -4982,16 +5039,18 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
4982
5039
|
const kind = prize && typeof prize.prize_type === "string" ? prize.prize_type.toLowerCase() : shown[idx] && typeof shown[idx].prize_type === "string" ? String(shown[idx].prize_type).toLowerCase() : "";
|
|
4983
5040
|
const lost = prize ? String(prize.prize_type || "").toLowerCase() === "no_prize" : isLossSeg(idx);
|
|
4984
5041
|
launch(idx, { label, code, won: !!label && !lost, kind });
|
|
5042
|
+
}).catch(() => {
|
|
4985
5043
|
});
|
|
4986
|
-
window.setTimeout(
|
|
4987
|
-
()
|
|
4988
|
-
|
|
5044
|
+
window.setTimeout(() => {
|
|
5045
|
+
if (done) return;
|
|
5046
|
+
const li = lossIndex();
|
|
5047
|
+
launch(li, {
|
|
5048
|
+
label: labels[li] || "",
|
|
4989
5049
|
code: "",
|
|
4990
|
-
won:
|
|
4991
|
-
kind: shown[
|
|
4992
|
-
})
|
|
4993
|
-
|
|
4994
|
-
);
|
|
5050
|
+
won: false,
|
|
5051
|
+
kind: shown[li] && typeof shown[li].prize_type === "string" ? String(shown[li].prize_type).toLowerCase() : "no_prize"
|
|
5052
|
+
});
|
|
5053
|
+
}, 8e3);
|
|
4995
5054
|
};
|
|
4996
5055
|
if (spinMode === "button" || spinMode === "both") {
|
|
4997
5056
|
btn.addEventListener("click", () => beginSpin(0.7));
|
|
@@ -5063,6 +5122,16 @@ const _AegisInAppManager = class _AegisInAppManager {
|
|
|
5063
5122
|
body.appendChild(btn);
|
|
5064
5123
|
card.appendChild(body);
|
|
5065
5124
|
target.appendChild(card);
|
|
5125
|
+
if (alreadyWon) {
|
|
5126
|
+
stopIdle();
|
|
5127
|
+
const wonKind = String(alreadyWon.prize_type || "").toLowerCase();
|
|
5128
|
+
reveal({
|
|
5129
|
+
label: String(alreadyWon.label || ""),
|
|
5130
|
+
code: String(alreadyWon.coupon_code || ""),
|
|
5131
|
+
won: wonKind !== "no_prize",
|
|
5132
|
+
kind: wonKind
|
|
5133
|
+
});
|
|
5134
|
+
}
|
|
5066
5135
|
return true;
|
|
5067
5136
|
}
|
|
5068
5137
|
/** Built-in embedded QUICK POLL — option buttons submit the chosen index. */
|
|
@@ -9144,10 +9213,19 @@ function maybeStartPairing(apiHost) {
|
|
|
9144
9213
|
}
|
|
9145
9214
|
}
|
|
9146
9215
|
function isIntentLeaf(expr) {
|
|
9147
|
-
return "
|
|
9216
|
+
return !("operands" in expr);
|
|
9217
|
+
}
|
|
9218
|
+
function getValueByPath(namespaces, path) {
|
|
9219
|
+
if (!namespaces || !path) return void 0;
|
|
9220
|
+
let cur = namespaces;
|
|
9221
|
+
for (const part of path.split(".")) {
|
|
9222
|
+
if (cur === null || typeof cur !== "object" || Array.isArray(cur)) return void 0;
|
|
9223
|
+
cur = cur[part];
|
|
9224
|
+
}
|
|
9225
|
+
return cur;
|
|
9148
9226
|
}
|
|
9149
|
-
function evaluateLeaf(leaf, snapshot) {
|
|
9150
|
-
const actual = snapshot[leaf.signal];
|
|
9227
|
+
function evaluateLeaf(leaf, snapshot, namespaces) {
|
|
9228
|
+
const actual = leaf.path !== void 0 ? getValueByPath(namespaces, leaf.path) : leaf.signal !== void 0 ? snapshot[leaf.signal] : void 0;
|
|
9151
9229
|
if (actual === void 0 || actual === null) {
|
|
9152
9230
|
return null;
|
|
9153
9231
|
}
|
|
@@ -9179,14 +9257,14 @@ function evaluateLeaf(leaf, snapshot) {
|
|
|
9179
9257
|
}
|
|
9180
9258
|
}
|
|
9181
9259
|
}
|
|
9182
|
-
function evaluateExpr(expr, snapshot) {
|
|
9260
|
+
function evaluateExpr(expr, snapshot, namespaces) {
|
|
9183
9261
|
if (isIntentLeaf(expr)) {
|
|
9184
|
-
return evaluateLeaf(expr, snapshot);
|
|
9262
|
+
return evaluateLeaf(expr, snapshot, namespaces);
|
|
9185
9263
|
}
|
|
9186
9264
|
switch (expr.op) {
|
|
9187
9265
|
case "AND": {
|
|
9188
9266
|
for (const operand of expr.operands) {
|
|
9189
|
-
const v = evaluateExpr(operand, snapshot);
|
|
9267
|
+
const v = evaluateExpr(operand, snapshot, namespaces);
|
|
9190
9268
|
if (v === null) return false;
|
|
9191
9269
|
if (!v) return false;
|
|
9192
9270
|
}
|
|
@@ -9195,14 +9273,14 @@ function evaluateExpr(expr, snapshot) {
|
|
|
9195
9273
|
case "OR": {
|
|
9196
9274
|
let allNull = true;
|
|
9197
9275
|
for (const operand of expr.operands) {
|
|
9198
|
-
const v = evaluateExpr(operand, snapshot);
|
|
9276
|
+
const v = evaluateExpr(operand, snapshot, namespaces);
|
|
9199
9277
|
if (v === true) return true;
|
|
9200
9278
|
if (v !== null) allNull = false;
|
|
9201
9279
|
}
|
|
9202
9280
|
return allNull ? null : false;
|
|
9203
9281
|
}
|
|
9204
9282
|
case "NOT": {
|
|
9205
|
-
const v = evaluateExpr(expr.operands[0], snapshot);
|
|
9283
|
+
const v = evaluateExpr(expr.operands[0], snapshot, namespaces);
|
|
9206
9284
|
if (v === null) return null;
|
|
9207
9285
|
return !v;
|
|
9208
9286
|
}
|
|
@@ -9211,14 +9289,15 @@ function evaluateExpr(expr, snapshot) {
|
|
|
9211
9289
|
}
|
|
9212
9290
|
}
|
|
9213
9291
|
}
|
|
9214
|
-
function evaluateRule(rule, snapshot) {
|
|
9215
|
-
const result = evaluateExpr(rule.when, snapshot);
|
|
9292
|
+
function evaluateRule(rule, snapshot, namespaces) {
|
|
9293
|
+
const result = evaluateExpr(rule.when, snapshot, namespaces);
|
|
9216
9294
|
return result === true;
|
|
9217
9295
|
}
|
|
9218
9296
|
class IntentRuleEvaluator {
|
|
9219
9297
|
constructor() {
|
|
9220
9298
|
this.armed = [];
|
|
9221
9299
|
this.snapshot = {};
|
|
9300
|
+
this.namespaces = {};
|
|
9222
9301
|
this.firedThisSession = /* @__PURE__ */ new Set();
|
|
9223
9302
|
this.silencedThisSession = /* @__PURE__ */ new Set();
|
|
9224
9303
|
}
|
|
@@ -9232,6 +9311,21 @@ class IntentRuleEvaluator {
|
|
|
9232
9311
|
getSnapshot() {
|
|
9233
9312
|
return this.snapshot;
|
|
9234
9313
|
}
|
|
9314
|
+
// ─── generic reactive context (updateContext) ───
|
|
9315
|
+
/** Merge a namespace's data (shallow). Path-leaves (`cart.total`) resolve
|
|
9316
|
+
* against this. The runtime's updateContext() delegates here so there is ONE
|
|
9317
|
+
* context store, then bridges well-known paths to enum signals. */
|
|
9318
|
+
updateContext(namespace, data) {
|
|
9319
|
+
if (!namespace || !data) return;
|
|
9320
|
+
this.namespaces[namespace] = { ...this.namespaces[namespace], ...data };
|
|
9321
|
+
}
|
|
9322
|
+
getNamespaces() {
|
|
9323
|
+
return this.namespaces;
|
|
9324
|
+
}
|
|
9325
|
+
/** Resolve a dot-path against the live context (for previews / debugging). */
|
|
9326
|
+
getValueByPath(path) {
|
|
9327
|
+
return getValueByPath(this.namespaces, path);
|
|
9328
|
+
}
|
|
9235
9329
|
// ─── armed-campaign management ───
|
|
9236
9330
|
setArmed(campaigns) {
|
|
9237
9331
|
this.armed = [...campaigns];
|
|
@@ -9277,7 +9371,7 @@ class IntentRuleEvaluator {
|
|
|
9277
9371
|
});
|
|
9278
9372
|
for (let i = 0; i < candidates.length; i++) {
|
|
9279
9373
|
const c = candidates[i];
|
|
9280
|
-
if (!evaluateRule(c.rule, this.snapshot)) continue;
|
|
9374
|
+
if (!evaluateRule(c.rule, this.snapshot, this.namespaces)) continue;
|
|
9281
9375
|
if (c.rule.suppress_competing) {
|
|
9282
9376
|
const suppressIds = this.armed.filter((other) => other.id !== c.id).map((other) => other.id);
|
|
9283
9377
|
suppressIds.forEach((id) => this.silencedThisSession.add(id));
|
|
@@ -9360,6 +9454,13 @@ class ContactScoresFetcher {
|
|
|
9360
9454
|
this.latestSnapshot = payload;
|
|
9361
9455
|
if (this.evaluator) {
|
|
9362
9456
|
this.evaluator.updateSnapshot(toIntentSnapshot(payload));
|
|
9457
|
+
if (payload.context && typeof payload.context === "object") {
|
|
9458
|
+
for (const [ns, data] of Object.entries(payload.context)) {
|
|
9459
|
+
if (data && typeof data === "object") {
|
|
9460
|
+
this.evaluator.updateContext(ns, data);
|
|
9461
|
+
}
|
|
9462
|
+
}
|
|
9463
|
+
}
|
|
9363
9464
|
}
|
|
9364
9465
|
return payload;
|
|
9365
9466
|
} catch (err) {
|
|
@@ -12118,6 +12219,9 @@ class AegisLoyaltyManager {
|
|
|
12118
12219
|
}
|
|
12119
12220
|
}
|
|
12120
12221
|
class AegisMessageRuntime {
|
|
12222
|
+
// Context is held in ONE place — `intentRuleEvaluator.namespaces` (fed via
|
|
12223
|
+
// updateContext). The renderer cart reader + the cart_value signal are DERIVED
|
|
12224
|
+
// from it; there is no parallel cart/context store on the runtime.
|
|
12121
12225
|
constructor(config) {
|
|
12122
12226
|
var _a;
|
|
12123
12227
|
this.initialized = false;
|
|
@@ -12156,7 +12260,7 @@ class AegisMessageRuntime {
|
|
|
12156
12260
|
getWorkspaceId: config.getWorkspaceId,
|
|
12157
12261
|
// First-party cart reader — renderers (progress-bar) read live cart
|
|
12158
12262
|
// state from here instead of `window.*` cart globals. See setCartState().
|
|
12159
|
-
getCartState: () => this.
|
|
12263
|
+
getCartState: () => this.deriveCartState()
|
|
12160
12264
|
});
|
|
12161
12265
|
this.intentRuleEvaluator = new IntentRuleEvaluator();
|
|
12162
12266
|
this.contactScores = new ContactScoresFetcher({
|
|
@@ -12237,31 +12341,77 @@ class AegisMessageRuntime {
|
|
|
12237
12341
|
(_b = (_a = this.inApp).onClientEvent) == null ? void 0 : _b.call(_a, eventName, eventData);
|
|
12238
12342
|
}
|
|
12239
12343
|
/**
|
|
12240
|
-
*
|
|
12241
|
-
*
|
|
12242
|
-
*
|
|
12243
|
-
*
|
|
12344
|
+
* Unified reactive context — the GENERAL imperative state API (Plotline-style
|
|
12345
|
+
* "global context state engine"). The host app feeds named namespaces:
|
|
12346
|
+
* runtime.updateContext('cart', { total: 540, items: 3, currency: 'INR' })
|
|
12347
|
+
* runtime.updateContext('user', { tier: 'gold', lifecycle: 'active' })
|
|
12348
|
+
* runtime.updateContext('session', { idle_s: 60 })
|
|
12244
12349
|
*
|
|
12245
|
-
*
|
|
12246
|
-
*
|
|
12247
|
-
*
|
|
12248
|
-
* via the getCartState reader passed into the InAppManager;
|
|
12249
|
-
* 2. feeds the `cart_value` micro-intent signal so `CART_VALUE`-gated
|
|
12250
|
-
* campaigns (e.g. a cart-idle nudge) can evaluate — this signal was
|
|
12251
|
-
* previously never populated client-side;
|
|
12252
|
-
* 3. taps a debounced in-app refresh so a newly eligible cart-gated
|
|
12253
|
-
* campaign arms without waiting for the next identity flip.
|
|
12350
|
+
* Held in PRIVATE runtime state (no `window` pollution). Merged shallowly per
|
|
12351
|
+
* namespace and evaluated entirely client-side — no round-trip. This supersedes
|
|
12352
|
+
* the single-purpose `setCartState` (kept as a thin wrapper for back-compat).
|
|
12254
12353
|
*
|
|
12255
|
-
*
|
|
12256
|
-
*
|
|
12354
|
+
* Design note (vs the proposed rewrite): we DELIBERATELY do NOT introduce a
|
|
12355
|
+
* parallel rule schema. Our canonical `IntentRule` (shared with the cell-plane
|
|
12356
|
+
* Pydantic schema + the editor + seeded campaigns) stays the source of truth.
|
|
12357
|
+
* `updateContext` BRIDGES known paths into the existing enum-keyed
|
|
12358
|
+
* `IntentSnapshot` (e.g. cart.total → the `cart_value` signal) so today's rules
|
|
12359
|
+
* keep firing — fed by the generic API. Arbitrary dot-path leaves
|
|
12360
|
+
* (`cart.foo`) are a forward-compatible follow-up that adds an optional `path`
|
|
12361
|
+
* to the canonical `IntentLeaf` (schema-mirrored + drift-guarded), NOT a second
|
|
12362
|
+
* evaluator. Tri-state (null = unprovable) evaluation is preserved — we do not
|
|
12363
|
+
* regress missing paths to `false`.
|
|
12257
12364
|
*/
|
|
12258
|
-
|
|
12259
|
-
|
|
12260
|
-
|
|
12261
|
-
|
|
12262
|
-
|
|
12365
|
+
updateContext(namespace, data) {
|
|
12366
|
+
if (!namespace || typeof namespace !== "string" || !data) return;
|
|
12367
|
+
this.intentRuleEvaluator.updateContext(namespace, data);
|
|
12368
|
+
this.bridgeContextToSignals(namespace);
|
|
12369
|
+
this.inApp.refreshOnEvent("context_updated");
|
|
12370
|
+
}
|
|
12371
|
+
/** Read the current client-side context snapshot (for the editor scrubber /
|
|
12372
|
+
* preview bridge to mirror live values). Read-only view of the ONE store. */
|
|
12373
|
+
getContext() {
|
|
12374
|
+
return this.intentRuleEvaluator.getNamespaces();
|
|
12375
|
+
}
|
|
12376
|
+
/**
|
|
12377
|
+
* Bridge well-known context paths into the canonical enum-keyed IntentSnapshot,
|
|
12378
|
+
* so existing signal-based rules (cart_value) keep firing off the generic
|
|
12379
|
+
* `updateContext`. Reads from the ONE store (the evaluator). Extend here as new
|
|
12380
|
+
* signals map to context paths — no parallel engine.
|
|
12381
|
+
*/
|
|
12382
|
+
bridgeContextToSignals(namespace) {
|
|
12383
|
+
if (namespace === "cart") {
|
|
12384
|
+
const total = Number(this.intentRuleEvaluator.getValueByPath("cart.total") ?? this.intentRuleEvaluator.getValueByPath("cart.cart_value"));
|
|
12385
|
+
if (Number.isFinite(total)) {
|
|
12386
|
+
this.intentRuleEvaluator.updateSignal("cart_value", total);
|
|
12387
|
+
}
|
|
12263
12388
|
}
|
|
12264
|
-
|
|
12389
|
+
}
|
|
12390
|
+
/** Derive the typed cart snapshot for the progress-bar renderer reader from
|
|
12391
|
+
* the ONE context store (the `cart` namespace). No separate cart field. */
|
|
12392
|
+
deriveCartState() {
|
|
12393
|
+
const total = Number(this.intentRuleEvaluator.getValueByPath("cart.total"));
|
|
12394
|
+
if (!Number.isFinite(total)) return void 0;
|
|
12395
|
+
const items = Number(
|
|
12396
|
+
this.intentRuleEvaluator.getValueByPath("cart.items") ?? this.intentRuleEvaluator.getValueByPath("cart.itemCount")
|
|
12397
|
+
);
|
|
12398
|
+
const currency = this.intentRuleEvaluator.getValueByPath("cart.currency");
|
|
12399
|
+
return {
|
|
12400
|
+
total,
|
|
12401
|
+
itemCount: Number.isFinite(items) ? items : 0,
|
|
12402
|
+
currency: typeof currency === "string" ? currency : "INR"
|
|
12403
|
+
};
|
|
12404
|
+
}
|
|
12405
|
+
/**
|
|
12406
|
+
* Back-compat wrapper over `updateContext('cart', …)`. The single-purpose cart
|
|
12407
|
+
* feed for headless storefronts; prefer `updateContext` for new code.
|
|
12408
|
+
*/
|
|
12409
|
+
setCartState(state) {
|
|
12410
|
+
this.updateContext("cart", {
|
|
12411
|
+
total: state.total,
|
|
12412
|
+
items: state.itemCount,
|
|
12413
|
+
currency: state.currency
|
|
12414
|
+
});
|
|
12265
12415
|
}
|
|
12266
12416
|
// --- Qualifying-event refresh facade (DLR Tracker 1 / P1, 2026-05-28) ---
|
|
12267
12417
|
//
|