@braze/web-sdk 5.5.0 → 5.6.1

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 (183) hide show
  1. package/index.d.ts +109 -7
  2. package/package.json +1 -1
  3. package/shared-lib/encoding-utils.js +1 -1
  4. package/shared-lib/event-types.js +33 -31
  5. package/shared-lib/guid.js +3 -3
  6. package/shared-lib/indexed-db-adapter.js +20 -20
  7. package/shared-lib/logger.js +18 -18
  8. package/shared-lib/supported-options.js +24 -24
  9. package/src/Banner/banner-factory.js +14 -0
  10. package/src/Banner/banner-provider-factory.js +19 -0
  11. package/src/Banner/banner-provider.js +198 -0
  12. package/src/Banner/banner.js +30 -0
  13. package/src/Banner/display/banner-to-html.js +57 -0
  14. package/src/Banner/display/destroy-banner-html.js +7 -0
  15. package/src/Banner/display/detect-banner-impressions.js +28 -0
  16. package/src/Banner/get-all-banners.js +13 -0
  17. package/src/Banner/get-banner.js +19 -0
  18. package/src/Banner/index.js +7 -0
  19. package/src/Banner/log-banner-click.js +22 -0
  20. package/src/Banner/log-banner-impressions.js +31 -0
  21. package/src/Banner/request-banners-refresh.js +35 -0
  22. package/src/Banner/subscribe-to-banners-updates.js +23 -0
  23. package/src/Banner/types.js +1 -0
  24. package/src/Banner/ui/insert-banner.js +24 -0
  25. package/src/Card/card-manager-factory.js +10 -10
  26. package/src/Card/card-manager.js +54 -52
  27. package/src/Card/display/card-display.js +77 -91
  28. package/src/Card/log-card-click.js +6 -6
  29. package/src/Card/log-card-dismissal.js +6 -5
  30. package/src/Card/log-card-impressions.js +11 -11
  31. package/src/Card/models/captioned-image.js +21 -21
  32. package/src/Card/models/card.js +99 -99
  33. package/src/Card/models/classic-card.js +21 -21
  34. package/src/Card/models/control-card.js +11 -11
  35. package/src/Card/models/image-only.js +19 -19
  36. package/src/Card/util/card-factory.js +58 -58
  37. package/src/ContentCards/content-cards-provider-factory.js +14 -14
  38. package/src/ContentCards/content-cards-provider.js +261 -263
  39. package/src/ContentCards/content-cards.js +5 -5
  40. package/src/ContentCards/get-cached-content-cards.js +3 -3
  41. package/src/ContentCards/request-content-cards-refresh.js +4 -4
  42. package/src/ContentCards/subscribe-to-content-cards-updates.js +13 -13
  43. package/src/ContentCards/ui/hide-content-cards.js +7 -7
  44. package/src/ContentCards/ui/show-content-cards.js +52 -52
  45. package/src/ContentCards/ui/toggle-content-cards.js +4 -4
  46. package/src/Core/add-sdk-metadata.js +9 -9
  47. package/src/Core/change-user.js +14 -14
  48. package/src/Core/destroy.js +3 -3
  49. package/src/Core/disable-sdk.js +13 -13
  50. package/src/Core/enable-sdk.js +9 -9
  51. package/src/Core/get-device-id.js +10 -10
  52. package/src/Core/get-user.js +2 -2
  53. package/src/Core/handle-braze-action.js +53 -53
  54. package/src/Core/initialize.js +2 -2
  55. package/src/Core/is-disabled.js +2 -2
  56. package/src/Core/is-initialized.js +2 -2
  57. package/src/Core/log-custom-event.js +27 -27
  58. package/src/Core/log-purchase.js +38 -38
  59. package/src/Core/open-session.js +18 -18
  60. package/src/Core/remove-all-subscriptions.js +2 -2
  61. package/src/Core/remove-subscription.js +3 -3
  62. package/src/Core/request-immediate-data-flush.js +5 -5
  63. package/src/Core/set-logger.js +2 -2
  64. package/src/Core/set-sdk-authentication-signature.js +6 -6
  65. package/src/Core/subscribe-to-sdk-authentication-failures.js +5 -5
  66. package/src/Core/toggle-logging.js +2 -2
  67. package/src/Core/wipe-data.js +10 -10
  68. package/src/FeatureFlags/feature-flag-factory.js +13 -13
  69. package/src/FeatureFlags/feature-flag.js +10 -10
  70. package/src/FeatureFlags/feature-flags-provider-factory.js +13 -14
  71. package/src/FeatureFlags/feature-flags-provider.js +118 -116
  72. package/src/FeatureFlags/get-all-feature-flags.js +10 -10
  73. package/src/FeatureFlags/get-feature-flag.js +9 -9
  74. package/src/FeatureFlags/log-feature-flag-impression.js +18 -18
  75. package/src/FeatureFlags/refresh-feature-flags.js +6 -6
  76. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +9 -9
  77. package/src/Feed/feed-provider-factory.js +12 -12
  78. package/src/Feed/feed-provider.js +59 -59
  79. package/src/Feed/feed.js +4 -4
  80. package/src/Feed/get-cached-feed.js +3 -3
  81. package/src/Feed/log-feed-displayed.js +5 -5
  82. package/src/Feed/request-feed-refresh.js +3 -3
  83. package/src/Feed/subscribe-to-feed-updates.js +4 -4
  84. package/src/Feed/ui/hide-feed.js +5 -5
  85. package/src/Feed/ui/show-feed.js +53 -53
  86. package/src/Feed/ui/toggle-feed.js +4 -4
  87. package/src/InAppMessage/defer-in-app-message.js +9 -9
  88. package/src/InAppMessage/display/html-message-display-utils.js +18 -164
  89. package/src/InAppMessage/display/html-message-to-html.js +55 -62
  90. package/src/InAppMessage/display/in-app-message-to-html.js +74 -74
  91. package/src/InAppMessage/display/modal-utils.js +17 -17
  92. package/src/InAppMessage/get-deferred-in-app-message.js +2 -2
  93. package/src/InAppMessage/in-app-message-factory.js +61 -61
  94. package/src/InAppMessage/in-app-message-manager-factory.js +9 -9
  95. package/src/InAppMessage/in-app-message-manager.js +158 -156
  96. package/src/InAppMessage/log-in-app-message-button-click.js +16 -16
  97. package/src/InAppMessage/log-in-app-message-click.js +11 -11
  98. package/src/InAppMessage/log-in-app-message-html-click.js +15 -15
  99. package/src/InAppMessage/log-in-app-message-impression.js +6 -6
  100. package/src/InAppMessage/models/control-message.js +15 -8
  101. package/src/InAppMessage/models/full-screen-message.js +34 -34
  102. package/src/InAppMessage/models/html-message.js +23 -23
  103. package/src/InAppMessage/models/in-app-message-button.js +10 -10
  104. package/src/InAppMessage/models/in-app-message.js +155 -155
  105. package/src/InAppMessage/models/modal-message.js +33 -33
  106. package/src/InAppMessage/models/slide-up-message.js +35 -35
  107. package/src/InAppMessage/models/templated-in-app-message.js +8 -8
  108. package/src/InAppMessage/subscribe-to-in-app-message.js +3 -3
  109. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +6 -6
  110. package/src/InAppMessage/ui/show-in-app-message.js +103 -103
  111. package/src/Push/is-push-blocked.js +2 -2
  112. package/src/Push/is-push-permission-granted.js +2 -2
  113. package/src/Push/is-push-supported.js +2 -2
  114. package/src/Push/push-manager-factory.js +25 -25
  115. package/src/Push/push-manager.js +176 -176
  116. package/src/Push/request-push-permission.js +8 -8
  117. package/src/Push/unregister-push.js +4 -4
  118. package/src/Push/utils/push-utils.js +4 -4
  119. package/src/User/user-manager.js +38 -38
  120. package/src/User/user.js +95 -92
  121. package/src/common/base-feed.js +9 -9
  122. package/src/common/base-provider.js +2 -2
  123. package/src/common/constants.js +1 -0
  124. package/src/common/detect-impression.js +18 -0
  125. package/src/common/event-logger.js +22 -22
  126. package/src/common/feed-display.js +53 -53
  127. package/src/index.js +1 -0
  128. package/src/l10n/l10n-manager-factory.js +15 -15
  129. package/src/l10n/l10n-manager.js +4 -4
  130. package/src/managers/auth-manager.js +38 -38
  131. package/src/managers/braze-instance.js +212 -212
  132. package/src/managers/device-manager.js +30 -30
  133. package/src/managers/network-manager.js +234 -235
  134. package/src/managers/server-config-manager.js +99 -83
  135. package/src/managers/session-manager.js +46 -50
  136. package/src/managers/storage-manager-factory.js +13 -13
  137. package/src/managers/storage-manager.js +182 -180
  138. package/src/managers/subscription-manager.js +12 -12
  139. package/src/managers/utils.js +4 -4
  140. package/src/models/backend-errors.js +5 -5
  141. package/src/models/braze-event.js +9 -9
  142. package/src/models/device.js +2 -2
  143. package/src/models/identifier.js +15 -15
  144. package/src/models/push-token.js +10 -10
  145. package/src/models/request-result.js +4 -4
  146. package/src/models/server-config.js +38 -34
  147. package/src/request-controller.js +228 -228
  148. package/src/triggers/models/custom-event-data.js +5 -5
  149. package/src/triggers/models/custom-event-property-data.js +6 -6
  150. package/src/triggers/models/filter-set.js +10 -10
  151. package/src/triggers/models/filter.js +66 -66
  152. package/src/triggers/models/in-app-message-click-data.js +10 -10
  153. package/src/triggers/models/purchase-data.js +2 -2
  154. package/src/triggers/models/purchase-property-data.js +6 -6
  155. package/src/triggers/models/push-click-data.js +5 -5
  156. package/src/triggers/models/trigger-condition.js +46 -46
  157. package/src/triggers/models/trigger-events.js +4 -4
  158. package/src/triggers/models/trigger.js +33 -33
  159. package/src/triggers/triggers-provider-factory.js +16 -16
  160. package/src/triggers/triggers-provider.js +156 -154
  161. package/src/ui/js/attach-css.js +7 -7
  162. package/src/ui/js/banner-css.js +11 -0
  163. package/src/ui/js/feed-css.js +4 -4
  164. package/src/ui/js/iam-css.js +4 -4
  165. package/src/ui/js/index.js +1 -0
  166. package/src/ui/js/load-font-awesome.js +8 -8
  167. package/src/util/base-device-parser.js +9 -9
  168. package/src/util/braze-actions.js +32 -32
  169. package/src/util/browser-detector.js +31 -30
  170. package/src/util/client-hints-parser.js +10 -10
  171. package/src/util/code-utils.js +5 -5
  172. package/src/util/component-utils.js +5 -5
  173. package/src/util/deprecation-utils.js +3 -3
  174. package/src/util/device-constants.js +1 -1
  175. package/src/util/dom-utils.js +13 -13
  176. package/src/util/html-display-utils.js +158 -0
  177. package/src/util/key-codes.js +1 -1
  178. package/src/util/net.js +21 -21
  179. package/src/util/request-header-utils.js +31 -30
  180. package/src/util/string-utils.js +2 -2
  181. package/src/util/user-agent-parser.js +18 -18
  182. package/src/util/validation-utils.js +89 -85
  183. package/src/util/window-utils.js +3 -3
