@braze/web-sdk 4.10.1 → 4.10.2
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 +9 -9
- package/package.json +1 -1
- package/shared-lib/braze-shared-lib.js +8 -1
- package/shared-lib/encoding-utils.js +12 -1
- package/shared-lib/event-types.js +34 -1
- package/shared-lib/guid.js +10 -1
- package/shared-lib/index.js +6 -0
- package/shared-lib/indexed-db-adapter.js +352 -1
- package/shared-lib/logger.js +38 -1
- package/shared-lib/supported-options.js +27 -1
- package/shared-lib/types.js +1 -1
- package/src/Card/card-manager-factory.js +14 -1
- package/src/Card/card-manager.js +78 -1
- package/src/Card/display/card-display.js +138 -1
- package/src/Card/index.js +6 -1
- package/src/Card/log-card-click.js +11 -1
- package/src/Card/log-card-dismissal.js +11 -1
- package/src/Card/log-card-impressions.js +13 -1
- package/src/Card/log-content-card-click.js +4 -1
- package/src/Card/log-content-card-impressions.js +4 -1
- package/src/Card/models/banner.js +31 -1
- package/src/Card/models/captioned-image.js +33 -1
- package/src/Card/models/card.js +196 -1
- package/src/Card/models/classic-card.js +32 -1
- package/src/Card/models/control-card.js +23 -1
- package/src/Card/models/image-only.js +32 -1
- package/src/Card/models/index.js +6 -1
- package/src/Card/types.js +1 -1
- package/src/Card/util/card-factory.js +104 -1
- package/src/ContentCards/content-cards-provider-factory.js +20 -1
- package/src/ContentCards/content-cards-provider.js +391 -1
- package/src/ContentCards/content-cards.js +24 -1
- package/src/ContentCards/get-cached-content-cards.js +5 -1
- package/src/ContentCards/index.js +8 -1
- package/src/ContentCards/log-content-cards-displayed.js +5 -1
- package/src/ContentCards/request-content-cards-refresh.js +5 -1
- package/src/ContentCards/subscribe-to-content-cards-updates.js +17 -1
- package/src/ContentCards/types.js +1 -1
- package/src/ContentCards/ui/hide-content-cards.js +8 -1
- package/src/ContentCards/ui/show-content-cards.js +77 -1
- package/src/ContentCards/ui/toggle-content-cards.js +8 -1
- package/src/Core/add-sdk-metadata.js +26 -1
- package/src/Core/braze-sdk-metadata.js +10 -1
- package/src/Core/change-user.js +17 -1
- package/src/Core/destroy.js +5 -1
- package/src/Core/device-properties.js +9 -1
- package/src/Core/disable-sdk.js +15 -1
- package/src/Core/enable-sdk.js +11 -1
- package/src/Core/get-device-id.js +13 -1
- package/src/Core/get-user.js +4 -1
- package/src/Core/handle-braze-action.js +87 -1
- package/src/Core/index.js +23 -1
- package/src/Core/initialize.js +4 -1
- package/src/Core/is-disabled.js +4 -1
- package/src/Core/log-custom-event.js +38 -1
- package/src/Core/log-purchase.js +245 -1
- package/src/Core/open-session.js +25 -1
- package/src/Core/remove-all-subscriptions.js +4 -1
- package/src/Core/remove-subscription.js +4 -1
- package/src/Core/request-immediate-data-flush.js +6 -1
- package/src/Core/set-logger.js +4 -1
- package/src/Core/set-sdk-authentication-signature.js +8 -1
- package/src/Core/subscribe-to-sdk-authentication-failures.js +6 -1
- package/src/Core/toggle-logging.js +4 -1
- package/src/Core/types.js +1 -1
- package/src/Core/wipe-data.js +16 -1
- package/src/FeatureFlags/feature-flag-factory.js +24 -1
- package/src/FeatureFlags/feature-flag.js +64 -1
- package/src/FeatureFlags/feature-flags-provider-factory.js +19 -1
- package/src/FeatureFlags/feature-flags-provider.js +145 -1
- package/src/FeatureFlags/get-all-feature-flags.js +12 -1
- package/src/FeatureFlags/get-feature-flag.js +12 -1
- package/src/FeatureFlags/index.js +6 -1
- package/src/FeatureFlags/log-feature-flag-impression.js +23 -1
- package/src/FeatureFlags/refresh-feature-flags.js +9 -1
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +9 -1
- package/src/FeatureFlags/types.js +1 -1
- package/src/Feed/feed-provider-factory.js +18 -1
- package/src/Feed/feed-provider.js +90 -1
- package/src/Feed/feed.js +20 -1
- package/src/Feed/get-cached-feed.js +5 -1
- package/src/Feed/index.js +8 -1
- package/src/Feed/log-feed-displayed.js +7 -1
- package/src/Feed/request-feed-refresh.js +5 -1
- package/src/Feed/subscribe-to-feed-updates.js +5 -1
- package/src/Feed/types.js +1 -1
- package/src/Feed/ui/hide-feed.js +7 -1
- package/src/Feed/ui/show-feed.js +96 -1
- package/src/Feed/ui/toggle-feed.js +8 -1
- package/src/InAppMessage/defer-in-app-message.js +13 -1
- package/src/InAppMessage/display/get-animation-effect.js +19 -1
- package/src/InAppMessage/display/html-message-to-html.js +244 -1
- package/src/InAppMessage/display/in-app-message-to-html.js +188 -1
- package/src/InAppMessage/display/modal-utils.js +73 -1
- package/src/InAppMessage/get-deferred-in-app-message.js +5 -1
- package/src/InAppMessage/in-app-message-factory.js +166 -1
- package/src/InAppMessage/in-app-message-manager-factory.js +16 -1
- package/src/InAppMessage/in-app-message-manager.js +248 -1
- package/src/InAppMessage/index.js +16 -1
- package/src/InAppMessage/log-in-app-message-button-click.js +27 -1
- package/src/InAppMessage/log-in-app-message-click.js +19 -1
- package/src/InAppMessage/log-in-app-message-html-click.js +23 -1
- package/src/InAppMessage/log-in-app-message-impression.js +13 -1
- package/src/InAppMessage/models/control-message.js +11 -1
- package/src/InAppMessage/models/full-screen-message.js +105 -1
- package/src/InAppMessage/models/html-message.js +68 -1
- package/src/InAppMessage/models/in-app-message-button.js +47 -1
- package/src/InAppMessage/models/in-app-message.js +382 -1
- package/src/InAppMessage/models/modal-message.js +101 -1
- package/src/InAppMessage/models/slide-up-message.js +84 -1
- package/src/InAppMessage/models/templated-in-app-message.js +19 -1
- package/src/InAppMessage/subscribe-to-in-app-message.js +10 -1
- package/src/InAppMessage/types.js +1 -1
- package/src/InAppMessage/ui/automatically-show-in-app-messages.js +15 -1
- package/src/InAppMessage/ui/show-in-app-message.js +181 -1
- package/src/InAppMessage/utils/in-app-message-utils.js +1 -1
- package/src/Push/index.js +5 -1
- package/src/Push/is-push-blocked.js +5 -1
- package/src/Push/is-push-permission-granted.js +5 -1
- package/src/Push/is-push-supported.js +5 -1
- package/src/Push/push-manager-factory.js +30 -1
- package/src/Push/push-manager.js +387 -1
- package/src/Push/request-push-permission.js +9 -1
- package/src/Push/types.js +1 -1
- package/src/Push/unregister-push.js +5 -1
- package/src/Push/utils/push-utils.js +36 -1
- package/src/User/index.js +1 -1
- package/src/User/types.js +1 -1
- package/src/User/user-manager.js +73 -1
- package/src/User/user.js +302 -1
- package/src/common/base-feed.js +28 -1
- package/src/common/base-provider.js +6 -1
- package/src/common/constants.js +14 -1
- package/src/common/event-logger.js +31 -1
- package/src/common/feed-display.js +210 -1
- package/src/common/translations.js +148 -1
- package/src/common/types.js +1 -1
- package/src/index.js +9 -1
- package/src/l10n/l10n-manager-factory.js +22 -1
- package/src/l10n/l10n-manager.js +25 -1
- package/src/l10n/types.js +1 -1
- package/src/managers/auth-manager.js +51 -1
- package/src/managers/braze-instance.js +331 -1
- package/src/managers/device-manager.js +85 -1
- package/src/managers/network-manager.js +256 -1
- package/src/managers/server-config-manager.js +108 -1
- package/src/managers/session-manager.js +75 -1
- package/src/managers/storage-manager-factory.js +42 -1
- package/src/managers/storage-manager.js +419 -1
- package/src/managers/subscription-manager.js +28 -1
- package/src/managers/types.js +1 -1
- package/src/models/backend-errors.js +8 -1
- package/src/models/braze-event.js +47 -1
- package/src/models/braze-sdk-metadata.js +10 -1
- package/src/models/device.js +18 -1
- package/src/models/identifier.js +19 -1
- package/src/models/push-token.js +27 -1
- package/src/models/request-result.js +8 -1
- package/src/models/server-config.js +48 -1
- package/src/models/types.js +1 -1
- package/src/request-controller.js +311 -1
- package/src/triggers/models/custom-event-data.js +14 -1
- package/src/triggers/models/custom-event-property-data.js +21 -1
- package/src/triggers/models/filter-set.js +55 -1
- package/src/triggers/models/filter.js +102 -1
- package/src/triggers/models/in-app-message-click-data.js +25 -1
- package/src/triggers/models/purchase-data.js +14 -1
- package/src/triggers/models/purchase-property-data.js +21 -1
- package/src/triggers/models/push-click-data.js +15 -1
- package/src/triggers/models/trigger-condition.js +105 -1
- package/src/triggers/models/trigger-events.js +8 -1
- package/src/triggers/models/trigger.js +122 -1
- package/src/triggers/triggers-provider-factory.js +34 -1
- package/src/triggers/triggers-provider.js +326 -1
- package/src/triggers/types.js +1 -1
- package/src/types.js +1 -1
- package/src/ui/js/attach-css.js +13 -1
- package/src/ui/js/feed-css.js +12 -1
- package/src/ui/js/iam-css.js +12 -1
- package/src/ui/js/index.js +3 -1
- package/src/ui/js/load-font-awesome.js +13 -1
- package/src/util/base-device-parser.js +14 -1
- package/src/util/braze-actions.js +84 -1
- package/src/util/browser-detector.js +84 -1
- package/src/util/client-hints-parser.js +66 -1
- package/src/util/code-utils.js +100 -1
- package/src/util/color-utils.js +29 -1
- package/src/util/component-utils.js +26 -1
- package/src/util/date-utils.js +28 -1
- package/src/util/deprecation-utils.js +5 -1
- package/src/util/device-constants.js +14 -1
- package/src/util/dom-utils.js +91 -1
- package/src/util/error-utils.js +2 -1
- package/src/util/key-codes.js +1 -1
- package/src/util/math.js +5 -1
- package/src/util/net.js +71 -1
- package/src/util/request-header-utils.js +46 -1
- package/src/util/string-utils.js +22 -1
- package/src/util/types.js +1 -1
- package/src/util/url-utils.js +20 -1
- package/src/util/user-agent-parser.js +85 -1
- package/src/util/validation-utils.js +217 -1
- package/src/util/window-utils.js +34 -1
|
@@ -1 +1,73 @@
|
|
|
1
|
-
import InAppMessage from"../models/in-app-message.js";
|
|
1
|
+
import InAppMessage from "../models/in-app-message.js";
|
|
2
|
+
import { _handleBrazeAction as m } from "../../Core/handle-braze-action.js";
|
|
3
|
+
import { logInAppMessageButtonClick } from "../log-in-app-message-button-click.js";
|
|
4
|
+
import { toRgba as le } from "../../util/color-utils.js";
|
|
5
|
+
import { addPassiveEventListener as oe } from "../../util/dom-utils.js";
|
|
6
|
+
import { KeyCodes as lt } from "../../util/key-codes.js";
|
|
7
|
+
const ce = {
|
|
8
|
+
Je: (t) => {
|
|
9
|
+
const o = t.querySelectorAll(
|
|
10
|
+
".ab-close-button, .ab-message-text, .ab-message-button",
|
|
11
|
+
);
|
|
12
|
+
let e;
|
|
13
|
+
for (let t = 0; t < o.length; t++) (e = o[t]), (e.tabIndex = 0);
|
|
14
|
+
if (o.length > 0) {
|
|
15
|
+
const e = o[0],
|
|
16
|
+
s = o[o.length - 1];
|
|
17
|
+
t.addEventListener("keydown", (o) => {
|
|
18
|
+
const a = document.activeElement;
|
|
19
|
+
o.keyCode === lt.oo &&
|
|
20
|
+
(o.shiftKey || (a !== s && a !== t)
|
|
21
|
+
? !o.shiftKey ||
|
|
22
|
+
(a !== e && a !== t) ||
|
|
23
|
+
(o.preventDefault(), s.focus())
|
|
24
|
+
: (o.preventDefault(), e.focus()));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
Ke: (t, o) => {
|
|
29
|
+
o.setAttribute("role", "dialog"),
|
|
30
|
+
o.setAttribute("aria-modal", "true"),
|
|
31
|
+
o.setAttribute("aria-label", "Modal Message"),
|
|
32
|
+
t && o.setAttribute("aria-labelledby", t);
|
|
33
|
+
},
|
|
34
|
+
He: (t, o, e, s) => {
|
|
35
|
+
if (t.buttons && t.buttons.length > 0) {
|
|
36
|
+
const a = document.createElement("div");
|
|
37
|
+
(a.className = "ab-message-buttons"), e.appendChild(a);
|
|
38
|
+
const l = e.getElementsByClassName("ab-message-text")[0];
|
|
39
|
+
null != l && (l.className += " ab-with-buttons");
|
|
40
|
+
const n = (a) => (l) => (
|
|
41
|
+
t.ye(e, () => {
|
|
42
|
+
logInAppMessageButtonClick(a, t),
|
|
43
|
+
a.clickAction === InAppMessage.ClickAction.URI
|
|
44
|
+
? m(
|
|
45
|
+
a.uri || "",
|
|
46
|
+
s || t.openTarget === InAppMessage.OpenTarget.BLANK,
|
|
47
|
+
l,
|
|
48
|
+
)
|
|
49
|
+
: a.clickAction === InAppMessage.ClickAction.NEWS_FEED && o();
|
|
50
|
+
}),
|
|
51
|
+
l.stopPropagation(),
|
|
52
|
+
!1
|
|
53
|
+
);
|
|
54
|
+
for (let o = 0; o < t.buttons.length; o++) {
|
|
55
|
+
const e = t.buttons[o],
|
|
56
|
+
s = document.createElement("button");
|
|
57
|
+
(s.className = "ab-message-button"),
|
|
58
|
+
s.setAttribute("type", "button"),
|
|
59
|
+
oe(s, "touchstart");
|
|
60
|
+
let l = e.text;
|
|
61
|
+
"" === e.text && (l = " "),
|
|
62
|
+
s.appendChild(document.createTextNode(l)),
|
|
63
|
+
t.Ae() ||
|
|
64
|
+
((s.style.backgroundColor = le(e.backgroundColor)),
|
|
65
|
+
(s.style.color = le(e.textColor)),
|
|
66
|
+
(s.style.borderColor = le(e.borderColor))),
|
|
67
|
+
(s.onclick = n(e)),
|
|
68
|
+
a.appendChild(s);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
export default ce;
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
import e from"../managers/braze-instance.js";
|
|
1
|
+
import e from "../managers/braze-instance.js";
|
|
2
|
+
import se from "./in-app-message-manager-factory.js";
|
|
3
|
+
export function getDeferredInAppMessage() {
|
|
4
|
+
if (e.rr()) return se.m().Re();
|
|
5
|
+
}
|
|
@@ -1 +1,166 @@
|
|
|
1
|
-
import InAppMessage from
|
|
1
|
+
import InAppMessage from "./models/in-app-message.js";
|
|
2
|
+
import ControlMessage from "./models/control-message.js";
|
|
3
|
+
import FullScreenMessage from "./models/full-screen-message.js";
|
|
4
|
+
import HtmlMessage from "./models/html-message.js";
|
|
5
|
+
import InAppMessageButton from "./models/in-app-message-button.js";
|
|
6
|
+
import ModalMessage from "./models/modal-message.js";
|
|
7
|
+
import SlideUpMessage from "./models/slide-up-message.js";
|
|
8
|
+
import r from "../../shared-lib/braze-shared-lib.js";
|
|
9
|
+
export function newInAppMessageFromJson(e) {
|
|
10
|
+
if (!e) return null;
|
|
11
|
+
if (e.is_control) return ControlMessage.fromJson(e);
|
|
12
|
+
let s = e.type;
|
|
13
|
+
null != s && (s = s.toUpperCase());
|
|
14
|
+
const o = e.message,
|
|
15
|
+
n = e.text_align_message,
|
|
16
|
+
m = e.slide_from,
|
|
17
|
+
t = e.extras,
|
|
18
|
+
l = e.trigger_id,
|
|
19
|
+
i = e.click_action,
|
|
20
|
+
f = e.uri,
|
|
21
|
+
p = e.open_target,
|
|
22
|
+
a = e.message_close,
|
|
23
|
+
u = e.duration,
|
|
24
|
+
d = e.icon,
|
|
25
|
+
g = e.image_url,
|
|
26
|
+
c = e.image_style,
|
|
27
|
+
j = e.icon_color,
|
|
28
|
+
w = e.icon_bg_color,
|
|
29
|
+
b = e.bg_color,
|
|
30
|
+
h = e.text_color,
|
|
31
|
+
v = e.close_btn_color,
|
|
32
|
+
I = e.header,
|
|
33
|
+
x = e.text_align_header,
|
|
34
|
+
z = 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
|
+
J = e.animate_in,
|
|
43
|
+
S = e.animate_out;
|
|
44
|
+
let q,
|
|
45
|
+
B = e.html_id,
|
|
46
|
+
C = e.css;
|
|
47
|
+
if (
|
|
48
|
+
((null != B && "" !== B && null != C && "" !== C) ||
|
|
49
|
+
((B = void 0), (C = void 0)),
|
|
50
|
+
s === ModalMessage.es || s === InAppMessage.qe.Se)
|
|
51
|
+
)
|
|
52
|
+
q = new ModalMessage(
|
|
53
|
+
o,
|
|
54
|
+
n,
|
|
55
|
+
t,
|
|
56
|
+
l,
|
|
57
|
+
i,
|
|
58
|
+
f,
|
|
59
|
+
p,
|
|
60
|
+
a,
|
|
61
|
+
u,
|
|
62
|
+
d,
|
|
63
|
+
g,
|
|
64
|
+
c,
|
|
65
|
+
j,
|
|
66
|
+
w,
|
|
67
|
+
b,
|
|
68
|
+
h,
|
|
69
|
+
v,
|
|
70
|
+
J,
|
|
71
|
+
S,
|
|
72
|
+
I,
|
|
73
|
+
x,
|
|
74
|
+
z,
|
|
75
|
+
A,
|
|
76
|
+
F,
|
|
77
|
+
k,
|
|
78
|
+
B,
|
|
79
|
+
C,
|
|
80
|
+
);
|
|
81
|
+
else if (s === FullScreenMessage.es)
|
|
82
|
+
q = new FullScreenMessage(
|
|
83
|
+
o,
|
|
84
|
+
n,
|
|
85
|
+
t,
|
|
86
|
+
l,
|
|
87
|
+
i,
|
|
88
|
+
f,
|
|
89
|
+
p,
|
|
90
|
+
a,
|
|
91
|
+
u,
|
|
92
|
+
d,
|
|
93
|
+
g,
|
|
94
|
+
c,
|
|
95
|
+
j,
|
|
96
|
+
w,
|
|
97
|
+
b,
|
|
98
|
+
h,
|
|
99
|
+
v,
|
|
100
|
+
J,
|
|
101
|
+
S,
|
|
102
|
+
I,
|
|
103
|
+
x,
|
|
104
|
+
z,
|
|
105
|
+
A,
|
|
106
|
+
F,
|
|
107
|
+
k,
|
|
108
|
+
y,
|
|
109
|
+
B,
|
|
110
|
+
C,
|
|
111
|
+
);
|
|
112
|
+
else if (s === SlideUpMessage.es)
|
|
113
|
+
q = new SlideUpMessage(
|
|
114
|
+
o,
|
|
115
|
+
n,
|
|
116
|
+
m,
|
|
117
|
+
t,
|
|
118
|
+
l,
|
|
119
|
+
i,
|
|
120
|
+
f,
|
|
121
|
+
p,
|
|
122
|
+
a,
|
|
123
|
+
u,
|
|
124
|
+
d,
|
|
125
|
+
g,
|
|
126
|
+
j,
|
|
127
|
+
w,
|
|
128
|
+
b,
|
|
129
|
+
h,
|
|
130
|
+
v,
|
|
131
|
+
J,
|
|
132
|
+
S,
|
|
133
|
+
B,
|
|
134
|
+
C,
|
|
135
|
+
);
|
|
136
|
+
else {
|
|
137
|
+
if (
|
|
138
|
+
s !== HtmlMessage.es &&
|
|
139
|
+
s !== InAppMessage.qe.Ee &&
|
|
140
|
+
s !== InAppMessage.qe.Ue
|
|
141
|
+
)
|
|
142
|
+
return void r.j.error("Ignoring message with unknown type " + s);
|
|
143
|
+
{
|
|
144
|
+
const s = e.message_fields;
|
|
145
|
+
(q = new HtmlMessage(o, t, l, a, u, J, S, A, B, C, s)),
|
|
146
|
+
(q.trusted = e.trusted || !1);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return (q.Pe = s), q;
|
|
150
|
+
}
|
|
151
|
+
export function buttonsFromSerializedInAppMessage(e) {
|
|
152
|
+
const s = [];
|
|
153
|
+
for (const o of e)
|
|
154
|
+
s.push(
|
|
155
|
+
new InAppMessageButton(
|
|
156
|
+
o.text,
|
|
157
|
+
o.backgroundColor,
|
|
158
|
+
o.textColor,
|
|
159
|
+
o.borderColor,
|
|
160
|
+
o.clickAction,
|
|
161
|
+
o.uri,
|
|
162
|
+
o.id,
|
|
163
|
+
),
|
|
164
|
+
);
|
|
165
|
+
return s;
|
|
166
|
+
}
|
|
@@ -1 +1,16 @@
|
|
|
1
|
-
import aa from"./in-app-message-manager.js";
|
|
1
|
+
import aa from "./in-app-message-manager.js";
|
|
2
|
+
import e from "../managers/braze-instance.js";
|
|
3
|
+
const se = {
|
|
4
|
+
i: null,
|
|
5
|
+
t: !1,
|
|
6
|
+
m: () => (
|
|
7
|
+
se.o(), se.i || (se.i = new aa(e.ar(), e.aa(), e.l(), e.ir())), se.i
|
|
8
|
+
),
|
|
9
|
+
o: () => {
|
|
10
|
+
se.t || (e.g(se), (se.t = !0));
|
|
11
|
+
},
|
|
12
|
+
destroy: () => {
|
|
13
|
+
(se.i = null), (se.t = !1);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
export default se;
|
|
@@ -1 +1,248 @@
|
|
|
1
|
-
import C from"../util/net.js";
|
|
1
|
+
import C from "../util/net.js";
|
|
2
|
+
import e from "../managers/braze-instance.js";
|
|
3
|
+
import ControlMessage from "./models/control-message.js";
|
|
4
|
+
import HtmlMessage from "./models/html-message.js";
|
|
5
|
+
import InAppMessage from "./models/in-app-message.js";
|
|
6
|
+
import InAppMessageButton from "./models/in-app-message-button.js";
|
|
7
|
+
import s from "../common/event-logger.js";
|
|
8
|
+
import { newInAppMessageFromJson as pt } from "./in-app-message-factory.js";
|
|
9
|
+
import { randomInclusive as D } from "../util/math.js";
|
|
10
|
+
import t from "../models/request-result.js";
|
|
11
|
+
import r from "../../shared-lib/braze-shared-lib.js";
|
|
12
|
+
import E from "../managers/subscription-manager.js";
|
|
13
|
+
import mt from "../triggers/models/trigger.js";
|
|
14
|
+
import { validateValueIsFromEnum as H } from "../util/code-utils.js";
|
|
15
|
+
import { BRAZE_ACTION_URI_REGEX as X } from "../util/validation-utils.js";
|
|
16
|
+
import {
|
|
17
|
+
containsPushPrimerBrazeAction as gt,
|
|
18
|
+
containsUnknownBrazeAction as ft,
|
|
19
|
+
getDecodedBrazeAction as Q,
|
|
20
|
+
ineligibleBrazeActionURLErrorMessage as dt,
|
|
21
|
+
INELIGIBLE_BRAZE_ACTION_URL_ERROR_TYPES as vt,
|
|
22
|
+
} from "../util/braze-actions.js";
|
|
23
|
+
import jt from "../Push/utils/push-utils.js";
|
|
24
|
+
import T from "../util/request-header-utils.js";
|
|
25
|
+
import { STORAGE_KEYS as i } from "../managers/storage-manager.js";
|
|
26
|
+
import { FullScreenMessage, ModalMessage, SlideUpMessage } from "./index.js";
|
|
27
|
+
export default class aa {
|
|
28
|
+
constructor(t, s, i, r) {
|
|
29
|
+
(this.gt = t),
|
|
30
|
+
(this._e = s),
|
|
31
|
+
(this.u = i),
|
|
32
|
+
(this.ft = r),
|
|
33
|
+
(this.gt = t),
|
|
34
|
+
(this._e = s),
|
|
35
|
+
(this.u = i),
|
|
36
|
+
(this.ft = r),
|
|
37
|
+
(this.Ve = new E()),
|
|
38
|
+
e.jt(this.Ve),
|
|
39
|
+
(this.We = 1e3),
|
|
40
|
+
(this.Xe = 6e4),
|
|
41
|
+
(this.Ye = null);
|
|
42
|
+
}
|
|
43
|
+
Ze() {
|
|
44
|
+
return this.Ve;
|
|
45
|
+
}
|
|
46
|
+
_i(t) {
|
|
47
|
+
return this.Ve.lt(t);
|
|
48
|
+
}
|
|
49
|
+
Pi() {
|
|
50
|
+
return this.Ye;
|
|
51
|
+
}
|
|
52
|
+
Oi(t) {
|
|
53
|
+
this.Ye = t;
|
|
54
|
+
}
|
|
55
|
+
Ji(e, i) {
|
|
56
|
+
if (!e) return new t();
|
|
57
|
+
if (
|
|
58
|
+
!H(
|
|
59
|
+
InAppMessage.Ie,
|
|
60
|
+
i,
|
|
61
|
+
`${i} is not a valid in-app message display failure`,
|
|
62
|
+
"InAppMessage.DisplayFailures",
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
return new t();
|
|
66
|
+
const n = { trigger_ids: [e], error_code: i };
|
|
67
|
+
return s.N(r.q.Ki, n);
|
|
68
|
+
}
|
|
69
|
+
N(e, i, n, o) {
|
|
70
|
+
const a = new t();
|
|
71
|
+
let l;
|
|
72
|
+
if (e instanceof ControlMessage) l = { trigger_ids: [e.triggerId] };
|
|
73
|
+
else {
|
|
74
|
+
if (i === r.q.Li || (e instanceof HtmlMessage && i === r.q.Qi)) {
|
|
75
|
+
if (!e.p(o))
|
|
76
|
+
return (
|
|
77
|
+
r.j.info(
|
|
78
|
+
"This in-app message has already received a click. Ignoring analytics event.",
|
|
79
|
+
),
|
|
80
|
+
a
|
|
81
|
+
);
|
|
82
|
+
} else if (i === r.q.Vi) {
|
|
83
|
+
if (!e.M())
|
|
84
|
+
return (
|
|
85
|
+
r.j.info(
|
|
86
|
+
"This in-app message has already received an impression. Ignoring analytics event.",
|
|
87
|
+
),
|
|
88
|
+
a
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
l = this.Wi(e);
|
|
92
|
+
}
|
|
93
|
+
return null == l ? a : (null != n && (l.bid = n), s.N(i, l));
|
|
94
|
+
}
|
|
95
|
+
Xi(e, i) {
|
|
96
|
+
const n = new t();
|
|
97
|
+
if (!e.p())
|
|
98
|
+
return (
|
|
99
|
+
r.j.info(
|
|
100
|
+
"This in-app message button has already received a click. Ignoring analytics event.",
|
|
101
|
+
),
|
|
102
|
+
n
|
|
103
|
+
);
|
|
104
|
+
const o = this.Wi(i);
|
|
105
|
+
return null == o
|
|
106
|
+
? n
|
|
107
|
+
: e.id === InAppMessageButton.Yi
|
|
108
|
+
? (r.j.info(
|
|
109
|
+
"This in-app message button does not have a tracking id. Not logging event to Braze servers.",
|
|
110
|
+
),
|
|
111
|
+
n)
|
|
112
|
+
: (null != e.id && (o.bid = e.id), s.N(r.q.Qi, o));
|
|
113
|
+
}
|
|
114
|
+
Zi(t) {
|
|
115
|
+
const e = t.messageFields;
|
|
116
|
+
return (null != e && e.is_push_primer) || !1;
|
|
117
|
+
}
|
|
118
|
+
Mr(t) {
|
|
119
|
+
if (!(t instanceof InAppMessage)) return;
|
|
120
|
+
const e = (t) => {
|
|
121
|
+
if (!t) return;
|
|
122
|
+
const e = Q(t);
|
|
123
|
+
return ft(e)
|
|
124
|
+
? dt(vt._r, "In-App Message")
|
|
125
|
+
: gt(e) && !jt.Gr()
|
|
126
|
+
? dt(vt.Or, "In-App Message")
|
|
127
|
+
: void 0;
|
|
128
|
+
};
|
|
129
|
+
if (this.Zi(t) && !jt.Gr())
|
|
130
|
+
return "In-App Message contains a push prompt, but is not eligible for a push prompt. Ignoring.";
|
|
131
|
+
const s = t.buttons || [];
|
|
132
|
+
let i;
|
|
133
|
+
for (const t of s)
|
|
134
|
+
if (
|
|
135
|
+
t.clickAction === InAppMessage.ClickAction.URI &&
|
|
136
|
+
t.uri &&
|
|
137
|
+
X.test(t.uri) &&
|
|
138
|
+
((i = e(t.uri)), i)
|
|
139
|
+
)
|
|
140
|
+
return i;
|
|
141
|
+
return t.clickAction === InAppMessage.ClickAction.URI &&
|
|
142
|
+
t.uri &&
|
|
143
|
+
X.test(t.uri)
|
|
144
|
+
? e(t.uri)
|
|
145
|
+
: void 0;
|
|
146
|
+
}
|
|
147
|
+
Hr(t, e, s, i) {
|
|
148
|
+
if (!this.gt) return;
|
|
149
|
+
const n = this.gt.Jr(!1, !1),
|
|
150
|
+
o = this.gt.Bs(n);
|
|
151
|
+
(o.template = { trigger_id: t.triggerId, trigger_event_type: e }),
|
|
152
|
+
null != s && (o.template.data = s.Kr());
|
|
153
|
+
const a = this.gt.Hs(o, T.Os.Lr);
|
|
154
|
+
this.gt.Qs(o, () => {
|
|
155
|
+
this.gt &&
|
|
156
|
+
(T.Ws(this.u, T.Os.Lr, new Date().valueOf()),
|
|
157
|
+
C.Xs({
|
|
158
|
+
url: `${this.gt.Ys()}/template/`,
|
|
159
|
+
data: o,
|
|
160
|
+
headers: a,
|
|
161
|
+
O: (e) => {
|
|
162
|
+
if ((T.si(this.u, T.Os.Lr, 1), !this.gt.Zs(o, e, a)))
|
|
163
|
+
return (
|
|
164
|
+
this.Ji(t.triggerId, InAppMessage.Ie.Qr),
|
|
165
|
+
void ("function" == typeof t.Ur && t.Ur())
|
|
166
|
+
);
|
|
167
|
+
if ((this.gt.ti(), null == e || null == e.templated_message))
|
|
168
|
+
return void this.Ji(t.triggerId, InAppMessage.Ie.Qr);
|
|
169
|
+
const s = e.templated_message;
|
|
170
|
+
if (s.type !== mt.Wr.Vr)
|
|
171
|
+
return void this.Ji(t.triggerId, InAppMessage.Ie.Xr);
|
|
172
|
+
const i = pt(s.data);
|
|
173
|
+
if (null == i) return void this.Ji(t.triggerId, InAppMessage.Ie.Xr);
|
|
174
|
+
const n = this.Mr(i);
|
|
175
|
+
if (n)
|
|
176
|
+
return r.j.error(n), void ("function" == typeof t.Ur && t.Ur());
|
|
177
|
+
"function" == typeof t.Yr
|
|
178
|
+
? t.Yr(i)
|
|
179
|
+
: this.Ji(t.triggerId, InAppMessage.Ie.Qr);
|
|
180
|
+
},
|
|
181
|
+
error: (r) => {
|
|
182
|
+
let n = `getting user personalization for message ${t.triggerId}`;
|
|
183
|
+
if (new Date().valueOf() - t.Zr > t.sn)
|
|
184
|
+
this.Ji(t.triggerId, InAppMessage.Ie.Qr);
|
|
185
|
+
else {
|
|
186
|
+
T.hi(this.u, T.Os.Lr);
|
|
187
|
+
const r = Math.min(t.sn, this.Xe),
|
|
188
|
+
o = this.We;
|
|
189
|
+
null == i && (i = o);
|
|
190
|
+
const a = Math.min(r, D(o, 3 * i));
|
|
191
|
+
(n += `. Retrying in ${a} ms`),
|
|
192
|
+
setTimeout(() => {
|
|
193
|
+
this.Hr(t, e, s, a);
|
|
194
|
+
}, a);
|
|
195
|
+
}
|
|
196
|
+
this.gt.ii(r, n);
|
|
197
|
+
},
|
|
198
|
+
}));
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
Wi(t) {
|
|
202
|
+
if (null == t.triggerId)
|
|
203
|
+
return (
|
|
204
|
+
r.j.info(
|
|
205
|
+
"The in-app message has no analytics id. Not logging event to Braze servers.",
|
|
206
|
+
),
|
|
207
|
+
null
|
|
208
|
+
);
|
|
209
|
+
const e = {};
|
|
210
|
+
return null != t.triggerId && (e.trigger_ids = [t.triggerId]), e;
|
|
211
|
+
}
|
|
212
|
+
he(t) {
|
|
213
|
+
return (
|
|
214
|
+
!!this.u &&
|
|
215
|
+
!(
|
|
216
|
+
!(t && t instanceof InAppMessage && t.constructor !== InAppMessage) ||
|
|
217
|
+
t instanceof ControlMessage
|
|
218
|
+
) &&
|
|
219
|
+
this.u.D(i.k.rn, t.ss())
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
Re() {
|
|
223
|
+
if (!this.u) return null;
|
|
224
|
+
const t = this.u.v(i.k.rn);
|
|
225
|
+
if (!t) return null;
|
|
226
|
+
let e;
|
|
227
|
+
switch (t.type) {
|
|
228
|
+
case InAppMessage.qe.on:
|
|
229
|
+
e = FullScreenMessage.an(t);
|
|
230
|
+
break;
|
|
231
|
+
case InAppMessage.qe.ln:
|
|
232
|
+
case InAppMessage.qe.Ee:
|
|
233
|
+
case InAppMessage.qe.Ue:
|
|
234
|
+
e = HtmlMessage.an(t);
|
|
235
|
+
break;
|
|
236
|
+
case InAppMessage.qe.un:
|
|
237
|
+
case InAppMessage.qe.Se:
|
|
238
|
+
e = ModalMessage.an(t);
|
|
239
|
+
break;
|
|
240
|
+
case InAppMessage.qe.pn:
|
|
241
|
+
e = SlideUpMessage.an(t);
|
|
242
|
+
}
|
|
243
|
+
return e && this.mn(), e;
|
|
244
|
+
}
|
|
245
|
+
mn() {
|
|
246
|
+
this.u && this.u.ni(i.k.rn);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
@@ -1 +1,16 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { default as InAppMessage } from "./models/in-app-message.js";
|
|
2
|
+
export { default as InAppMessageButton } from "./models/in-app-message-button.js";
|
|
3
|
+
export { default as ControlMessage } from "./models/control-message.js";
|
|
4
|
+
export { default as FullScreenMessage } from "./models/full-screen-message.js";
|
|
5
|
+
export { default as HtmlMessage } from "./models/html-message.js";
|
|
6
|
+
export { default as ModalMessage } from "./models/modal-message.js";
|
|
7
|
+
export { default as SlideUpMessage } from "./models/slide-up-message.js";
|
|
8
|
+
export { automaticallyShowInAppMessages } from "./ui/automatically-show-in-app-messages.js";
|
|
9
|
+
export { logInAppMessageButtonClick } from "./log-in-app-message-button-click.js";
|
|
10
|
+
export { logInAppMessageClick } from "./log-in-app-message-click.js";
|
|
11
|
+
export { logInAppMessageHtmlClick } from "./log-in-app-message-html-click.js";
|
|
12
|
+
export { logInAppMessageImpression } from "./log-in-app-message-impression.js";
|
|
13
|
+
export { showInAppMessage } from "./ui/show-in-app-message.js";
|
|
14
|
+
export { subscribeToInAppMessage } from "./subscribe-to-in-app-message.js";
|
|
15
|
+
export { deferInAppMessage } from "./defer-in-app-message.js";
|
|
16
|
+
export { getDeferredInAppMessage } from "./get-deferred-in-app-message.js";
|
|
@@ -1 +1,27 @@
|
|
|
1
|
-
import e from"../managers/braze-instance.js";
|
|
1
|
+
import e from "../managers/braze-instance.js";
|
|
2
|
+
import { MUST_BE_IN_APP_MESSAGE_WARNING as or } from "../common/constants.js";
|
|
3
|
+
import InAppMessage from "./models/in-app-message.js";
|
|
4
|
+
import InAppMessageButton from "./models/in-app-message-button.js";
|
|
5
|
+
import se from "./in-app-message-manager-factory.js";
|
|
6
|
+
import r from "../../shared-lib/braze-shared-lib.js";
|
|
7
|
+
import tt from "../triggers/models/trigger-events.js";
|
|
8
|
+
import { TriggersProviderFactory as et } from "../triggers/triggers-provider-factory.js";
|
|
9
|
+
export function logInAppMessageButtonClick(o, t) {
|
|
10
|
+
var s;
|
|
11
|
+
if (!e.rr()) return !1;
|
|
12
|
+
if (!(o instanceof InAppMessageButton))
|
|
13
|
+
return r.j.error("button must be an InAppMessageButton object"), !1;
|
|
14
|
+
if (!(t instanceof InAppMessage)) return r.j.error(or), !1;
|
|
15
|
+
const n = se.m().Xi(o, t);
|
|
16
|
+
if (n.O)
|
|
17
|
+
for (let r = 0; r < n.ve.length; r++)
|
|
18
|
+
et.er().be(
|
|
19
|
+
tt.ro,
|
|
20
|
+
[
|
|
21
|
+
t.triggerId,
|
|
22
|
+
null === (s = o.id) || void 0 === s ? void 0 : s.toString(),
|
|
23
|
+
],
|
|
24
|
+
n.ve[r],
|
|
25
|
+
);
|
|
26
|
+
return n.O;
|
|
27
|
+
}
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
import e from"../managers/braze-instance.js";
|
|
1
|
+
import e from "../managers/braze-instance.js";
|
|
2
|
+
import InAppMessage from "./models/in-app-message.js";
|
|
3
|
+
import se from "./in-app-message-manager-factory.js";
|
|
4
|
+
import { logInAppMessageImpression } from "./log-in-app-message-impression.js";
|
|
5
|
+
import { MUST_BE_IN_APP_MESSAGE_WARNING as or } from "../common/constants.js";
|
|
6
|
+
import r from "../../shared-lib/braze-shared-lib.js";
|
|
7
|
+
import tt from "../triggers/models/trigger-events.js";
|
|
8
|
+
import { TriggersProviderFactory as et } from "../triggers/triggers-provider-factory.js";
|
|
9
|
+
export function logInAppMessageClick(o) {
|
|
10
|
+
if (!e.rr()) return !1;
|
|
11
|
+
if (!(o instanceof InAppMessage)) return r.j.error(or), !1;
|
|
12
|
+
const s = se.m().N(o, r.q.Li);
|
|
13
|
+
if (s) {
|
|
14
|
+
o.so() || logInAppMessageImpression(o);
|
|
15
|
+
for (let r = 0; r < s.ve.length; r++)
|
|
16
|
+
et.er().be(tt.ro, [o.triggerId], s.ve[r]);
|
|
17
|
+
}
|
|
18
|
+
return s.O;
|
|
19
|
+
}
|
|
@@ -1 +1,23 @@
|
|
|
1
|
-
import e from"../managers/braze-instance.js";
|
|
1
|
+
import e from "../managers/braze-instance.js";
|
|
2
|
+
import HtmlMessage from "./models/html-message.js";
|
|
3
|
+
import se from "./in-app-message-manager-factory.js";
|
|
4
|
+
import r from "../../shared-lib/braze-shared-lib.js";
|
|
5
|
+
import tt from "../triggers/models/trigger-events.js";
|
|
6
|
+
import { TriggersProviderFactory as et } from "../triggers/triggers-provider-factory.js";
|
|
7
|
+
export function logInAppMessageHtmlClick(s, t, o) {
|
|
8
|
+
if (!e.rr()) return !1;
|
|
9
|
+
if (!(s instanceof HtmlMessage))
|
|
10
|
+
return (
|
|
11
|
+
r.j.error(
|
|
12
|
+
"inAppMessage argument to logInAppMessageHtmlClick must be an HtmlMessage object.",
|
|
13
|
+
),
|
|
14
|
+
!1
|
|
15
|
+
);
|
|
16
|
+
let m = r.q.Li;
|
|
17
|
+
null != t && (m = r.q.Qi);
|
|
18
|
+
const i = se.m().N(s, m, t, o);
|
|
19
|
+
if (i.O)
|
|
20
|
+
for (let r = 0; r < i.ve.length; r++)
|
|
21
|
+
et.er().be(tt.ro, [s.triggerId, t], i.ve[r]);
|
|
22
|
+
return i.O;
|
|
23
|
+
}
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
import e from"../managers/braze-instance.js";
|
|
1
|
+
import e from "../managers/braze-instance.js";
|
|
2
|
+
import ControlMessage from "./models/control-message.js";
|
|
3
|
+
import InAppMessage from "./models/in-app-message.js";
|
|
4
|
+
import se from "./in-app-message-manager-factory.js";
|
|
5
|
+
import { MUST_BE_IN_APP_MESSAGE_WARNING as or } from "../common/constants.js";
|
|
6
|
+
import r from "../../shared-lib/braze-shared-lib.js";
|
|
7
|
+
export function logInAppMessageImpression(o) {
|
|
8
|
+
if (!e.rr()) return !1;
|
|
9
|
+
if (!(o instanceof InAppMessage || o instanceof ControlMessage))
|
|
10
|
+
return r.j.error(or), !1;
|
|
11
|
+
const s = o instanceof ControlMessage ? r.q.eo : r.q.Vi;
|
|
12
|
+
return se.m().N(o, s).O;
|
|
13
|
+
}
|
|
@@ -1 +1,11 @@
|
|
|
1
|
-
export default class ControlMessage
|
|
1
|
+
export default class ControlMessage {
|
|
2
|
+
constructor(t) {
|
|
3
|
+
(this.triggerId = t),
|
|
4
|
+
(this.triggerId = t),
|
|
5
|
+
(this.extras = {}),
|
|
6
|
+
(this.isControl = !0);
|
|
7
|
+
}
|
|
8
|
+
static fromJson(t) {
|
|
9
|
+
return new ControlMessage(t.trigger_id);
|
|
10
|
+
}
|
|
11
|
+
}
|