@braze/web-sdk 5.5.0 → 5.6.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/index.d.ts +109 -7
- package/package.json +1 -1
- package/shared-lib/encoding-utils.js +1 -1
- package/shared-lib/event-types.js +33 -31
- package/shared-lib/guid.js +3 -3
- package/shared-lib/indexed-db-adapter.js +20 -20
- package/shared-lib/logger.js +18 -18
- package/shared-lib/supported-options.js +24 -24
- package/src/Banner/banner-factory.js +14 -0
- package/src/Banner/banner-provider-factory.js +19 -0
- package/src/Banner/banner-provider.js +198 -0
- package/src/Banner/banner.js +30 -0
- package/src/Banner/display/banner-to-html.js +57 -0
- package/src/Banner/display/destroy-banner-html.js +7 -0
- package/src/Banner/display/detect-banner-impressions.js +28 -0
- package/src/Banner/get-all-banners.js +13 -0
- package/src/Banner/get-banner.js +19 -0
- package/src/Banner/index.js +7 -0
- package/src/Banner/log-banner-click.js +22 -0
- package/src/Banner/log-banner-impressions.js +31 -0
- package/src/Banner/request-banners-refresh.js +35 -0
- package/src/Banner/subscribe-to-banners-updates.js +23 -0
- package/src/Banner/types.js +1 -0
- package/src/Banner/ui/insert-banner.js +24 -0
- package/src/Card/card-manager-factory.js +10 -10
- package/src/Card/card-manager.js +54 -52
- package/src/Card/display/card-display.js +77 -91
- package/src/Card/log-card-click.js +6 -6
- package/src/Card/log-card-dismissal.js +6 -5
- package/src/Card/log-card-impressions.js +11 -11
- package/src/Card/models/captioned-image.js +21 -21
- package/src/Card/models/card.js +99 -99
- package/src/Card/models/classic-card.js +21 -21
- package/src/Card/models/control-card.js +11 -11
- package/src/Card/models/image-only.js +19 -19
- package/src/Card/util/card-factory.js +58 -58
- package/src/ContentCards/content-cards-provider-factory.js +14 -14
- package/src/ContentCards/content-cards-provider.js +261 -263
- package/src/ContentCards/content-cards.js +5 -5
- package/src/ContentCards/get-cached-content-cards.js +3 -3
- package/src/ContentCards/request-content-cards-refresh.js +4 -4
- package/src/ContentCards/subscribe-to-content-cards-updates.js +13 -13
- package/src/ContentCards/ui/hide-content-cards.js +7 -7
- package/src/ContentCards/ui/show-content-cards.js +52 -52
- package/src/ContentCards/ui/toggle-content-cards.js +4 -4
- package/src/Core/add-sdk-metadata.js +9 -9
- package/src/Core/change-user.js +14 -14
- package/src/Core/destroy.js +3 -3
- package/src/Core/disable-sdk.js +13 -13
- package/src/Core/enable-sdk.js +9 -9
- package/src/Core/get-device-id.js +10 -10
- package/src/Core/get-user.js +2 -2
- package/src/Core/handle-braze-action.js +53 -53
- package/src/Core/initialize.js +2 -2
- package/src/Core/is-disabled.js +2 -2
- package/src/Core/is-initialized.js +2 -2
- package/src/Core/log-custom-event.js +27 -27
- package/src/Core/log-purchase.js +38 -38
- package/src/Core/open-session.js +18 -18
- package/src/Core/remove-all-subscriptions.js +2 -2
- package/src/Core/remove-subscription.js +3 -3
- package/src/Core/request-immediate-data-flush.js +5 -5
- package/src/Core/set-logger.js +2 -2
- package/src/Core/set-sdk-authentication-signature.js +6 -6
- package/src/Core/subscribe-to-sdk-authentication-failures.js +5 -5
- package/src/Core/toggle-logging.js +2 -2
- package/src/Core/wipe-data.js +10 -10
- package/src/FeatureFlags/feature-flag-factory.js +13 -13
- package/src/FeatureFlags/feature-flag.js +10 -10
- package/src/FeatureFlags/feature-flags-provider-factory.js +13 -14
- package/src/FeatureFlags/feature-flags-provider.js +118 -116
- package/src/FeatureFlags/get-all-feature-flags.js +10 -10
- package/src/FeatureFlags/get-feature-flag.js +9 -9
- package/src/FeatureFlags/log-feature-flag-impression.js +18 -18
- package/src/FeatureFlags/refresh-feature-flags.js +6 -6
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +9 -9
- package/src/Feed/feed-provider-factory.js +12 -12
- package/src/Feed/feed-provider.js +59 -59
- package/src/Feed/feed.js +4 -4
- package/src/Feed/get-cached-feed.js +3 -3
- package/src/Feed/log-feed-displayed.js +5 -5
- package/src/Feed/request-feed-refresh.js +3 -3
- package/src/Feed/subscribe-to-feed-updates.js +4 -4
- package/src/Feed/ui/hide-feed.js +5 -5
- package/src/Feed/ui/show-feed.js +53 -53
- package/src/Feed/ui/toggle-feed.js +4 -4
- package/src/InAppMessage/defer-in-app-message.js +9 -9
- package/src/InAppMessage/display/html-message-display-utils.js +18 -164
- package/src/InAppMessage/display/html-message-to-html.js +55 -62
- package/src/InAppMessage/display/in-app-message-to-html.js +74 -74
- package/src/InAppMessage/display/modal-utils.js +17 -17
- package/src/InAppMessage/get-deferred-in-app-message.js +2 -2
- package/src/InAppMessage/in-app-message-factory.js +61 -61
- package/src/InAppMessage/in-app-message-manager-factory.js +9 -9
- package/src/InAppMessage/in-app-message-manager.js +158 -156
- package/src/InAppMessage/log-in-app-message-button-click.js +16 -16
- package/src/InAppMessage/log-in-app-message-click.js +11 -11
- package/src/InAppMessage/log-in-app-message-html-click.js +15 -15
- package/src/InAppMessage/log-in-app-message-impression.js +6 -6
- package/src/InAppMessage/models/control-message.js +15 -8
- package/src/InAppMessage/models/full-screen-message.js +34 -34
- package/src/InAppMessage/models/html-message.js +23 -23
- package/src/InAppMessage/models/in-app-message-button.js +10 -10
- package/src/InAppMessage/models/in-app-message.js +155 -155
- package/src/InAppMessage/models/modal-message.js +33 -33
- package/src/InAppMessage/models/slide-up-message.js +35 -35
- package/src/InAppMessage/models/templated-in-app-message.js +8 -8
- package/src/InAppMessage/subscribe-to-in-app-message.js +3 -3
- package/src/InAppMessage/ui/automatically-show-in-app-messages.js +6 -6
- package/src/InAppMessage/ui/show-in-app-message.js +103 -103
- package/src/Push/is-push-blocked.js +2 -2
- package/src/Push/is-push-permission-granted.js +2 -2
- package/src/Push/is-push-supported.js +2 -2
- package/src/Push/push-manager-factory.js +25 -25
- package/src/Push/push-manager.js +176 -176
- package/src/Push/request-push-permission.js +8 -8
- package/src/Push/unregister-push.js +4 -4
- package/src/Push/utils/push-utils.js +4 -4
- package/src/User/user-manager.js +38 -38
- package/src/User/user.js +95 -92
- package/src/common/base-feed.js +9 -9
- package/src/common/base-provider.js +2 -2
- package/src/common/constants.js +1 -0
- package/src/common/detect-impression.js +18 -0
- package/src/common/event-logger.js +22 -22
- package/src/common/feed-display.js +53 -53
- package/src/index.js +1 -0
- package/src/l10n/l10n-manager-factory.js +15 -15
- package/src/l10n/l10n-manager.js +4 -4
- package/src/managers/auth-manager.js +38 -38
- package/src/managers/braze-instance.js +212 -212
- package/src/managers/device-manager.js +30 -30
- package/src/managers/network-manager.js +234 -235
- package/src/managers/server-config-manager.js +99 -83
- package/src/managers/session-manager.js +46 -50
- package/src/managers/storage-manager-factory.js +13 -13
- package/src/managers/storage-manager.js +182 -180
- package/src/managers/subscription-manager.js +12 -12
- package/src/managers/utils.js +4 -4
- package/src/models/backend-errors.js +5 -5
- package/src/models/braze-event.js +9 -9
- package/src/models/device.js +2 -2
- package/src/models/identifier.js +15 -15
- package/src/models/push-token.js +10 -10
- package/src/models/request-result.js +4 -4
- package/src/models/server-config.js +38 -34
- package/src/request-controller.js +228 -228
- package/src/triggers/models/custom-event-data.js +5 -5
- package/src/triggers/models/custom-event-property-data.js +6 -6
- package/src/triggers/models/filter-set.js +10 -10
- package/src/triggers/models/filter.js +66 -66
- package/src/triggers/models/in-app-message-click-data.js +10 -10
- package/src/triggers/models/purchase-data.js +2 -2
- package/src/triggers/models/purchase-property-data.js +6 -6
- package/src/triggers/models/push-click-data.js +5 -5
- package/src/triggers/models/trigger-condition.js +46 -46
- package/src/triggers/models/trigger-events.js +4 -4
- package/src/triggers/models/trigger.js +33 -33
- package/src/triggers/triggers-provider-factory.js +16 -16
- package/src/triggers/triggers-provider.js +156 -154
- package/src/ui/js/attach-css.js +7 -7
- package/src/ui/js/banner-css.js +11 -0
- package/src/ui/js/feed-css.js +4 -4
- package/src/ui/js/iam-css.js +4 -4
- package/src/ui/js/index.js +1 -0
- package/src/ui/js/load-font-awesome.js +8 -8
- package/src/util/base-device-parser.js +9 -9
- package/src/util/braze-actions.js +32 -32
- package/src/util/browser-detector.js +27 -27
- package/src/util/client-hints-parser.js +9 -9
- package/src/util/code-utils.js +5 -5
- package/src/util/component-utils.js +5 -5
- package/src/util/deprecation-utils.js +3 -3
- package/src/util/device-constants.js +1 -1
- package/src/util/dom-utils.js +13 -13
- package/src/util/html-display-utils.js +158 -0
- package/src/util/key-codes.js +1 -1
- package/src/util/net.js +21 -21
- package/src/util/request-header-utils.js +31 -30
- package/src/util/string-utils.js +2 -2
- package/src/util/user-agent-parser.js +9 -9
- package/src/util/validation-utils.js +89 -85
- package/src/util/window-utils.js +3 -3
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
import {
|
|
2
|
-
addPassiveEventListener as
|
|
3
|
-
buildSvg as
|
|
4
|
-
detectSwipe as
|
|
5
|
-
DIRECTIONS as
|
|
2
|
+
addPassiveEventListener as J,
|
|
3
|
+
buildSvg as oe,
|
|
4
|
+
detectSwipe as H,
|
|
5
|
+
DIRECTIONS as R,
|
|
6
6
|
} from "../../util/dom-utils.js";
|
|
7
|
-
import { createCloseButton as
|
|
8
|
-
import { isTransparent as
|
|
7
|
+
import { createCloseButton as T } from "../../util/component-utils.js";
|
|
8
|
+
import { isTransparent as ae, toRgba as le } from "../../util/color-utils.js";
|
|
9
9
|
import FullScreenMessage from "../models/full-screen-message.js";
|
|
10
10
|
import HtmlMessage from "../models/html-message.js";
|
|
11
11
|
import InAppMessage from "../models/in-app-message.js";
|
|
12
12
|
import ModalMessage from "../models/modal-message.js";
|
|
13
13
|
import SlideUpMessage from "../models/slide-up-message.js";
|
|
14
14
|
import { logInAppMessageClick } from "../log-in-app-message-click.js";
|
|
15
|
-
import { _handleBrazeAction as
|
|
15
|
+
import { _handleBrazeAction as F } from "../../Core/handle-braze-action.js";
|
|
16
16
|
import dt from "./html-message-to-html.js";
|
|
17
|
-
import
|
|
18
|
-
import { logger as
|
|
19
|
-
export default function
|
|
20
|
-
if (((e.
|
|
17
|
+
import ce from "./modal-utils.js";
|
|
18
|
+
import { logger as N, Guid as G } from "../../../shared-lib/index.js";
|
|
19
|
+
export default function de(e, o, a, t, n, s, i, m = document.body, l = "ltr") {
|
|
20
|
+
if (((e.Xe = document.activeElement), e instanceof HtmlMessage))
|
|
21
21
|
return dt(e, o, a, n, s, i);
|
|
22
|
-
const
|
|
22
|
+
const c = (function (e, o, a, t, n, s, i = document.body, m = "ltr") {
|
|
23
23
|
let l = null;
|
|
24
24
|
const c = document.createElement("div");
|
|
25
25
|
(c.dir = m),
|
|
26
26
|
(c.className = "ab-in-app-message ab-start-hidden ab-background"),
|
|
27
27
|
s && (c.style.zIndex = (s + 1).toString()),
|
|
28
|
-
e
|
|
28
|
+
e.Ye() &&
|
|
29
29
|
((c.className += " ab-modal-interactions"),
|
|
30
30
|
c.setAttribute("tabindex", "-1")),
|
|
31
|
-
e.
|
|
32
|
-
((c.style.color =
|
|
33
|
-
(c.style.backgroundColor =
|
|
34
|
-
|
|
35
|
-
const
|
|
31
|
+
e.Oe() ||
|
|
32
|
+
((c.style.color = le(e.textColor)),
|
|
33
|
+
(c.style.backgroundColor = le(e.backgroundColor)),
|
|
34
|
+
ae(e.backgroundColor) && (c.className += " ab-no-shadow"));
|
|
35
|
+
const d = () => {
|
|
36
36
|
-1 !== c.className.indexOf("ab-start-hidden") &&
|
|
37
37
|
((c.className = c.className.replace("ab-start-hidden", "")),
|
|
38
38
|
document.querySelectorAll(".ab-iam-img-loading").length > 0
|
|
39
39
|
? t(
|
|
40
40
|
`Cannot show in-app message ${e.message} because another message is being shown.`,
|
|
41
|
-
InAppMessage.
|
|
41
|
+
InAppMessage.lo.Ze,
|
|
42
42
|
)
|
|
43
43
|
: a(c));
|
|
44
44
|
},
|
|
45
|
-
|
|
45
|
+
r = (o = !0) => {
|
|
46
46
|
let a = document.querySelectorAll(".ab-iam-root");
|
|
47
47
|
(a && 0 !== a.length) || (a = i.querySelectorAll(".ab-iam-root")),
|
|
48
48
|
a &&
|
|
@@ -50,8 +50,8 @@ export default function ce(e, o, a, t, n, s, i, l = document.body, b = "ltr") {
|
|
|
50
50
|
(a[0].classList.remove("ab-iam-img-loading"),
|
|
51
51
|
l && (clearTimeout(l), (l = null)),
|
|
52
52
|
o
|
|
53
|
-
?
|
|
54
|
-
:
|
|
53
|
+
? d()
|
|
54
|
+
: N.error(
|
|
55
55
|
`Cannot show in-app message ${e.message} because the image failed to load.`,
|
|
56
56
|
));
|
|
57
57
|
};
|
|
@@ -64,10 +64,10 @@ export default function ce(e, o, a, t, n, s, i, l = document.body, b = "ltr") {
|
|
|
64
64
|
(e.clickAction !== InAppMessage.ClickAction.NONE &&
|
|
65
65
|
(c.className += " ab-clickable"),
|
|
66
66
|
(c.onclick = (a) => (
|
|
67
|
-
e.
|
|
67
|
+
e.ll(c, () => {
|
|
68
68
|
logInAppMessageClick(e),
|
|
69
69
|
e.clickAction === InAppMessage.ClickAction.URI
|
|
70
|
-
?
|
|
70
|
+
? F(
|
|
71
71
|
e.uri || "",
|
|
72
72
|
n || e.openTarget === InAppMessage.OpenTarget.BLANK,
|
|
73
73
|
a,
|
|
@@ -77,114 +77,114 @@ export default function ce(e, o, a, t, n, s, i, l = document.body, b = "ltr") {
|
|
|
77
77
|
a.stopPropagation(),
|
|
78
78
|
!1
|
|
79
79
|
)));
|
|
80
|
-
const
|
|
80
|
+
const u = T(
|
|
81
81
|
"Close Message",
|
|
82
|
-
e.
|
|
82
|
+
e.Oe() ? void 0 : le(e.closeButtonColor),
|
|
83
83
|
() => {
|
|
84
|
-
e.
|
|
84
|
+
e.ll(c);
|
|
85
85
|
},
|
|
86
86
|
m,
|
|
87
87
|
);
|
|
88
|
-
c.appendChild(
|
|
89
|
-
const
|
|
90
|
-
(
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
let
|
|
94
|
-
const
|
|
95
|
-
if (((
|
|
88
|
+
c.appendChild(u), s && (u.style.zIndex = (s + 2).toString());
|
|
89
|
+
const b = document.createElement("div");
|
|
90
|
+
(b.className = "ab-message-text"), (b.dir = m);
|
|
91
|
+
const p = (e.messageAlignment || e.do).toLowerCase();
|
|
92
|
+
b.className += " " + p + "-aligned";
|
|
93
|
+
let g = !1;
|
|
94
|
+
const f = document.createElement("div");
|
|
95
|
+
if (((f.className = "ab-image-area"), e.imageUrl)) {
|
|
96
96
|
if (e.cropType === InAppMessage.CropType.CENTER_CROP) {
|
|
97
97
|
const o = document.createElement("span");
|
|
98
98
|
(o.className = "ab-center-cropped-img"),
|
|
99
99
|
(o.style.backgroundImage = "url(" + e.imageUrl + ")"),
|
|
100
100
|
o.setAttribute("role", "img"),
|
|
101
101
|
o.setAttribute("aria-label", "Modal Image"),
|
|
102
|
-
e.
|
|
103
|
-
|
|
102
|
+
e.uo(o),
|
|
103
|
+
f.appendChild(o);
|
|
104
104
|
} else {
|
|
105
105
|
const o = document.createElement("img");
|
|
106
106
|
if (
|
|
107
107
|
(o.setAttribute("src", e.imageUrl),
|
|
108
|
-
e.
|
|
108
|
+
e.uo(o),
|
|
109
109
|
0 === document.querySelectorAll(".ab-iam-img-loading").length)
|
|
110
110
|
) {
|
|
111
|
-
|
|
111
|
+
g = !0;
|
|
112
112
|
const e = document.querySelectorAll(".ab-iam-root");
|
|
113
113
|
e && e.length > 0 && e[0].classList.add("ab-iam-img-loading"),
|
|
114
114
|
(l = window.setTimeout(() => {
|
|
115
|
-
|
|
115
|
+
r(!1);
|
|
116
116
|
}, 6e4)),
|
|
117
117
|
(o.onload = () => {
|
|
118
|
-
|
|
118
|
+
r();
|
|
119
119
|
}),
|
|
120
120
|
(o.onerror = () => {
|
|
121
|
-
|
|
121
|
+
r(!1);
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
-
|
|
124
|
+
f.appendChild(o);
|
|
125
125
|
}
|
|
126
|
-
c.appendChild(
|
|
126
|
+
c.appendChild(f), (b.className += " ab-with-image");
|
|
127
127
|
} else if (e.icon) {
|
|
128
|
-
|
|
128
|
+
f.className += " ab-icon-area";
|
|
129
129
|
const o = document.createElement("span");
|
|
130
130
|
(o.className = "ab-icon"),
|
|
131
|
-
e.
|
|
132
|
-
((o.style.backgroundColor =
|
|
133
|
-
(o.style.color =
|
|
131
|
+
e.Oe() ||
|
|
132
|
+
((o.style.backgroundColor = le(e.iconBackgroundColor)),
|
|
133
|
+
(o.style.color = le(e.iconColor)));
|
|
134
134
|
const a = document.createElement("i");
|
|
135
135
|
(a.className = "fa"),
|
|
136
136
|
a.appendChild(document.createTextNode(e.icon)),
|
|
137
137
|
a.setAttribute("aria-hidden", "true"),
|
|
138
138
|
o.appendChild(a),
|
|
139
|
-
|
|
140
|
-
c.appendChild(
|
|
141
|
-
(
|
|
139
|
+
f.appendChild(o),
|
|
140
|
+
c.appendChild(f),
|
|
141
|
+
(b.className += " ab-with-icon");
|
|
142
142
|
}
|
|
143
|
-
if ((
|
|
143
|
+
if ((J(b, "touchstart"), e.header && e.header.length > 0)) {
|
|
144
144
|
const o = document.createElement("h1");
|
|
145
|
-
(o.className = "ab-message-header"), (e.
|
|
145
|
+
(o.className = "ab-message-header"), (e.bo = G.Rt()), (o.id = e.bo);
|
|
146
146
|
const a = (
|
|
147
147
|
e.headerAlignment || InAppMessage.TextAlignment.CENTER
|
|
148
148
|
).toLowerCase();
|
|
149
149
|
(o.className += " " + a + "-aligned"),
|
|
150
|
-
e.
|
|
150
|
+
e.Oe() || (o.style.color = le(e.headerTextColor)),
|
|
151
151
|
o.appendChild(document.createTextNode(e.header)),
|
|
152
|
-
|
|
152
|
+
b.appendChild(o);
|
|
153
153
|
}
|
|
154
|
-
return
|
|
155
|
-
})(e, o, a, t, n, s,
|
|
154
|
+
return b.appendChild(e.po()), c.appendChild(b), g || d(), (e.We = c), c;
|
|
155
|
+
})(e, o, a, t, n, s, m, l);
|
|
156
156
|
if (e instanceof FullScreenMessage || e instanceof ModalMessage) {
|
|
157
157
|
const a = e instanceof FullScreenMessage ? "ab-fullscreen" : "ab-modal";
|
|
158
|
-
(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
158
|
+
(c.className += ` ${a} ab-centered`),
|
|
159
|
+
ce.fo(e, o, c, n),
|
|
160
|
+
ce.ho(c),
|
|
161
|
+
ce.jo(e.bo, c);
|
|
162
162
|
} else if (e instanceof SlideUpMessage) {
|
|
163
|
-
|
|
164
|
-
const o =
|
|
163
|
+
c.className += " ab-slideup";
|
|
164
|
+
const o = c.getElementsByClassName("ab-close-button")[0];
|
|
165
165
|
if (null != o) {
|
|
166
|
-
const a =
|
|
166
|
+
const a = oe(
|
|
167
167
|
"0 0 11.38 19.44",
|
|
168
168
|
"M11.38 9.72l-9.33 9.72L0 17.3l7.27-7.58L0 2.14 2.05 0l9.33 9.72z",
|
|
169
|
-
e.
|
|
169
|
+
e.Oe() ? void 0 : le(e.closeButtonColor),
|
|
170
170
|
);
|
|
171
171
|
a.setAttribute("class", "ab-chevron"), o.appendChild(a);
|
|
172
172
|
}
|
|
173
173
|
let a, t;
|
|
174
|
-
c
|
|
175
|
-
(
|
|
174
|
+
H(c, R.kt, (e) => {
|
|
175
|
+
(c.className += " ab-swiped-left"),
|
|
176
176
|
null != o && null != o.onclick && o.onclick(e);
|
|
177
177
|
}),
|
|
178
|
-
c
|
|
179
|
-
(
|
|
178
|
+
H(c, R.Ht, (e) => {
|
|
179
|
+
(c.className += " ab-swiped-right"),
|
|
180
180
|
null != o && null != o.onclick && o.onclick(e);
|
|
181
181
|
}),
|
|
182
182
|
e.slideFrom === InAppMessage.SlideFrom.TOP
|
|
183
|
-
? ((a =
|
|
184
|
-
: ((a =
|
|
185
|
-
c
|
|
186
|
-
(
|
|
183
|
+
? ((a = R.wo), (t = " ab-swiped-up"))
|
|
184
|
+
: ((a = R.vo), (t = " ab-swiped-down")),
|
|
185
|
+
H(c, a, (e) => {
|
|
186
|
+
(c.className += t), null != o && null != o.onclick && o.onclick(e);
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
|
-
return
|
|
189
|
+
return c;
|
|
190
190
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import InAppMessage from "../models/in-app-message.js";
|
|
2
|
-
import { _handleBrazeAction as
|
|
2
|
+
import { _handleBrazeAction as F } from "../../Core/handle-braze-action.js";
|
|
3
3
|
import { logInAppMessageButtonClick } from "../log-in-app-message-button-click.js";
|
|
4
|
-
import { toRgba as
|
|
5
|
-
import { addPassiveEventListener as
|
|
6
|
-
import { KeyCodes as
|
|
7
|
-
const
|
|
8
|
-
|
|
4
|
+
import { toRgba as le } from "../../util/color-utils.js";
|
|
5
|
+
import { addPassiveEventListener as J } from "../../util/dom-utils.js";
|
|
6
|
+
import { KeyCodes as bt } from "../../util/key-codes.js";
|
|
7
|
+
const ce = {
|
|
8
|
+
ho: (t) => {
|
|
9
9
|
const o = t.querySelectorAll(
|
|
10
10
|
".ab-close-button, .ab-message-text, .ab-message-button",
|
|
11
11
|
);
|
|
@@ -16,7 +16,7 @@ const le = {
|
|
|
16
16
|
s = o[o.length - 1];
|
|
17
17
|
t.addEventListener("keydown", (o) => {
|
|
18
18
|
const a = document.activeElement;
|
|
19
|
-
o.keyCode ===
|
|
19
|
+
o.keyCode === bt.yo &&
|
|
20
20
|
(o.shiftKey || (a !== s && a !== t)
|
|
21
21
|
? !o.shiftKey ||
|
|
22
22
|
(a !== e && a !== t) ||
|
|
@@ -25,23 +25,23 @@ const le = {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
-
|
|
28
|
+
jo: (t, o) => {
|
|
29
29
|
o.setAttribute("role", "dialog"),
|
|
30
30
|
o.setAttribute("aria-modal", "true"),
|
|
31
31
|
o.setAttribute("aria-label", "Modal Message"),
|
|
32
32
|
t && o.setAttribute("aria-labelledby", t);
|
|
33
33
|
},
|
|
34
|
-
|
|
34
|
+
fo: (t, o, e, s) => {
|
|
35
35
|
if (t.buttons && t.buttons.length > 0) {
|
|
36
36
|
const a = document.createElement("div");
|
|
37
37
|
(a.className = "ab-message-buttons"), e.appendChild(a);
|
|
38
38
|
const l = e.getElementsByClassName("ab-message-text")[0];
|
|
39
39
|
null != l && (l.className += " ab-with-buttons");
|
|
40
40
|
const n = (a) => (l) => (
|
|
41
|
-
t.
|
|
41
|
+
t.ll(e, () => {
|
|
42
42
|
logInAppMessageButtonClick(a, t),
|
|
43
43
|
a.clickAction === InAppMessage.ClickAction.URI
|
|
44
|
-
?
|
|
44
|
+
? F(
|
|
45
45
|
a.uri || "",
|
|
46
46
|
s || t.openTarget === InAppMessage.OpenTarget.BLANK,
|
|
47
47
|
l,
|
|
@@ -56,18 +56,18 @@ const le = {
|
|
|
56
56
|
s = document.createElement("button");
|
|
57
57
|
(s.className = "ab-message-button"),
|
|
58
58
|
s.setAttribute("type", "button"),
|
|
59
|
-
|
|
59
|
+
J(s, "touchstart");
|
|
60
60
|
let l = e.text;
|
|
61
61
|
"" === e.text && (l = " "),
|
|
62
62
|
s.appendChild(document.createTextNode(l)),
|
|
63
|
-
t.
|
|
64
|
-
((s.style.backgroundColor =
|
|
65
|
-
(s.style.color =
|
|
66
|
-
(s.style.borderColor =
|
|
63
|
+
t.Oe() ||
|
|
64
|
+
((s.style.backgroundColor = le(e.backgroundColor)),
|
|
65
|
+
(s.style.color = le(e.textColor)),
|
|
66
|
+
(s.style.borderColor = le(e.borderColor))),
|
|
67
67
|
(s.onclick = n(e)),
|
|
68
68
|
a.appendChild(s);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
};
|
|
73
|
-
export default
|
|
73
|
+
export default ce;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from "../managers/braze-instance.js";
|
|
2
2
|
import se from "./in-app-message-manager-factory.js";
|
|
3
3
|
export function getDeferredInAppMessage() {
|
|
4
|
-
if (
|
|
4
|
+
if (r.rr()) return se.ea().Ar();
|
|
5
5
|
}
|
|
@@ -5,7 +5,7 @@ import HtmlMessage from "./models/html-message.js";
|
|
|
5
5
|
import InAppMessageButton from "./models/in-app-message-button.js";
|
|
6
6
|
import ModalMessage from "./models/modal-message.js";
|
|
7
7
|
import SlideUpMessage from "./models/slide-up-message.js";
|
|
8
|
-
import { logger as
|
|
8
|
+
import { logger as N } from "../../shared-lib/index.js";
|
|
9
9
|
export function newInAppMessageFromJson(e) {
|
|
10
10
|
if (!e) return null;
|
|
11
11
|
if (e.is_control) return ControlMessage.fromJson(e);
|
|
@@ -13,44 +13,45 @@ export function newInAppMessageFromJson(e) {
|
|
|
13
13
|
null != o && (o = o.toUpperCase());
|
|
14
14
|
const s = e.message,
|
|
15
15
|
n = e.text_align_message,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
let
|
|
38
|
-
null ==
|
|
39
|
-
for (let e = 0; e <
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
let
|
|
45
|
-
|
|
46
|
-
(null !=
|
|
47
|
-
((
|
|
48
|
-
const
|
|
49
|
-
let
|
|
50
|
-
if (o === ModalMessage.
|
|
51
|
-
|
|
16
|
+
r = e.slide_from,
|
|
17
|
+
t = e.extras,
|
|
18
|
+
m = e.trigger_id,
|
|
19
|
+
l = e.click_action,
|
|
20
|
+
i = e.uri,
|
|
21
|
+
f = e.open_target,
|
|
22
|
+
p = e.message_close,
|
|
23
|
+
u = e.duration,
|
|
24
|
+
a = e.icon,
|
|
25
|
+
d = e.image_url,
|
|
26
|
+
g = e.image_style,
|
|
27
|
+
c = e.icon_color,
|
|
28
|
+
j = e.icon_bg_color,
|
|
29
|
+
w = e.bg_color,
|
|
30
|
+
b = e.text_color,
|
|
31
|
+
h = e.close_btn_color,
|
|
32
|
+
v = e.header,
|
|
33
|
+
x = e.text_align_header,
|
|
34
|
+
I = e.header_text_color,
|
|
35
|
+
A = e.frame_color,
|
|
36
|
+
F = [];
|
|
37
|
+
let M = e.btns;
|
|
38
|
+
null == M && (M = []);
|
|
39
|
+
for (let e = 0; e < M.length; e++) F.push(InAppMessageButton.fromJson(M[e]));
|
|
40
|
+
const k = e.crop_type,
|
|
41
|
+
y = e.orientation,
|
|
42
|
+
z = e.animate_in,
|
|
43
|
+
J = e.animate_out;
|
|
44
|
+
let S = e.html_id,
|
|
45
|
+
q = e.css;
|
|
46
|
+
(null != S && "" !== S && null != q && "" !== q) ||
|
|
47
|
+
((S = void 0), (q = void 0));
|
|
48
|
+
const B = e.message_extras;
|
|
49
|
+
let C;
|
|
50
|
+
if (o === ModalMessage.Dt || o === InAppMessage.Qe.xo)
|
|
51
|
+
C = new ModalMessage(
|
|
52
52
|
s,
|
|
53
53
|
n,
|
|
54
|
+
t,
|
|
54
55
|
m,
|
|
55
56
|
l,
|
|
56
57
|
i,
|
|
@@ -65,23 +66,23 @@ export function newInAppMessageFromJson(e) {
|
|
|
65
66
|
w,
|
|
66
67
|
b,
|
|
67
68
|
h,
|
|
68
|
-
|
|
69
|
+
z,
|
|
69
70
|
J,
|
|
70
|
-
|
|
71
|
+
v,
|
|
71
72
|
x,
|
|
72
73
|
I,
|
|
73
74
|
A,
|
|
74
75
|
F,
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
k,
|
|
77
|
+
S,
|
|
77
78
|
q,
|
|
78
79
|
B,
|
|
79
|
-
C,
|
|
80
80
|
);
|
|
81
|
-
else if (o === FullScreenMessage.
|
|
82
|
-
|
|
81
|
+
else if (o === FullScreenMessage.Dt)
|
|
82
|
+
C = new FullScreenMessage(
|
|
83
83
|
s,
|
|
84
84
|
n,
|
|
85
|
+
t,
|
|
85
86
|
m,
|
|
86
87
|
l,
|
|
87
88
|
i,
|
|
@@ -96,24 +97,24 @@ export function newInAppMessageFromJson(e) {
|
|
|
96
97
|
w,
|
|
97
98
|
b,
|
|
98
99
|
h,
|
|
99
|
-
|
|
100
|
+
z,
|
|
100
101
|
J,
|
|
101
|
-
|
|
102
|
+
v,
|
|
102
103
|
x,
|
|
103
104
|
I,
|
|
104
105
|
A,
|
|
105
106
|
F,
|
|
106
|
-
|
|
107
|
+
k,
|
|
107
108
|
y,
|
|
108
|
-
|
|
109
|
+
S,
|
|
109
110
|
q,
|
|
110
111
|
B,
|
|
111
|
-
C,
|
|
112
112
|
);
|
|
113
|
-
else if (o === SlideUpMessage.
|
|
114
|
-
|
|
113
|
+
else if (o === SlideUpMessage.Dt)
|
|
114
|
+
C = new SlideUpMessage(
|
|
115
115
|
s,
|
|
116
116
|
n,
|
|
117
|
+
r,
|
|
117
118
|
t,
|
|
118
119
|
m,
|
|
119
120
|
l,
|
|
@@ -123,32 +124,31 @@ export function newInAppMessageFromJson(e) {
|
|
|
123
124
|
u,
|
|
124
125
|
a,
|
|
125
126
|
d,
|
|
126
|
-
|
|
127
|
+
c,
|
|
127
128
|
j,
|
|
128
129
|
w,
|
|
129
130
|
b,
|
|
130
131
|
h,
|
|
131
|
-
|
|
132
|
+
z,
|
|
132
133
|
J,
|
|
133
134
|
S,
|
|
134
135
|
q,
|
|
135
136
|
B,
|
|
136
|
-
C,
|
|
137
137
|
);
|
|
138
138
|
else {
|
|
139
139
|
if (
|
|
140
|
-
o !== HtmlMessage.
|
|
141
|
-
o !== InAppMessage.
|
|
142
|
-
o !== InAppMessage.
|
|
140
|
+
o !== HtmlMessage.Dt &&
|
|
141
|
+
o !== InAppMessage.Qe.Le &&
|
|
142
|
+
o !== InAppMessage.Qe.Io
|
|
143
143
|
)
|
|
144
|
-
return void
|
|
144
|
+
return void N.error("Ignoring message with unknown type " + o);
|
|
145
145
|
{
|
|
146
146
|
const o = e.message_fields;
|
|
147
|
-
(
|
|
148
|
-
(
|
|
147
|
+
(C = new HtmlMessage(s, t, m, p, u, z, J, A, S, q, o, B)),
|
|
148
|
+
(C.trusted = e.trusted || !1);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
return (
|
|
151
|
+
return (C.Ke = o), C;
|
|
152
152
|
}
|
|
153
153
|
export function buttonsFromSerializedInAppMessage(e) {
|
|
154
154
|
const o = [];
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import ea from "./in-app-message-manager.js";
|
|
2
|
+
import r from "../managers/braze-instance.js";
|
|
3
3
|
const se = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
se.
|
|
4
|
+
aa: null,
|
|
5
|
+
l: !1,
|
|
6
|
+
ea: () => (
|
|
7
|
+
se.p(), se.aa || (se.aa = new ea(r.g(), r.P(), r.j(), r.tr())), se.aa
|
|
8
8
|
),
|
|
9
|
-
|
|
10
|
-
se.
|
|
9
|
+
p: () => {
|
|
10
|
+
se.l || (r.h(se), (se.l = !0));
|
|
11
11
|
},
|
|
12
12
|
destroy: () => {
|
|
13
|
-
(se.
|
|
13
|
+
(se.aa = null), (se.l = !1);
|
|
14
14
|
},
|
|
15
15
|
};
|
|
16
16
|
export default se;
|