@@ -0,0 +1,30 @@
1
+ export default class Banner {
2
+ constructor(t, i, s, h = !1, r = !1, e = -1) {
3
+ (this.id = t),
4
+ (this.placementId = i),
5
+ (this.html = s),
6
+ (this.tt = h),
7
+ (this.isControl = r),
8
+ (this.it = e),
9
+ (this.id = t),
10
+ (this.placementId = i),
11
+ (this.html = s),
12
+ (this.tt = h),
13
+ (this.isControl = r),
14
+ (this.it = e),
15
+ (this.st = !1);
16
+ }
17
+ ht() {
18
+ return this.isControl;
19
+ }
20
+ Bs() {
21
+ return {
22
+ id: this.id,
23
+ o: this.placementId,
24
+ html: this.html,
25
+ t: this.tt,
26
+ i: this.isControl,
27
+ u: this.it,
28
+ };
29
+ }
30
+ }
@@ -0,0 +1,57 @@
1
+ import {
2
+ attachHtmlToIframeWithNonce as m,
3
+ buildBrazeBridge as b,
4
+ } from "../../util/html-display-utils.js";
5
+ import r from "../../managers/braze-instance.js";
6
+ import N from "../../../shared-lib/logger.js";
7
+ import { BRAZE_MUST_BE_INITIALIZED_ERROR as p } from "../../common/constants.js";
8
+ import { logBannerClick } from "../log-banner-click.js";
9
+ export const BANNER_PLACEMENT_ID = "data-ab-banner-placement-id";
10
+ export const BANNER_HTML_CLASS = "ab-html-banner";
11
+ export const CONTROL_BANNER_HTML_CLASS = "ab-html-control-banner";
12
+ export function controlBannerToHtml(t) {
13
+ const n = document.createElement("div");
14
+ return (
15
+ (n.id = t.id),
16
+ (n.className = "ab-html-control-banner"),
17
+ n.setAttribute(BANNER_PLACEMENT_ID, t.placementId),
18
+ n
19
+ );
20
+ }
21
+ export function bannerToHtml(t, n) {
22
+ if (t.ht()) return controlBannerToHtml(t);
23
+ const o = document.createElement("iframe");
24
+ return (
25
+ (o.id = t.id),
26
+ n && o.setAttribute("nonce", n),
27
+ (o.className = "ab-html-banner"),
28
+ o.setAttribute(BANNER_PLACEMENT_ID, t.placementId),
29
+ o.setAttribute("title", "Banner"),
30
+ m(o, t.html, n),
31
+ (o.onload = () => {
32
+ const n = o.contentWindow,
33
+ e = n.document.getElementsByTagName("title");
34
+ e && e.length > 0 && o.setAttribute("title", e[0].textContent || "");
35
+ const a = Object.assign(
36
+ Object.assign(
37
+ {},
38
+ b(o, () => {
39
+ import("../../Feed/ui/show-feed.js").then((t) => {
40
+ r.nt() ? t.showFeed() : N.error(p);
41
+ });
42
+ }),
43
+ ),
44
+ {
45
+ logClick: function () {
46
+ logBannerClick(t, ...arguments);
47
+ },
48
+ closeMessage: function () {},
49
+ },
50
+ );
51
+ (n.brazeBridge = a),
52
+ (n.appboyBridge = a),
53
+ n.dispatchEvent(new CustomEvent("ab.BridgeReady"));
54
+ }),
55
+ o
56
+ );
57
+ }
@@ -0,0 +1,7 @@
1
+ import { removeSubscription } from "../../Core/remove-subscription.js";
2
+ import { SUBSCRIPTION_ID_DATA_ATTRIBUTE as f } from "../../common/constants.js";
3
+ export function destroyBannerHtml(o) {
4
+ const n = o.getAttribute(f);
5
+ null != n && removeSubscription(n),
6
+ o && o.parentNode && o.parentNode.removeChild(o);
7
+ }
@@ -0,0 +1,28 @@
1
+ import {
2
+ impressOnBottom as j,
3
+ impressOnTop as $,
4
+ detectImpression as g,
5
+ } from "../../common/detect-impression.js";
6
+ import { topIsInView as x, bottomIsInView as B } from "../../util/dom-utils.js";
7
+ import { logBannerImpressions } from "../log-banner-impressions.js";
8
+ import {
9
+ BANNER_HTML_CLASS as I,
10
+ BANNER_PLACEMENT_ID as k,
11
+ CONTROL_BANNER_HTML_CLASS as q,
12
+ } from "./banner-to-html.js";
13
+ export function detectBannerImpressions() {
14
+ const o = document.querySelectorAll(`.${I}, .${q}`),
15
+ t = [];
16
+ for (let n = 0; n < o.length; n++) {
17
+ const s = o[n],
18
+ i = s.getAttribute(k);
19
+ if (!i) continue;
20
+ const m = g.oo(s),
21
+ r = g.no(s);
22
+ if (m && r) continue;
23
+ const e = x(s),
24
+ c = B(s);
25
+ e && !m && $(s), c && !r && j(s), g.oo(s) && g.no(s) && t.push(i);
26
+ }
27
+ t.length > 0 && logBannerImpressions(t);
28
+ }
@@ -0,0 +1,13 @@
1
+ import { logger as N } from "../../shared-lib/index.js";
2
+ import r from "../managers/braze-instance.js";
3
+ import i from "./banner-provider-factory.js";
4
+ import { getBannerIfNotExpired as v } from "./get-banner.js";
5
+ export function getAllBanners() {
6
+ if (!r.rr()) return;
7
+ const n = {},
8
+ e = r.v();
9
+ if (e && !e.Us()) return N.info("Banners are not enabled."), n;
10
+ const o = i.m().vs();
11
+ for (const r in o) n[r] = v(o, r);
12
+ return n;
13
+ }
@@ -0,0 +1,19 @@
1
+ import { logger as N } from "../../shared-lib/index.js";
2
+ import r from "../managers/braze-instance.js";
3
+ import i from "./banner-provider-factory.js";
4
+ export function getBannerIfNotExpired(n, e) {
5
+ const r = n[e];
6
+ if (!r) return null;
7
+ const t = r.it,
8
+ a = new Date().valueOf();
9
+ return -1 !== t && 1e3 * t < a
10
+ ? (N.info(`Banner with ID: ${r.id} and placement ID: ${e} has expired.`),
11
+ null)
12
+ : r;
13
+ }
14
+ export function getBanner(n) {
15
+ if (!r.rr()) return;
16
+ const e = r.v();
17
+ if (e && !e.Us()) return N.info("Banners are not enabled."), null;
18
+ return getBannerIfNotExpired(i.m().vs(), n);
19
+ }
@@ -0,0 +1,7 @@
1
+ export { default as Banner } from "./banner.js";
2
+ export { getBanner } from "./get-banner.js";
3
+ export { insertBanner } from "./ui/insert-banner.js";
4
+ export { requestBannersRefresh } from "./request-banners-refresh.js";
5
+ export { getAllBanners } from "./get-all-banners.js";
6
+ export { subscribeToBannersUpdates } from "./subscribe-to-banners-updates.js";
7
+ export { logBannerImpressions } from "./log-banner-impressions.js";
@@ -0,0 +1,22 @@
1
+ import r from "../managers/braze-instance.js";
2
+ import Banner from "./banner.js";
3
+ import { logger as N } from "../../shared-lib/index.js";
4
+ import i from "./banner-provider-factory.js";
5
+ import { keys as y } from "../util/code-utils.js";
6
+ export function logBannerClick(n, o) {
7
+ if (!r.rr()) return;
8
+ if (!(n instanceof Banner))
9
+ return (
10
+ N.error("Banner argument to logBannerClick must be an Banner object."), !1
11
+ );
12
+ const e = i.m(),
13
+ t = e.vs();
14
+ return 0 === y(t).length
15
+ ? (N.info("Not logging banner click. No banners exist."), !1)
16
+ : t[n.placementId]
17
+ ? e.logClick(n, o)
18
+ : (N.info(
19
+ `Not logging banner click for ID ${n.placementId}. The placement ID did not correspond to any banner.`,
20
+ ),
21
+ !1);
22
+ }
@@ -0,0 +1,31 @@
1
+ import { logger as N, EventTypes as d } from "../../shared-lib/index.js";
2
+ import c from "../common/event-logger.js";
3
+ import r from "../managers/braze-instance.js";
4
+ import { keys as y } from "../util/code-utils.js";
5
+ import i from "./banner-provider-factory.js";
6
+ export function logBannerImpressions(o) {
7
+ if (!r.rr()) return;
8
+ if (!o || o.length <= 0) return !1;
9
+ const n = i.m(),
10
+ s = n.vs();
11
+ if (0 === y(s).length)
12
+ return N.info("Not logging banners impression. No banners exist."), !1;
13
+ const e = n.ks(),
14
+ t = [];
15
+ for (const r of o) {
16
+ const o = s[r];
17
+ o
18
+ ? e[o.placementId]
19
+ ? N.info(
20
+ `Not logging banners impression for ID ${r}. This ID was already logged this session.`,
21
+ )
22
+ : ((e[o.placementId] = !0), t.push(o.id))
23
+ : N.info(
24
+ `Not logging banners impression for ID ${r}. The placement ID did not correspond to any banner.`,
25
+ );
26
+ }
27
+ if (0 === t.length) return !1;
28
+ n.zs(e);
29
+ const a = { ids: t };
30
+ return c.ds(d.ro, a).ss;
31
+ }
@@ -0,0 +1,35 @@
1
+ import { logger as N } from "../../shared-lib/index.js";
2
+ import { BRAZE_MUST_BE_INITIALIZED_ERROR as p } from "../common/constants.js";
3
+ import r from "../managers/braze-instance.js";
4
+ import { isArray as w } from "../util/code-utils.js";
5
+ import { isValidBannerPlacementId as D } from "../util/validation-utils.js";
6
+ import i from "./banner-provider-factory.js";
7
+ export function requestBannersRefresh(e, n, o) {
8
+ if (!r.rr()) return void N.warn(p);
9
+ const t = r.v();
10
+ if (!t) return void N.warn(p);
11
+ if (!t.Us()) return void N.info("Banners are not enabled.");
12
+ if (!w(e) || 0 === e.length)
13
+ return void N.warn("placementIds should be a non-empty array.");
14
+ if (i.m().Is())
15
+ return void N.warn(
16
+ "Banners can be refreshed only once per session per user.",
17
+ );
18
+ const s = t.ee();
19
+ e.length > s &&
20
+ (N.warn(
21
+ `Number of placement IDs requested exceeds the max allowed. Trimming placementIds array from length ${e.length} to ${s} (max allowed).`,
22
+ ),
23
+ (e = e.slice(0, s))),
24
+ 0 !==
25
+ (e = e.filter(
26
+ (e) =>
27
+ !!D(e) ||
28
+ (N.warn(
29
+ `Placement ID should be a valid utf8 string with no whitespaces, filtering out: ${e}`,
30
+ ),
31
+ !1),
32
+ )).length &&
33
+ (N.info(`Requesting banners for placement IDs: ${JSON.stringify(e)}`),
34
+ i.m().$(e, n, o));
35
+ }
@@ -0,0 +1,23 @@
1
+ import r from "../managers/braze-instance.js";
2
+ import i from "./banner-provider-factory.js";
3
+ import { getAllBanners } from "./get-all-banners.js";
4
+ export function subscribeToBannersUpdates(n) {
5
+ if (!r.rr()) return;
6
+ const o = i.m();
7
+ if (o.qs()) {
8
+ const r = getAllBanners();
9
+ r && "function" == typeof n && n(r);
10
+ }
11
+ const t = o.Fs(n);
12
+ if (!o.Ts()) {
13
+ const n = r.nn();
14
+ if (n) {
15
+ const r = n.rn(() => {
16
+ const n = o.us();
17
+ n && n.length > 0 && o.$(n);
18
+ });
19
+ r && o.Rs(r);
20
+ }
21
+ }
22
+ return t;
23
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import N from "../../../shared-lib/logger.js";
2
+ import { SUBSCRIPTION_ID_DATA_ATTRIBUTE as f } from "../../common/constants.js";
3
+ import r, { OPTIONS as z } from "../../managers/braze-instance.js";
4
+ import { setupBannerUI as U } from "../../ui/js/banner-css.js";
5
+ import { addPassiveEventListener as J } from "../../util/dom-utils.js";
6
+ import { bannerToHtml as S } from "../display/banner-to-html.js";
7
+ import { destroyBannerHtml as A } from "../display/destroy-banner-html.js";
8
+ import { detectBannerImpressions as C } from "../display/detect-banner-impressions.js";
9
+ import { subscribeToBannersUpdates } from "../subscribe-to-banners-updates.js";
10
+ export function insertBanner(o, s) {
11
+ if (!r.rr()) return;
12
+ if (!o || !s) return void N.error("Banner or parentNode is not provided.");
13
+ if (!r.sr(z.er))
14
+ return void N.error(
15
+ "Banners are disabled. Use the 'allowUserSuppliedJavascript' option for braze.initialize to enable these messages.",
16
+ );
17
+ U();
18
+ const e = S(o, r.sr(z.ir)),
19
+ i = subscribeToBannersUpdates((i) => {
20
+ const t = i[o.placementId];
21
+ t ? s.replaceChildren(S(t, r.sr(z.ir))) : A(e);
22
+ });
23
+ i && e.setAttribute(f, i), s.replaceChildren(e), J(window, "scroll", C), C();
24
+ }
@@ -1,14 +1,14 @@
1
- import a from "./card-manager.js";
2
- import e from "../managers/braze-instance.js";
3
- const n = {
4
- t: !1,
5
- i: null,
6
- m: () => (n.o(), n.i || (n.i = new a(e.l())), n.i),
7
- o: () => {
8
- n.t || (e.g(n), (n.t = !0));
1
+ import M from "./card-manager.js";
2
+ import r from "../managers/braze-instance.js";
3
+ const _ = {
4
+ l: !1,
5
+ aa: null,
6
+ ea: () => (_.p(), _.aa || (_.aa = new M(r.j())), _.aa),
7
+ p: () => {
8
+ _.l || (r.h(_), (_.l = !0));
9
9
  },
10
10
  destroy: () => {
11
- (n.i = null), (n.t = !1);
11
+ (_.aa = null), (_.l = !1);
12
12
  },
13
13
  };
14
- export default n;
14
+ export default _;
@@ -1,73 +1,75 @@
1
1
  import { ControlCard } from "./models/index.js";
2
- import t from "../common/event-logger.js";
3
- import s from "../models/request-result.js";
4
- import { logger as r, EventTypes as i } from "../../shared-lib/index.js";
5
- import { STORAGE_KEYS as o } from "../managers/storage-manager.js";
6
- export default class a {
2
+ import c from "../common/event-logger.js";
3
+ import E from "../models/request-result.js";
4
+ import { logger as N, EventTypes as d } from "../../shared-lib/index.js";
5
+ import { STORAGE_KEYS as t } from "../managers/storage-manager.js";
6
+ export default class M {
7
7
  constructor(t) {
8
- (this.u = t), (this.u = t);
8
+ (this.C = t), (this.C = t);
9
9
  }
10
- h(n, e) {
11
- const l = new s();
12
- if ((n.p(), null == n.url || "" === n.url))
10
+ logClick(s, n) {
11
+ const r = new E();
12
+ if ((s.rt(), null == s.url || "" === s.url))
13
13
  return (
14
- r.info(`Card ${n.id} has no url. Not logging click to Braze servers.`),
15
- l
14
+ N.info(`Card ${s.id} has no url. Not logging click to Braze servers.`),
15
+ r
16
16
  );
17
- if (e && n.id && this.u) {
18
- const t = this.u.j(o.C.v) || {};
19
- (t[n.id] = !0), this.u.I(o.C.v, t);
17
+ if (n && s.id && this.C) {
18
+ const n = this.C.ps(t.bs.ot) || {};
19
+ (n[s.id] = !0), this.C.js(t.bs.ot, n);
20
20
  }
21
- const a = this.$([n]);
22
- if (null == a) return l;
23
- const u = e ? i.k : i.D;
24
- return t.q(u, a);
21
+ const i = this.et([s]);
22
+ if (null == i) return r;
23
+ const o = n ? d.lt : d.ut;
24
+ return c.ds(o, i);
25
25
  }
26
- B(n) {
27
- const e = new s();
28
- if (!n.N())
26
+ ct(s) {
27
+ const n = new E();
28
+ if (!s.ft())
29
29
  return (
30
- r.info(
31
- `Card ${n.id} refused this dismissal. Ignoring analytics event.`,
30
+ N.info(
31
+ `Card ${s.id} refused this dismissal. Ignoring analytics event.`,
32
32
  ),
33
- e
33
+ n
34
34
  );
35
- if (n.id && this.u) {
36
- const t = this.u.j(o.C.A) || {};
37
- (t[n.id] = !0), this.u.I(o.C.A, t);
35
+ if (s.id && this.C) {
36
+ const n = this.C.ps(t.bs.gt) || {};
37
+ (n[s.id] = !0), this.C.js(t.bs.gt, n);
38
38
  }
39
- const l = this.$([n]);
40
- return null == l ? e : t.q(i.F, l);
39
+ const r = this.et([s]);
40
+ return null == r ? n : c.ds(d.dt, r);
41
41
  }
42
- G(n, e) {
43
- const l = new s(!0),
44
- a = [],
45
- u = [];
46
- let c = {};
47
- this.u && (c = e ? this.u.j(o.C.H) || {} : this.u.j(o.C.J) || {});
48
- for (const t of n) {
49
- t.K()
50
- ? (t instanceof ControlCard ? u.push(t) : a.push(t),
51
- t.id && (c[t.id] = !0))
52
- : r.info(
42
+ jt(s, n) {
43
+ const r = new E(!0),
44
+ i = [],
45
+ o = [];
46
+ let e = {};
47
+ this.C && (e = n ? this.C.ps(t.bs.vt) || {} : this.C.ps(t.bs.Ct) || {});
48
+ for (const t of s) {
49
+ t.wt()
50
+ ? (t instanceof ControlCard ? o.push(t) : i.push(t),
51
+ t.id && (e[t.id] = !0))
52
+ : N.info(
53
53
  `Card ${t.id} logged an impression too recently. Ignoring analytics event.`,
54
54
  );
55
55
  }
56
- const h = this.$(a),
57
- m = this.$(u);
58
- if (null == h && null == m) return (l.L = !1), l;
59
- if ((this.u && (e ? this.u.I(o.C.H, c) : this.u.I(o.C.J, c)), null != h)) {
60
- const s = e ? i.M : i.O,
61
- n = t.q(s, h);
62
- l.P(n);
56
+ const l = this.et(i),
57
+ a = this.et(o);
58
+ if (null == l && null == a) return (r.ss = !1), r;
59
+ if (
60
+ (this.C && (n ? this.C.js(t.bs.vt, e) : this.C.js(t.bs.Ct, e)), null != l)
61
+ ) {
62
+ const t = n ? d.xt : d.yt,
63
+ s = c.ds(t, l);
64
+ r.It(s);
63
65
  }
64
- if (null != m && e) {
65
- const s = t.q(i.R, m);
66
- l.P(s);
66
+ if (null != a && n) {
67
+ const t = c.ds(d.$t, a);
68
+ r.It(t);
67
69
  }
68
- return l;
70
+ return r;
69
71
  }
70
- $(t) {
72
+ et(t) {
71
73
  let s,
72
74
  n = null;
73
75
  for (let r = 0; r < t.length; r++)