@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
@@ -1,7 +1,7 @@
1
- import e from "../managers/braze-instance.js";
2
- import { InternalEventTypes as or } from "../../shared-lib/index.js";
1
+ import r from "../managers/braze-instance.js";
2
+ import { InternalEventTypes as dr } from "../../shared-lib/index.js";
3
3
  export function logFeedDisplayed() {
4
- var r;
5
- if (e.X())
6
- return null === (r = e.nr()) || void 0 === r ? void 0 : r.qr(or.Ar).L;
4
+ var e;
5
+ if (r.rr())
6
+ return null === (e = r.g()) || void 0 === e ? void 0 : e.zr(dr.Fr).ss;
7
7
  }
@@ -1,5 +1,5 @@
1
- import e from "../managers/braze-instance.js";
2
- import re from "./feed-provider-factory.js";
1
+ import r from "../managers/braze-instance.js";
2
+ import ie from "./feed-provider-factory.js";
3
3
  export function requestFeedRefresh() {
4
- if (e.X()) return re.rr().qs();
4
+ if (r.rr()) return ie.m().zi();
5
5
  }
@@ -1,5 +1,5 @@
1
- import e from "../managers/braze-instance.js";
2
- import re from "./feed-provider-factory.js";
3
- export function subscribeToFeedUpdates(r) {
4
- if (e.X()) return re.rr().si(r);
1
+ import r from "../managers/braze-instance.js";
2
+ import ie from "./feed-provider-factory.js";
3
+ export function subscribeToFeedUpdates(e) {
4
+ if (r.rr()) return ie.m().Fs(e);
5
5
  }
@@ -1,7 +1,7 @@
1
- import e from "../../managers/braze-instance.js";
2
- import { destroyFeedHtml as z } from "../../common/feed-display.js";
1
+ import r from "../../managers/braze-instance.js";
2
+ import { destroyFeedHtml as ee } from "../../common/feed-display.js";
3
3
  export function destroyFeed() {
4
- if (!e.X()) return;
5
- const o = document.querySelectorAll(".ab-feed");
6
- for (let e = 0; e < o.length; e++) z(o[e]);
4
+ if (!r.rr()) return;
5
+ const e = document.querySelectorAll(".ab-feed");
6
+ for (let o = 0; o < e.length; o++) ee(e[o]);
7
7
  }
@@ -1,23 +1,23 @@
1
- import e, { OPTIONS as L } from "../../managers/braze-instance.js";
1
+ import r, { OPTIONS as z } from "../../managers/braze-instance.js";
2
2
  import {
3
- destroyFeedHtml as z,
4
- detectFeedImpressions as q,
5
- feedToHtml as I,
6
- LAST_REQUESTED_REFRESH_DATA_ATTRIBUTE as M,
7
- refreshFeed as $,
8
- registerFeedSubscriptionId as B,
9
- updateFeedCards as F,
3
+ destroyFeedHtml as ee,
4
+ detectFeedImpressions as nn,
5
+ feedToHtml as tn,
6
+ LAST_REQUESTED_REFRESH_DATA_ATTRIBUTE as en,
7
+ refreshFeed as on,
8
+ registerFeedSubscriptionId as rn,
9
+ updateFeedCards as an,
10
10
  } from "../../common/feed-display.js";
11
11
  import { Feed, logFeedDisplayed, subscribeToFeedUpdates } from "../index.js";
12
- import re from "../feed-provider-factory.js";
12
+ import ie from "../feed-provider-factory.js";
13
13
  import { intersection as te } from "../../util/code-utils.js";
14
- import { setCardHeight as G } from "../../Card/display/card-display.js";
15
- import { setupFeedUI as H } from "../../ui/js/index.js";
16
- import { logger as r } from "../../../shared-lib/index.js";
17
- export function showFeed(t, n, o) {
18
- if (!e.X()) return;
19
- H();
20
- const i = (e, t) => {
14
+ import { setCardHeight as sn } from "../../Card/display/card-display.js";
15
+ import { setupFeedUI as fn } from "../../ui/js/index.js";
16
+ import { logger as N } from "../../../shared-lib/index.js";
17
+ export function showFeed(e, t, n) {
18
+ if (!r.rr()) return;
19
+ fn();
20
+ const o = (e, t) => {
21
21
  if (null == t) return e;
22
22
  const n = [];
23
23
  for (let e = 0; e < t.length; e++) n.push(t[e].toLowerCase());
@@ -30,67 +30,67 @@ export function showFeed(t, n, o) {
30
30
  }
31
31
  return o;
32
32
  },
33
- s = e.nn(L.tn) || e.nn(L.en) || !1;
34
- let l = !1;
35
- null == t && ((t = document.body), (l = !0));
36
- let f,
37
- a = !1;
38
- null == n
39
- ? ((f = re.rr().Gi()),
40
- F(f, i(f.cards, o), f.lastUpdated, null, s),
41
- (a = !0))
42
- : (f = new Feed(i(n, o), new Date()));
43
- const u = I(f, s, l);
44
- if (a) {
45
- (null == f.lastUpdated ||
46
- new Date().valueOf() - f.lastUpdated.valueOf() > Feed.ur) &&
47
- (r.info(
48
- `Cached feed was older than max TTL of ${Feed.ur} ms, requesting an update from the server.`,
33
+ i = r.sr(z.tn) || r.sr(z.en) || !1;
34
+ let s = !1;
35
+ null == e && ((e = document.body), (s = !0));
36
+ let l,
37
+ f = !1;
38
+ null == t
39
+ ? ((l = ie.m().Je()),
40
+ an(l, o(l.cards, n), l.lastUpdated, null, i),
41
+ (f = !0))
42
+ : (l = new Feed(o(t, n), new Date()));
43
+ const a = tn(l, i, s);
44
+ if (f) {
45
+ (null == l.lastUpdated ||
46
+ new Date().valueOf() - l.lastUpdated.valueOf() > Feed.ar) &&
47
+ (N.info(
48
+ `Cached feed was older than max TTL of ${Feed.ar} ms, requesting an update from the server.`,
49
49
  ),
50
- $(f, u));
50
+ on(l, a));
51
51
  const e = new Date().valueOf(),
52
52
  t = subscribeToFeedUpdates(function (t) {
53
- const n = u.querySelectorAll(".ab-refresh-button")[0];
54
- if (null != n) {
53
+ const r = a.querySelectorAll(".ab-refresh-button")[0];
54
+ if (null != r) {
55
55
  let t = 500;
56
56
  t -= new Date().valueOf() - e;
57
- const o = u.getAttribute(M);
58
- if (o) {
59
- const e = parseInt(o);
57
+ const n = a.getAttribute(en);
58
+ if (n) {
59
+ const e = parseInt(n);
60
60
  isNaN(e) || (t -= new Date().valueOf() - e);
61
61
  }
62
62
  setTimeout(
63
63
  function () {
64
- n.className = n.className.replace(/fa-spin/g, "");
64
+ r.className = r.className.replace(/fa-spin/g, "");
65
65
  },
66
66
  Math.max(t, 0),
67
67
  );
68
68
  }
69
- F(f, i(t.cards, o), t.lastUpdated, u, s);
69
+ an(l, o(t.cards, n), t.lastUpdated, a, i);
70
70
  });
71
- B(t, u);
71
+ rn(t, a);
72
72
  }
73
- const d = (e) => {
73
+ const u = (e) => {
74
74
  const t = e.querySelectorAll(".ab-feed");
75
75
  let n = null;
76
76
  for (let o = 0; o < t.length; o++) t[o].parentNode === e && (n = t[o]);
77
77
  null != n
78
- ? (z(n), n.parentNode && n.parentNode.replaceChild(u, n))
79
- : e.appendChild(u),
78
+ ? (ee(n), n.parentNode && n.parentNode.replaceChild(a, n))
79
+ : e.appendChild(a),
80
80
  setTimeout(function () {
81
- u.className = u.className.replace("ab-hide", "ab-show");
81
+ a.className = a.className.replace("ab-hide", "ab-show");
82
82
  }, 0),
83
- l && u.focus(),
83
+ s && a.focus(),
84
84
  logFeedDisplayed(),
85
- q(f, u),
86
- f && G(f.cards, e);
85
+ nn(l, a),
86
+ l && sn(l.cards, e);
87
87
  };
88
- var m;
89
- null != t
90
- ? d(t)
88
+ var d;
89
+ null != e
90
+ ? u(e)
91
91
  : (window.onload =
92
- ((m = window.onload),
92
+ ((d = window.onload),
93
93
  function () {
94
- "function" == typeof m && m(new Event("oldLoad")), d(document.body);
94
+ "function" == typeof d && d(new Event("oldLoad")), u(document.body);
95
95
  }));
96
96
  }
@@ -1,8 +1,8 @@
1
- import e from "../../managers/braze-instance.js";
1
+ import r from "../../managers/braze-instance.js";
2
2
  import { destroyFeed, showFeed } from "../index.js";
3
- export function toggleFeed(o, n, r) {
4
- e.X() &&
3
+ export function toggleFeed(e, o, n) {
4
+ r.rr() &&
5
5
  (document.querySelectorAll(".ab-feed").length > 0
6
6
  ? destroyFeed()
7
- : showFeed(o, n, r));
7
+ : showFeed(e, o, n));
8
8
  }
@@ -1,13 +1,13 @@
1
1
  import InAppMessage from "./models/in-app-message.js";
2
- import e from "../managers/braze-instance.js";
2
+ import r from "../managers/braze-instance.js";
3
3
  import ControlMessage from "./models/control-message.js";
4
- import { logger as r } from "../../shared-lib/index.js";
4
+ import { logger as N } from "../../shared-lib/index.js";
5
5
  import se from "./in-app-message-manager-factory.js";
6
- export function deferInAppMessage(s) {
7
- if (e.X())
8
- return s instanceof ControlMessage
9
- ? (r.info("Not deferring since this is a ControlMessage."), !1)
10
- : s instanceof InAppMessage
11
- ? se.m().je(s)
12
- : (r.info("Not an instance of InAppMessage, ignoring."), !1);
6
+ export function deferInAppMessage(e) {
7
+ if (r.rr())
8
+ return e instanceof ControlMessage
9
+ ? (N.info("Not deferring since this is a ControlMessage."), !1)
10
+ : e instanceof InAppMessage
11
+ ? se.ea().Me(e)
12
+ : (N.info("Not an instance of InAppMessage, ignoring."), !1);
13
13
  }
@@ -1,172 +1,26 @@
1
- import { getUser as ro } from "../../Core/get-user.js";
2
- import { keys as to } from "../../util/code-utils.js";
3
- import { parseQueryStringKeyValues as ut } from "../../util/url-utils.js";
4
- import { WindowUtils as eo } from "../../util/window-utils.js";
1
+ import { parseQueryStringKeyValues as ll } from "../../util/url-utils.js";
2
+ import { WindowUtils as no } from "../../util/window-utils.js";
5
3
  import { logInAppMessageHtmlClick } from "../log-in-app-message-html-click.js";
6
4
  import InAppMessage from "../models/in-app-message.js";
7
- import e from "../../managers/braze-instance.js";
8
- import { logger as r } from "../../../shared-lib/index.js";
9
- import { BRAZE_MUST_BE_INITIALIZED_ERROR as _ } from "../../common/constants.js";
10
- export const buildHtmlClickHandler = (t, r, e, o) => {
11
- const s = e.getAttribute("href"),
12
- n = e.onclick;
13
- return (i) => {
14
- if (null != n && "function" == typeof n && !1 === n.bind(e)(i)) return;
15
- let u = ut(s).abButtonId;
5
+ export const buildHtmlClickHandler = (l, t, i, o) => {
6
+ const r = i.getAttribute("href"),
7
+ e = i.onclick;
8
+ return (n) => {
9
+ if (null != e && "function" == typeof e && !1 === e.bind(i)(n)) return;
10
+ let s = ll(r).abButtonId;
16
11
  if (
17
- ((null != u && "" !== u) || (u = e.getAttribute("id") || void 0),
18
- null != s && "" !== s && 0 !== s.indexOf("#"))
12
+ ((null != s && "" !== s) || (s = i.getAttribute("id") || void 0),
13
+ null != r && "" !== r && 0 !== r.indexOf("#"))
19
14
  ) {
20
- const n =
15
+ const e =
21
16
  "blank" ===
22
- (e.getAttribute("target") || "").toLowerCase().replace("_", ""),
23
- c = o || t.openTarget === InAppMessage.OpenTarget.BLANK || n,
24
- a = () => {
25
- logInAppMessageHtmlClick(t, u, s), eo.openUri(s, c, i);
17
+ (i.getAttribute("target") || "").toLowerCase().replace("_", ""),
18
+ m = o || l.openTarget === InAppMessage.OpenTarget.BLANK || e,
19
+ u = () => {
20
+ logInAppMessageHtmlClick(l, s, r), no.openUri(r, m, n);
26
21
  };
27
- c ? a() : t.Cr(r, a);
28
- } else logInAppMessageHtmlClick(t, u, s || void 0);
29
- return i.stopPropagation(), !1;
22
+ m ? u() : l.ll(t, u);
23
+ } else logInAppMessageHtmlClick(l, s, r || void 0);
24
+ return n.stopPropagation(), !1;
30
25
  };
31
26
  };
32
- export const applyNonceToDynamicallyCreatedTags = (t, r, e) => {
33
- const o = `([\\w]+)\\s*=\\s*document.createElement\\(['"]${e}['"]\\)`,
34
- s = t.match(new RegExp(o));
35
- if (s) {
36
- const e = `${s[1]}.setAttribute("nonce", "${r}")`;
37
- return `${t.slice(0, s.index + s[0].length)};${e};${t.slice(
38
- s.index + s[0].length,
39
- )}`;
40
- }
41
- return null;
42
- };
43
- export const buildBrazeBridge = (t, o, s) => {
44
- const n = {
45
- closeMessage: function () {
46
- t.Cr(o);
47
- },
48
- logClick: function () {
49
- logInAppMessageHtmlClick(t, ...arguments);
50
- },
51
- display: {},
52
- web: {},
53
- },
54
- requestPushPermission = function () {
55
- return function () {
56
- const t = arguments;
57
- import("../../Push/request-push-permission.js").then((o) => {
58
- e.so()
59
- ? o.requestPushPermission(...Array.prototype.slice.call(t))
60
- : r.error(_);
61
- });
62
- };
63
- },
64
- i = {
65
- requestImmediateDataFlush: function () {
66
- const t = arguments;
67
- import("../../Core/request-immediate-data-flush.js").then(
68
- ({ requestImmediateDataFlush: requestImmediateDataFlush }) => {
69
- e.so()
70
- ? requestImmediateDataFlush(...Array.prototype.slice.call(t))
71
- : r.error(_);
72
- },
73
- );
74
- },
75
- logCustomEvent: function () {
76
- const t = arguments;
77
- import("../../Core/log-custom-event.js").then(
78
- ({ logCustomEvent: logCustomEvent }) => {
79
- if (!e.so()) return void r.error(_);
80
- logCustomEvent(...Array.prototype.slice.call(t));
81
- },
82
- );
83
- },
84
- logPurchase: function () {
85
- const t = arguments;
86
- import("../../Core/log-purchase.js").then(
87
- ({ logPurchase: logPurchase }) => {
88
- if (!e.so()) return void r.error(_);
89
- logPurchase(...Array.prototype.slice.call(t));
90
- },
91
- );
92
- },
93
- unregisterPush: function () {
94
- const t = arguments;
95
- import("../../Push/unregister-push.js").then(
96
- ({ unregisterPush: unregisterPush }) => {
97
- e.so()
98
- ? unregisterPush(...Array.prototype.slice.call(t))
99
- : r.error(_);
100
- },
101
- );
102
- },
103
- requestPushPermission: requestPushPermission(),
104
- changeUser: function () {
105
- const t = arguments;
106
- import("../../Core/change-user.js").then(
107
- ({ changeUser: changeUser }) => {
108
- if (!e.so()) return void r.error(_);
109
- changeUser(...Array.prototype.slice.call(t));
110
- },
111
- );
112
- },
113
- },
114
- u = function (t) {
115
- return function () {
116
- i[t](...Array.prototype.slice.call(arguments));
117
- };
118
- };
119
- for (const t of to(i)) n[t] = u(t);
120
- const c = [
121
- "setFirstName",
122
- "setLastName",
123
- "setEmail",
124
- "setGender",
125
- "setDateOfBirth",
126
- "setCountry",
127
- "setHomeCity",
128
- "setEmailNotificationSubscriptionType",
129
- "setLanguage",
130
- "addAlias",
131
- "setPushNotificationSubscriptionType",
132
- "setPhoneNumber",
133
- "setCustomUserAttribute",
134
- "addToCustomAttributeArray",
135
- "removeFromCustomAttributeArray",
136
- "incrementCustomUserAttribute",
137
- "setCustomLocationAttribute",
138
- "addToSubscriptionGroup",
139
- "removeFromSubscriptionGroup",
140
- ],
141
- a = function (t) {
142
- return function () {
143
- const r = ro();
144
- r && r[t](...Array.prototype.slice.call(arguments));
145
- };
146
- },
147
- m = {};
148
- for (let t = 0; t < c.length; t++) m[c[t]] = a(c[t]);
149
- n.getUser = function () {
150
- return m;
151
- };
152
- const l = { showFeed: s },
153
- f = function (r) {
154
- return function () {
155
- const e = arguments;
156
- t.Cr(o, function () {
157
- l[r](...Array.prototype.slice.call(e));
158
- });
159
- };
160
- },
161
- p = n.display;
162
- for (const t of to(l)) p[t] = f(t);
163
- const d = { registerAppboyPushMessages: requestPushPermission() },
164
- g = function (t) {
165
- return function () {
166
- d[t](...Array.prototype.slice.call(arguments));
167
- };
168
- },
169
- h = n.web;
170
- for (const t of to(d)) h[t] = g(t);
171
- return n;
172
- };
@@ -1,81 +1,74 @@
1
- import X from "../../util/browser-detector.js";
2
- import { InAppMessage } from "../index.js";
3
- import { OperatingSystems as Y } from "../../util/device-constants.js";
4
- import {
5
- applyNonceToDynamicallyCreatedTags as lt,
6
- buildBrazeBridge as ct,
7
- buildHtmlClickHandler as at,
8
- } from "./html-message-display-utils.js";
9
- export default function dt(t, e, n, o, s, l) {
10
- const c = document.createElement("iframe");
11
- c.setAttribute("title", "Modal Message"),
12
- s && (c.style.zIndex = (s + 1).toString());
13
- let r = null;
14
- if (null != l) {
15
- (r = document.createElement("html")), (r.innerHTML = t.message || "");
16
- const e = r.getElementsByTagName("style");
17
- for (let t = 0; t < e.length; t++) e[t].setAttribute("nonce", l);
18
- const n = r.getElementsByTagName("script");
19
- for (let t = 0; t < n.length; t++) {
20
- n[t].setAttribute("nonce", l),
21
- (n[t].innerHTML = n[t].innerHTML.replace(
22
- /<style>/g,
23
- `<style nonce='${l}'>`,
24
- ));
25
- const e = lt(n[t].innerHTML, l, "script");
26
- e && (n[t].innerHTML = e);
27
- const o = lt(n[t].innerHTML, l, "style");
28
- o && (n[t].innerHTML = o);
29
- }
30
- }
1
+ import ro from "../../util/browser-detector.js";
2
+ import { InAppMessage, logInAppMessageHtmlClick } from "../index.js";
3
+ import { OperatingSystems as so } from "../../util/device-constants.js";
4
+ import { buildHtmlClickHandler as ct } from "./html-message-display-utils.js";
5
+ import { attachHtmlToIframeWithNonce as m } from "../../util/html-display-utils.js";
6
+ import { buildBrazeBridge as b } from "../../util/html-display-utils.js";
7
+ export default function dt(t, e, o, s, n, i) {
8
+ const l = document.createElement("iframe");
9
+ l.setAttribute("title", "Modal Message"),
10
+ n && (l.style.zIndex = (n + 1).toString());
31
11
  if (
32
- ((c.srcdoc = r ? r.innerHTML : t.message || ""),
33
- (c.onload = () => {
34
- const s = c.contentWindow;
35
- s.focus();
36
- const r = s.document.getElementsByTagName("head")[0];
37
- if (null != r) {
38
- if (t.ve()) {
12
+ (m(l, t.message, i),
13
+ (l.onload = () => {
14
+ const n = l.contentWindow;
15
+ n.focus();
16
+ const a = n.document.getElementsByTagName("head")[0];
17
+ if (null != a) {
18
+ if (t.Oe()) {
39
19
  const e = document.createElement("style");
40
20
  (e.innerHTML = t.css || ""),
41
- (e.id = t.we() || ""),
42
- null != l && e.setAttribute("nonce", l),
43
- r.appendChild(e);
21
+ (e.id = t._e() || ""),
22
+ null != i && e.setAttribute("nonce", i),
23
+ a.appendChild(e);
44
24
  }
45
- const e = s.document.createElement("base");
46
- null != e && (e.setAttribute("target", "_parent"), r.appendChild(e));
25
+ const e = n.document.createElement("base");
26
+ null != e && (e.setAttribute("target", "_parent"), a.appendChild(e));
47
27
  }
48
- const i = s.document.getElementsByTagName("title");
49
- i && i.length > 0 && c.setAttribute("title", i[0].textContent || "");
50
- const a = ct(t, c, e);
28
+ const r = n.document.getElementsByTagName("title");
29
+ r && r.length > 0 && l.setAttribute("title", r[0].textContent || "");
30
+ const c = Object.assign(
31
+ Object.assign(
32
+ {},
33
+ b(l, e, (e, o) => t.ll(e, o)),
34
+ ),
35
+ {
36
+ closeMessage: function () {
37
+ t.ll(l);
38
+ },
39
+ logClick: function () {
40
+ logInAppMessageHtmlClick(t, ...arguments);
41
+ },
42
+ },
43
+ );
51
44
  if (
52
- ((s.appboyBridge = a), (s.brazeBridge = a), t.xe !== InAppMessage.Be.Me)
45
+ ((n.appboyBridge = c), (n.brazeBridge = c), t.Ke !== InAppMessage.Qe.Le)
53
46
  ) {
54
- const e = s.document.getElementsByTagName("a");
55
- for (let n = 0; n < e.length; n++) e[n].onclick = at(t, c, e[n], o);
56
- const n = s.document.getElementsByTagName("button");
57
- for (let e = 0; e < n.length; e++) n[e].onclick = at(t, c, n[e], o);
47
+ const e = n.document.getElementsByTagName("a");
48
+ for (let o = 0; o < e.length; o++) e[o].onclick = ct(t, l, e[o], s);
49
+ const o = n.document.getElementsByTagName("button");
50
+ for (let e = 0; e < o.length; e++) o[e].onclick = ct(t, l, o[e], s);
58
51
  }
59
- const d = s.document.body;
60
- if (null != d) {
61
- t.Ce() && (d.id = t.htmlId || "");
52
+ const m = n.document.body;
53
+ if (null != m) {
54
+ t.Ve() && (m.id = t.htmlId || "");
62
55
  const e = document.createElement("hidden");
63
- (e.onclick = a.closeMessage),
56
+ (e.onclick = c.closeMessage),
64
57
  (e.className = "ab-programmatic-close-button"),
65
- d.appendChild(e);
58
+ m.appendChild(e);
66
59
  }
67
- s.dispatchEvent(new CustomEvent("ab.BridgeReady")),
68
- -1 !== c.className.indexOf("ab-start-hidden") &&
69
- ((c.className = c.className.replace("ab-start-hidden", "")), n(c));
60
+ n.dispatchEvent(new CustomEvent("ab.BridgeReady")),
61
+ -1 !== l.className.indexOf("ab-start-hidden") &&
62
+ ((l.className = l.className.replace("ab-start-hidden", "")), o(l));
70
63
  }),
71
- (c.className =
64
+ (l.className =
72
65
  "ab-in-app-message ab-start-hidden ab-html-message ab-modal-interactions"),
73
- X.OS === Y.io)
66
+ ro.OS === so.ao)
74
67
  ) {
75
68
  const e = document.createElement("div");
76
69
  return (
77
- (e.className = "ab-ios-scroll-wrapper"), e.appendChild(c), (t.Re = e), e
70
+ (e.className = "ab-ios-scroll-wrapper"), e.appendChild(l), (t.We = e), e
78
71
  );
79
72
  }
80
- return (t.Re = c), c;
73
+ return (t.We = l), l;
81
74
  }