@braze/web-sdk 6.5.0 → 6.7.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 (153) hide show
  1. package/index.d.ts +258 -5
  2. package/package.json +1 -1
  3. package/shared-lib/event-types.js +21 -20
  4. package/shared-lib/guid.js +3 -3
  5. package/shared-lib/indexed-db-adapter.js +70 -70
  6. package/shared-lib/logger.js +7 -7
  7. package/shared-lib/supported-options.js +26 -25
  8. package/src/Banner/banner-factory.js +11 -1
  9. package/src/Banner/banner-provider.js +244 -120
  10. package/src/Banner/banner.js +14 -12
  11. package/src/Banner/display/banner-to-html.js +23 -16
  12. package/src/Banner/display/detect-banner-impressions.js +13 -13
  13. package/src/Banner/get-all-banners.js +5 -5
  14. package/src/Banner/get-banner.js +4 -4
  15. package/src/Banner/log-banner-click.js +4 -4
  16. package/src/Banner/log-banner-dismissal.js +23 -0
  17. package/src/Banner/log-banner-impressions.js +7 -7
  18. package/src/Banner/request-banners-refresh.js +12 -16
  19. package/src/Banner/subscribe-to-banners-updates.js +6 -6
  20. package/src/Banner/ui/insert-banner.js +12 -12
  21. package/src/Card/card-manager-factory.js +5 -5
  22. package/src/Card/card-manager.js +33 -33
  23. package/src/Card/constants.js +1 -1
  24. package/src/Card/display/card-display.js +11 -11
  25. package/src/Card/log-card-dismissal.js +3 -3
  26. package/src/Card/log-content-card-click.js +3 -3
  27. package/src/Card/log-content-card-impressions.js +6 -6
  28. package/src/Card/models/captioned-image.js +21 -21
  29. package/src/Card/models/card.js +73 -73
  30. package/src/Card/models/classic-card.js +21 -21
  31. package/src/Card/models/control-card.js +11 -11
  32. package/src/Card/models/image-only.js +18 -18
  33. package/src/Card/util/card-factory.js +41 -41
  34. package/src/ContentCards/content-cards-provider-factory.js +12 -12
  35. package/src/ContentCards/content-cards-provider.js +151 -151
  36. package/src/ContentCards/content-cards.js +5 -5
  37. package/src/ContentCards/get-cached-content-cards.js +2 -2
  38. package/src/ContentCards/request-content-cards-refresh.js +2 -2
  39. package/src/ContentCards/subscribe-to-content-cards-updates.js +6 -6
  40. package/src/ContentCards/ui/show-content-cards.js +10 -10
  41. package/src/Core/add-sdk-metadata.js +2 -2
  42. package/src/Core/change-user.js +6 -6
  43. package/src/Core/disable-sdk.js +9 -8
  44. package/src/Core/enable-sdk.js +5 -5
  45. package/src/Core/get-user.js +1 -1
  46. package/src/Core/handle-braze-action.js +3 -3
  47. package/src/Core/is-disabled.js +2 -2
  48. package/src/Core/log-custom-event.js +8 -8
  49. package/src/Core/log-purchase.js +5 -5
  50. package/src/Core/open-session.js +7 -7
  51. package/src/Core/set-sdk-authentication-signature.js +3 -3
  52. package/src/Core/subscribe-to-sdk-authentication-failures.js +1 -1
  53. package/src/Core/wipe-data.js +6 -6
  54. package/src/DUST/dust-provider-factory.js +11 -11
  55. package/src/DUST/dust-provider.js +255 -255
  56. package/src/DUST/dust-shared-worker-impl.js +100 -100
  57. package/src/DUST/dust-worker-bridge.js +27 -27
  58. package/src/DUST/subscribe-to-dust.js +9 -9
  59. package/src/FeatureFlags/feature-flag-factory.js +8 -8
  60. package/src/FeatureFlags/feature-flag.js +9 -9
  61. package/src/FeatureFlags/feature-flags-provider.js +86 -86
  62. package/src/FeatureFlags/get-all-feature-flags.js +2 -2
  63. package/src/FeatureFlags/get-feature-flag.js +2 -2
  64. package/src/FeatureFlags/log-feature-flag-impression.js +5 -5
  65. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +2 -2
  66. package/src/InAppMessage/constants.js +83 -2
  67. package/src/InAppMessage/defer-in-app-message.js +1 -1
  68. package/src/InAppMessage/display/html-message-display-utils.js +15 -15
  69. package/src/InAppMessage/display/html-message-to-html.js +36 -37
  70. package/src/InAppMessage/display/in-app-message-to-html.js +44 -44
  71. package/src/InAppMessage/display/modal-utils.js +10 -14
  72. package/src/InAppMessage/in-app-message-factory.js +16 -20
  73. package/src/InAppMessage/in-app-message-manager.js +116 -117
  74. package/src/InAppMessage/log-in-app-message-button-click.js +8 -8
  75. package/src/InAppMessage/log-in-app-message-click.js +7 -7
  76. package/src/InAppMessage/log-in-app-message-html-click.js +8 -8
  77. package/src/InAppMessage/log-in-app-message-impression.js +5 -5
  78. package/src/InAppMessage/models/control-message.js +4 -4
  79. package/src/InAppMessage/models/full-screen-message.js +56 -49
  80. package/src/InAppMessage/models/html-message.js +31 -27
  81. package/src/InAppMessage/models/in-app-message-button.js +12 -12
  82. package/src/InAppMessage/models/in-app-message.js +202 -256
  83. package/src/InAppMessage/models/modal-message.js +55 -49
  84. package/src/InAppMessage/models/slide-up-message.js +57 -51
  85. package/src/InAppMessage/models/templated-in-app-message.js +10 -10
  86. package/src/InAppMessage/shared-types.js +1 -0
  87. package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
  88. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +5 -5
  89. package/src/InAppMessage/ui/remove-all-visible-in-app-messages.js +3 -3
  90. package/src/InAppMessage/ui/show-in-app-message.js +43 -41
  91. package/src/Push/is-push-blocked.js +2 -2
  92. package/src/Push/is-push-permission-granted.js +2 -2
  93. package/src/Push/is-push-supported.js +2 -2
  94. package/src/Push/push-manager-factory.js +9 -9
  95. package/src/Push/push-manager.js +15 -15
  96. package/src/Push/utils/push-utils.js +15 -15
  97. package/src/User/user-manager.js +14 -14
  98. package/src/User/user.js +60 -59
  99. package/src/common/base-provider.js +1 -1
  100. package/src/common/constants.js +2 -1
  101. package/src/common/content-cards-display.js +38 -38
  102. package/src/common/event-logger.js +8 -8
  103. package/src/l10n/l10n-manager-factory.js +9 -9
  104. package/src/l10n/l10n-manager.js +2 -2
  105. package/src/managers/auth-manager.js +31 -31
  106. package/src/managers/braze-instance.js +197 -182
  107. package/src/managers/constants.js +1 -0
  108. package/src/managers/device-manager.js +25 -25
  109. package/src/managers/network-manager.js +155 -155
  110. package/src/managers/server-config-manager.js +106 -93
  111. package/src/managers/session-manager.js +37 -33
  112. package/src/managers/storage-manager-factory.js +33 -28
  113. package/src/managers/storage-manager.js +194 -175
  114. package/src/managers/subscription-manager.js +13 -13
  115. package/src/managers/utils.js +1 -1
  116. package/src/models/backend-errors.js +5 -5
  117. package/src/models/braze-event.js +13 -13
  118. package/src/models/device.js +3 -3
  119. package/src/models/identifier.js +12 -12
  120. package/src/models/push-token.js +9 -9
  121. package/src/models/request-result.js +4 -4
  122. package/src/models/server-config.js +29 -38
  123. package/src/request-controller.js +159 -163
  124. package/src/triggers/models/custom-event-data.js +7 -7
  125. package/src/triggers/models/custom-event-property-data.js +10 -10
  126. package/src/triggers/models/filter-set.js +12 -12
  127. package/src/triggers/models/filter.js +66 -66
  128. package/src/triggers/models/in-app-message-click-data.js +13 -13
  129. package/src/triggers/models/purchase-data.js +4 -4
  130. package/src/triggers/models/purchase-property-data.js +10 -10
  131. package/src/triggers/models/push-click-data.js +8 -8
  132. package/src/triggers/models/trigger-condition.js +58 -58
  133. package/src/triggers/models/trigger-events.js +3 -3
  134. package/src/triggers/models/trigger.js +44 -44
  135. package/src/triggers/triggers-provider-factory.js +5 -5
  136. package/src/triggers/triggers-provider.js +70 -70
  137. package/src/ui/js/attach-css.js +3 -3
  138. package/src/ui/js/feed-css.js +2 -2
  139. package/src/ui/js/iam-css.js +2 -2
  140. package/src/ui/js/load-font-awesome.js +2 -2
  141. package/src/util/base-device-parser.js +9 -9
  142. package/src/util/braze-actions.js +3 -3
  143. package/src/util/browser-detector.js +37 -37
  144. package/src/util/client-hints-parser.js +9 -9
  145. package/src/util/component-utils.js +3 -3
  146. package/src/util/dom-utils.js +2 -2
  147. package/src/util/html-display-utils.js +11 -11
  148. package/src/util/key-codes.js +1 -1
  149. package/src/util/net.js +8 -8
  150. package/src/util/request-header-utils.js +25 -25
  151. package/src/util/user-agent-parser.js +20 -20
  152. package/src/util/validation-utils.js +21 -21
  153. package/src/util/window-utils.js +3 -3
@@ -8,205 +8,329 @@ import h from "../util/request-header-utils.js";
8
8
  import l from "../util/net.js";
9
9
  import { randomInclusive as a } from "../util/math.js";
10
10
  import {
11
- REQUEST_BACKOFF_MAX_SLEEP_MS_DEFAULT as u,
12
- REQUEST_BACKOFF_MIN_SLEEP_MS_DEFAULT as c,
13
- REQUEST_BACKOFF_SCALE_FACTOR_DEFAULT as d,
11
+ DISMISSALS_CACHE_SIZE_DEFAULT as u,
12
+ REQUEST_BACKOFF_MAX_SLEEP_MS_DEFAULT as c,
13
+ REQUEST_BACKOFF_MIN_SLEEP_MS_DEFAULT as d,
14
+ REQUEST_BACKOFF_SCALE_FACTOR_DEFAULT as m,
14
15
  } from "../common/constants.js";
15
- import m from "../managers/subscription-manager.js";
16
+ import f from "../managers/subscription-manager.js";
16
17
  import r from "../managers/braze-instance.js";
17
18
  import v from "../common/event-logger.js";
18
- import { EventTypes as f } from "../../shared-lib/event-types.js";
19
+ import { EventTypes as p } from "../../shared-lib/event-types.js";
20
+ import { isArray as g } from "../util/code-utils.js";
19
21
  export default class e extends t {
20
- constructor(t, s, i, n) {
22
+ constructor(t, s, i, e) {
21
23
  super(),
22
24
  (this.h = t),
23
- (this.j = s),
24
- (this.B = i),
25
- (this.C = n),
25
+ (this.B = s),
26
+ (this.C = i),
27
+ (this.j = e),
26
28
  (this.banners = {}),
27
29
  (this.h = t),
28
- (this.j = s),
29
- (this.B = i),
30
- (this.C = n),
31
- (this.S = 10),
30
+ (this.B = s),
31
+ (this.C = i),
32
+ (this.j = e),
33
+ (this.D = 10),
34
+ (this.N = null),
35
+ (this.F = null),
36
+ (this.R = new f()),
37
+ r.S(this.R),
32
38
  (this.T = null),
33
- (this.I = null),
34
- (this.R = new m()),
35
- r.q(this.R),
36
- (this.D = null),
37
- (this.F = null);
38
- }
39
- N(t) {
40
- if (this.k() && null != t && t.banners) {
39
+ (this.q = null);
40
+ }
41
+ I(t) {
42
+ if (this.P() && (this._(t), null != t && t.banners)) {
43
+ const s = t.request_time,
44
+ i = "number" != typeof s || isNaN(s) ? null : s,
45
+ e = this.k(),
46
+ r = this.L(),
47
+ o = this.$();
41
48
  this.banners = {};
42
- const s = t.banners;
43
- for (const t in s) {
44
- const i = s[t];
45
- let e = null;
46
- null != i && null != i.banner && (e = n(i.banner)),
47
- e && (this.banners[t] = e);
49
+ const h = t.banners;
50
+ for (const t in h) {
51
+ const s = this.K(t, i, o),
52
+ l = h[t];
53
+ let a = null;
54
+ if (
55
+ (null != l && null != l.banner && (a = l.banner),
56
+ this.U(t, a, i, s, e, r))
57
+ ) {
58
+ if (s) {
59
+ const s = e[t];
60
+ s && (this.banners[t] = s);
61
+ }
62
+ continue;
63
+ }
64
+ let u = null;
65
+ null != a && (u = n(a)), u && (this.banners[t] = u);
48
66
  }
49
- this.U(), this.R.L(this.banners);
67
+ this.W(), this.R.A(this.banners);
50
68
  }
51
69
  }
52
- M(t, s, i, n = !0) {
53
- var e;
70
+ U(t, s, i, e, n, r) {
71
+ return !this.M(t, s, n) && null != i && (!!e || this.X(s, r, i));
72
+ }
73
+ K(t, s, i) {
74
+ if (null == s) return !1;
75
+ const e = i[t];
76
+ return "number" == typeof e && !isNaN(e) && s < e;
77
+ }
78
+ M(t, s, i) {
79
+ if (!s) return !1;
80
+ const e = s.stable_key;
81
+ if ("string" != typeof e || 0 === e.length) return !1;
82
+ const n = i[t],
83
+ r = null == n ? void 0 : n.G;
84
+ return "string" == typeof r && 0 !== r.length && r !== e;
85
+ }
86
+ X(t, s, i) {
87
+ if (!t) return !1;
88
+ const e = t.stable_key;
89
+ if ("string" != typeof e || 0 === e.length) return !1;
90
+ for (const t of s) {
91
+ if (t.stable_key !== e) continue;
92
+ const s = t.dismissal_time;
93
+ if ("number" == typeof s && !isNaN(s) && s >= i) return !0;
94
+ }
95
+ return !1;
96
+ }
97
+ _(t) {
98
+ var s;
99
+ const i =
100
+ null === (s = null == t ? void 0 : t.dismissals) || void 0 === s
101
+ ? void 0
102
+ : s.acknowledged;
103
+ if (!i || !g(i) || 0 === i.length) return;
104
+ const e = this.L();
105
+ if (0 === e.length) return;
106
+ const n = {};
107
+ for (const t of i)
108
+ t.banner_id &&
109
+ t.dismissal_time &&
110
+ (n[this.H(t.banner_id, t.dismissal_time)] = !0);
111
+ const r = e.filter((t) => !n[this.H(t.banner_id, t.dismissal_time)]);
112
+ r.length !== e.length && this.J(r);
113
+ }
114
+ H(t, s) {
115
+ return `${t}:${s}`;
116
+ }
117
+ O(t, s, i, e = !0) {
118
+ var n;
54
119
  const r = () => {
55
120
  "function" == typeof i && i();
56
121
  };
57
- if (!this.k())
122
+ if (!this.P())
58
123
  return void (
59
- null === (e = this.h) ||
60
- void 0 === e ||
61
- e.P(() => {
62
- this.M(t, s, i);
124
+ null === (n = this.h) ||
125
+ void 0 === n ||
126
+ n.V(() => {
127
+ this.O(t, s, i);
63
128
  })
64
129
  );
65
- const o = this.j;
130
+ const o = this.B;
66
131
  if (!o) return void r();
67
- n && this.X();
68
- const m = o.$({}, !0),
69
- v = [];
70
- for (const s of t) v.push({ id: s });
71
- m.placements = v;
72
- const f = o.A(m, h.H.G);
73
- let p = !1;
74
- o.J(
75
- m,
76
- (n = -1) => {
77
- const e = this.j;
78
- if (!e) return void r();
132
+ e && this.Y();
133
+ const u = o.Z({}, !0);
134
+ u.time_ms = new Date().valueOf();
135
+ const f = [];
136
+ for (const s of t) f.push({ id: s });
137
+ u.placements = f;
138
+ const v = this.L().map((t) => ({
139
+ banner_id: t.banner_id,
140
+ dismissal_time: t.dismissal_time,
141
+ }));
142
+ u.pending_dismissals = v;
143
+ const p = o.tt(u, h.it.st);
144
+ let g = !1;
145
+ o.et(
146
+ u,
147
+ (e = -1) => {
148
+ const n = this.B;
149
+ if (!n) return void r();
79
150
  const o = new Date().valueOf();
80
- h.K(this.B, h.H.G, o),
81
- -1 !== n && f.push(["X-Braze-Req-Tokens-Remaining", n.toString()]),
82
- l.O({
83
- url: `${e.V()}/banners/sync`,
84
- headers: f,
85
- data: m,
86
- W: (t) => {
87
- if (!e.Y(m, t, f)) return (p = !0), void r();
88
- e.Z(), this.N(t), (p = !1), "function" == typeof s && s();
151
+ h.nt(this.C, h.it.st, o),
152
+ -1 !== e && p.push(["X-Braze-Req-Tokens-Remaining", e.toString()]);
153
+ const f = u.time_ms;
154
+ null == f || "number" != typeof f || isNaN(f) || this.rt(t, f),
155
+ l.ot({
156
+ url: `${n.ht()}/banners/sync`,
157
+ headers: p,
158
+ data: u,
159
+ lt: (t) => {
160
+ if (!n.ut(u, t, p)) return (g = !0), void r();
161
+ n.ct(), this.I(t), (g = !1), "function" == typeof s && s();
89
162
  },
90
163
  error: (t) => {
91
- e._(t, "retrieving banners"), (p = !0), r();
164
+ n.dt(t, "retrieving banners"), (g = !0), r();
92
165
  },
93
- tt: (n, r) => {
94
- var o, l, m;
95
- let v;
96
- if (((this.F = t), p)) {
166
+ ft: (e, r) => {
167
+ var o, l, u;
168
+ let f;
169
+ if (((this.q = t), g)) {
97
170
  const t =
98
- (null === (o = this.h) || void 0 === o ? void 0 : o.st()) ||
99
- c,
100
- s =
101
- (null === (l = this.h) || void 0 === l ? void 0 : l.it()) ||
171
+ (null === (o = this.h) || void 0 === o ? void 0 : o.vt()) ||
102
172
  d,
173
+ s =
174
+ (null === (l = this.h) || void 0 === l ? void 0 : l.gt()) ||
175
+ m,
103
176
  i =
104
- (null === (m = this.h) || void 0 === m ? void 0 : m.nt()) ||
105
- u;
106
- let n = this.T;
107
- (null == n || n < t) && (n = t), (v = Math.min(i, a(t, n * s)));
177
+ (null === (u = this.h) || void 0 === u ? void 0 : u.bt()) ||
178
+ c;
179
+ let e = this.N;
180
+ (null == e || e < t) && (e = t), (f = Math.min(i, a(t, e * s)));
108
181
  }
109
- e.et(
182
+ n.yt(
110
183
  r,
111
184
  () => {
112
- this.M(t, s, i, !1);
185
+ this.O(t, s, i, !1);
113
186
  },
114
- h.H.G,
115
- (t) => this.rt(t),
116
- () => this.X(),
117
- v,
187
+ h.it.st,
188
+ (t) => this.Bt(t),
189
+ () => this.Y(),
190
+ f,
118
191
  );
119
192
  },
120
193
  });
121
194
  },
122
- h.H.G,
195
+ h.it.st,
123
196
  i,
124
197
  );
125
198
  }
126
- ot() {
127
- return this.F;
199
+ Ct() {
200
+ return this.q;
128
201
  }
129
- ht(t, s) {
202
+ jt(t, s) {
130
203
  const i = { id: t.id };
131
204
  s && (i.bid = s);
132
- return v.lt(f.ut, i).W;
205
+ return v.wt(p.Dt, i).lt;
206
+ }
207
+ Nt(t) {
208
+ if (!t.G) return !1;
209
+ const s = this.L();
210
+ if (s.some((s) => s.banner_id === t.id && s.stable_key === t.G)) return !1;
211
+ const i = { id: t.id },
212
+ e = this.k(),
213
+ n = e[t.placementId];
214
+ n &&
215
+ n.G === t.G &&
216
+ (delete e[t.placementId],
217
+ (this.banners = e),
218
+ this.W(),
219
+ this.R.A(this.banners)),
220
+ s.push({
221
+ banner_id: t.id,
222
+ dismissal_time: new Date().valueOf(),
223
+ stable_key: t.G,
224
+ }),
225
+ this.J(s);
226
+ return v.wt(p.Ft, i).lt;
133
227
  }
134
- X() {
135
- null != this.I && (clearTimeout(this.I), (this.I = null));
228
+ Y() {
229
+ null != this.F && (clearTimeout(this.F), (this.F = null));
136
230
  }
137
- rt(t) {
138
- this.X(), (this.I = t);
231
+ Bt(t) {
232
+ this.Y(), (this.F = t);
139
233
  }
140
- ct() {
234
+ k() {
141
235
  let t = {};
142
- this.B && (t = this.B.dt(s.ft.vt));
236
+ this.C && (t = this.C.Rt(s.Tt.St));
143
237
  const i = {};
144
238
  for (const s in t) {
145
- let n = null;
146
- null != t[s] && (n = o(t[s])), n && (i[n.placementId] = n);
239
+ let e = null;
240
+ null != t[s] && (e = o(t[s])), e && (i[e.placementId] = e);
147
241
  }
148
242
  return i;
149
243
  }
150
- U() {
244
+ W() {
151
245
  var t;
152
- if (!this.B) return;
246
+ if (!this.C) return;
153
247
  const i = {};
154
248
  for (const s in this.banners) {
155
- const n =
156
- (null === (t = this.banners[s]) || void 0 === t ? void 0 : t.gt()) ||
249
+ const e =
250
+ (null === (t = this.banners[s]) || void 0 === t ? void 0 : t.qt()) ||
157
251
  null;
158
- i[s] = n;
252
+ i[s] = e;
159
253
  }
160
- this.B.bt(s.ft.vt, i), this.jt();
254
+ this.C.It(s.Tt.St, i), this.Pt();
161
255
  }
162
- jt() {
256
+ Pt() {
163
257
  var t, i;
164
- null === (t = this.B) ||
258
+ null === (t = this.C) ||
165
259
  void 0 === t ||
166
- t.bt(s.ft.Bt, null === (i = this.C) || void 0 === i ? void 0 : i.yt());
260
+ t.It(s.Tt._t, null === (i = this.j) || void 0 === i ? void 0 : i.kt());
167
261
  }
168
- Ct() {
262
+ Et() {
169
263
  var t;
170
264
  return (
171
- (null === (t = this.B) || void 0 === t ? void 0 : t.dt(s.ft.Bt)) || null
265
+ (null === (t = this.C) || void 0 === t ? void 0 : t.Rt(s.Tt._t)) || null
172
266
  );
173
267
  }
174
- St() {
175
- return this.D;
268
+ Lt() {
269
+ return this.T;
176
270
  }
177
- wt(t) {
178
- this.D = t;
271
+ $t(t) {
272
+ this.T = t;
179
273
  }
180
- Tt() {
274
+ xt() {
181
275
  var t;
182
- const s = null === (t = this.C) || void 0 === t ? void 0 : t.yt(),
183
- i = this.Ct();
276
+ const s = null === (t = this.j) || void 0 === t ? void 0 : t.kt(),
277
+ i = this.Et();
184
278
  return null == i || s === i;
185
279
  }
186
- It(t) {
187
- return this.R.Rt(t);
280
+ zt(t) {
281
+ return this.R.Kt(t);
282
+ }
283
+ Ut() {
284
+ var t;
285
+ return (
286
+ (null === (t = this.C) || void 0 === t ? void 0 : t.Rt(s.Tt.Wt)) || {}
287
+ );
288
+ }
289
+ At(t) {
290
+ this.C && this.C.It(s.Tt.Wt, t);
188
291
  }
189
- qt() {
292
+ L() {
190
293
  var t;
191
294
  return (
192
- (null === (t = this.B) || void 0 === t ? void 0 : t.dt(s.ft.Dt)) || {}
295
+ (null === (t = this.C) || void 0 === t ? void 0 : t.Rt(s.Tt.Mt)) || []
193
296
  );
194
297
  }
195
- Ft(t) {
196
- this.B && this.B.bt(s.ft.Dt, t);
298
+ J(t) {
299
+ var i;
300
+ if (!this.C) return;
301
+ const e = null === (i = this.h) || void 0 === i ? void 0 : i.Xt(),
302
+ n = null != e ? e : u,
303
+ r = t.length <= n ? t : t.slice(-n);
304
+ this.C.It(s.Tt.Mt, r);
305
+ }
306
+ $() {
307
+ var t;
308
+ return (
309
+ (null === (t = this.C) || void 0 === t ? void 0 : t.Rt(s.Tt.Gt)) || {}
310
+ );
311
+ }
312
+ rt(t, i) {
313
+ if (!this.C) return;
314
+ const e = this.$();
315
+ for (const s of t) e[s] = i;
316
+ this.C.It(s.Tt.Gt, e);
197
317
  }
198
318
  changeUser() {
199
- this.Nt(), this.X();
319
+ this.Ht(), this.Y();
200
320
  }
201
321
  clearData() {
202
- this.X();
322
+ this.Y();
203
323
  }
204
- k() {
205
- return !!this.h && (!!this.h.kt() || (0 !== this.h.xt() && this.Nt(), !1));
324
+ P() {
325
+ return !!this.h && (!!this.h.Jt() || (0 !== this.h.Ot() && this.Ht(), !1));
206
326
  }
207
- Nt() {
327
+ Ht() {
208
328
  (this.banners = {}),
209
- this.B && (this.B.zt(s.ft.vt), this.B.zt(s.ft.Dt)),
210
- this.R.L({});
329
+ this.C &&
330
+ (this.C.Qt(s.Tt.St),
331
+ this.C.Qt(s.Tt.Wt),
332
+ this.C.Qt(s.Tt.Mt),
333
+ this.C.Qt(s.Tt.Gt)),
334
+ this.R.A({});
211
335
  }
212
336
  }
@@ -1,33 +1,35 @@
1
- import { PropertiesBase as p } from "../common/properties-base.js";
2
- export default class Banner extends p {
3
- constructor(t, s, i, h = !1, r = !1, e = -1, o = {}) {
1
+ import { PropertiesBase as x } from "../common/properties-base.js";
2
+ export default class Banner extends x {
3
+ constructor(t, s, i, h = !1, r = !1, e = -1, o = {}, n = null) {
4
4
  super(o),
5
5
  (this.id = t),
6
6
  (this.placementId = s),
7
7
  (this.html = i),
8
- (this.At = h),
8
+ (this.Vt = h),
9
9
  (this.isControl = r),
10
- (this.Et = e),
10
+ (this.Yt = e),
11
+ (this.G = n),
11
12
  (this.id = t),
12
13
  (this.placementId = s),
13
14
  (this.html = i),
14
- (this.At = h),
15
+ (this.Vt = h),
15
16
  (this.isControl = r),
16
- (this.Et = e),
17
- (this.Gt = !1);
17
+ (this.Yt = e),
18
+ (this.Zt = !1);
18
19
  }
19
- Ht() {
20
+ ts() {
20
21
  return this.isControl;
21
22
  }
22
- gt() {
23
+ qt() {
23
24
  return {
24
25
  id: this.id,
25
26
  pid: this.placementId,
26
27
  html: this.html,
27
- its: this.At,
28
+ its: this.Vt,
28
29
  ic: this.isControl,
29
- eat: this.Et,
30
+ eat: this.Yt,
30
31
  pr: this.properties,
32
+ sk: this.G,
31
33
  };
32
34
  }
33
35
  }
@@ -4,6 +4,8 @@ import {
4
4
  } from "../../util/html-display-utils.js";
5
5
  import E from "../../../shared-lib/logger.js";
6
6
  import { logBannerClick } from "../log-banner-click.js";
7
+ import { logBannerDismissal as _ } from "../log-banner-dismissal.js";
8
+ import { destroyBannerHtml as A } from "./destroy-banner-html.js";
7
9
  export const BANNER_PLACEMENT_ID = "data-ab-banner-placement-id";
8
10
  export const BANNER_HTML_CLASS = "ab-html-banner";
9
11
  export const CONTROL_BANNER_HTML_CLASS = "ab-html-control-banner";
@@ -17,34 +19,39 @@ export function controlBannerToHtml(n) {
17
19
  );
18
20
  }
19
21
  export function bannerToHtml(n, t) {
20
- if (n.Ht()) return controlBannerToHtml(n);
21
- const e = document.createElement("iframe");
22
+ if (n.ts()) return controlBannerToHtml(n);
23
+ const o = document.createElement("iframe");
22
24
  return (
23
- (e.id = n.id),
24
- t && e.setAttribute("nonce", t),
25
- (e.className = "ab-html-banner"),
26
- e.setAttribute(BANNER_PLACEMENT_ID, n.placementId),
27
- e.setAttribute("title", "Banner"),
28
- b(e, n.html, t),
29
- (e.onload = () => {
30
- const t = e.contentWindow,
31
- o = t.document.getElementsByTagName("title");
32
- o && o.length > 0 && e.setAttribute("title", o[0].textContent || "");
33
- const r = Object.assign(Object.assign({}, N(e)), {
25
+ (o.id = n.id),
26
+ t && o.setAttribute("nonce", t),
27
+ (o.className = "ab-html-banner"),
28
+ o.setAttribute(BANNER_PLACEMENT_ID, n.placementId),
29
+ o.setAttribute("title", "Banner"),
30
+ b(o, n.html, t),
31
+ (o.onload = () => {
32
+ const t = o.contentWindow,
33
+ e = t.document.getElementsByTagName("title");
34
+ e && e.length > 0 && o.setAttribute("title", e[0].textContent || "");
35
+ const r = Object.assign(Object.assign({}, N(o)), {
34
36
  logClick: function () {
35
37
  logBannerClick(n, ...arguments);
36
38
  },
37
- closeMessage: function () {},
39
+ closeMessage: function () {
40
+ !(function (n) {
41
+ const t = document.getElementById(n.id);
42
+ t && A(t), _(n);
43
+ })(n);
44
+ },
38
45
  setBannerHeight: (n) => {
39
46
  isNaN(n) || !isFinite(n) || n < 0
40
47
  ? E.warn(`Invalid banner height: ${n}`)
41
- : (e.style.height = `${n}px`);
48
+ : (o.style.height = `${n}px`);
42
49
  },
43
50
  });
44
51
  (t.brazeBridge = r),
45
52
  (t.appboyBridge = r),
46
53
  t.dispatchEvent(new CustomEvent("ab.BridgeReady"));
47
54
  }),
48
- e
55
+ o
49
56
  );
50
57
  }
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  impressOnBottom as $,
3
- impressOnTop as g,
4
- detectImpression as x,
3
+ impressOnTop as B,
4
+ detectImpression as I,
5
5
  } from "../../common/detect-impression.js";
6
- import { topIsInView as B, bottomIsInView as I } from "../../util/dom-utils.js";
6
+ import { topIsInView as k, bottomIsInView as q } from "../../util/dom-utils.js";
7
7
  import { logBannerImpressions } from "../log-banner-impressions.js";
8
8
  import {
9
- BANNER_HTML_CLASS as k,
10
- BANNER_PLACEMENT_ID as q,
11
- CONTROL_BANNER_HTML_CLASS as w,
9
+ BANNER_HTML_CLASS as w,
10
+ BANNER_PLACEMENT_ID as y,
11
+ CONTROL_BANNER_HTML_CLASS as z,
12
12
  } from "./banner-to-html.js";
13
13
  export function detectBannerImpressions() {
14
- const o = document.querySelectorAll(`.${k}, .${w}`),
14
+ const o = document.querySelectorAll(`.${w}, .${z}`),
15
15
  t = [];
16
16
  for (let n = 0; n < o.length; n++) {
17
17
  const s = o[n],
18
- i = s.getAttribute(q);
18
+ i = s.getAttribute(y);
19
19
  if (!i) continue;
20
- const m = x.oo(s),
21
- r = x.no(s);
20
+ const m = I.oo(s),
21
+ r = I.no(s);
22
22
  if (m && r) continue;
23
- const e = B(s),
24
- c = I(s);
25
- e && !m && g(s), c && !r && $(s), x.oo(s) && x.no(s) && t.push(i);
23
+ const e = k(s),
24
+ c = q(s);
25
+ e && !m && B(s), c && !r && $(s), I.oo(s) && I.no(s) && t.push(i);
26
26
  }
27
27
  t.length > 0 && logBannerImpressions(t);
28
28
  }
@@ -2,17 +2,17 @@ import { logger as E } from "../../shared-lib/index.js";
2
2
  import { BannerStrings as j } from "./constants.js";
3
3
  import r from "../managers/braze-instance.js";
4
4
  import i from "./banner-provider-factory.js";
5
- import { getBannerIfNotExpired as y } from "./get-banner.js";
5
+ import { getBannerIfNotExpired as C } from "./get-banner.js";
6
6
  export function getAllBanners() {
7
7
  if (!r.rr()) return;
8
8
  const n = {},
9
9
  o = r.l();
10
10
  if (
11
- (!1 === (null == o ? void 0 : o.kt()) && E.error(j.aa),
12
- !(null == o ? void 0 : o.kt()))
11
+ (!1 === (null == o ? void 0 : o.Jt()) && E.error(j.aa),
12
+ !(null == o ? void 0 : o.Jt()))
13
13
  )
14
14
  return n;
15
- const t = i.o().ct();
16
- for (const r in t) n[r] = y(t, r);
15
+ const t = i.o().k();
16
+ for (const r in t) n[r] = C(t, r);
17
17
  return n;
18
18
  }
@@ -5,7 +5,7 @@ import i from "./banner-provider-factory.js";
5
5
  export function getBannerIfNotExpired(n, r) {
6
6
  const e = n[r];
7
7
  if (!e) return null;
8
- const t = e.Et,
8
+ const t = e.Yt,
9
9
  o = new Date().valueOf();
10
10
  return -1 !== t && 1e3 * t < o
11
11
  ? (E.info(`Banner with ID: ${e.id} and placement ID: ${r} has expired.`),
@@ -15,9 +15,9 @@ export function getBannerIfNotExpired(n, r) {
15
15
  export function getBanner(n) {
16
16
  var e;
17
17
  if (!r.rr()) return;
18
- !1 === (null === (e = r.l()) || void 0 === e ? void 0 : e.kt()) &&
18
+ !1 === (null === (e = r.l()) || void 0 === e ? void 0 : e.Jt()) &&
19
19
  E.error(j.aa);
20
20
  const t = i.o();
21
- if (!t.k()) return null;
22
- return getBannerIfNotExpired(t.ct(), n);
21
+ if (!t.P()) return null;
22
+ return getBannerIfNotExpired(t.k(), n);
23
23
  }
@@ -2,7 +2,7 @@ import r from "../managers/braze-instance.js";
2
2
  import Banner from "./banner.js";
3
3
  import { logger as E } from "../../shared-lib/index.js";
4
4
  import i from "./banner-provider-factory.js";
5
- import { keys as C } from "../util/code-utils.js";
5
+ import { keys as D } from "../util/code-utils.js";
6
6
  export function logBannerClick(n, o) {
7
7
  if (!r.rr()) return;
8
8
  if (!(n instanceof Banner))
@@ -10,11 +10,11 @@ export function logBannerClick(n, o) {
10
10
  E.error("Banner argument to logBannerClick must be an Banner object."), !1
11
11
  );
12
12
  const e = i.o(),
13
- t = e.ct();
14
- return 0 === C(t).length
13
+ t = e.k();
14
+ return 0 === D(t).length
15
15
  ? (E.info("Not logging banner click. No banners exist."), !1)
16
16
  : t[n.placementId]
17
- ? e.ht(n, o)
17
+ ? e.jt(n, o)
18
18
  : (E.info(
19
19
  `Not logging banner click for ID ${n.placementId}. The placement ID did not correspond to any banner.`,
20
20
  ),