@braze/web-sdk 5.9.1 → 6.1.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 +209 -283
- package/package.json +1 -1
- package/shared-lib/encoding-utils.js +1 -1
- package/shared-lib/event-types.js +27 -29
- package/shared-lib/guid.js +3 -3
- package/shared-lib/indexed-db-adapter.js +22 -22
- package/shared-lib/logger.js +18 -18
- package/shared-lib/supported-options.js +22 -23
- package/src/Banner/banner-factory.js +2 -1
- package/src/Banner/banner-provider-factory.js +7 -7
- package/src/Banner/banner-provider.js +92 -98
- package/src/Banner/banner.js +21 -18
- package/src/Banner/display/banner-to-html.js +18 -30
- package/src/Banner/display/detect-banner-impressions.js +11 -11
- package/src/Banner/get-all-banners.js +5 -5
- package/src/Banner/get-banner.js +7 -7
- package/src/Banner/index.js +0 -1
- package/src/Banner/log-banner-click.js +7 -7
- package/src/Banner/log-banner-impressions.js +9 -9
- package/src/Banner/request-banners-refresh.js +23 -27
- package/src/Banner/subscribe-to-banners-updates.js +9 -9
- package/src/Banner/ui/insert-banner.js +10 -10
- package/src/Card/card-manager-factory.js +7 -7
- package/src/Card/card-manager.js +45 -47
- package/src/Card/display/card-display.js +76 -74
- package/src/Card/index.js +0 -2
- package/src/Card/log-card-dismissal.js +4 -4
- package/src/Card/log-content-card-click.js +9 -2
- package/src/Card/log-content-card-impressions.js +11 -2
- package/src/Card/models/captioned-image.js +21 -21
- package/src/Card/models/card.js +116 -110
- package/src/Card/models/classic-card.js +21 -21
- package/src/Card/models/control-card.js +15 -15
- package/src/Card/models/image-only.js +20 -21
- package/src/Card/util/card-factory.js +58 -79
- package/src/ContentCards/content-cards-provider-factory.js +13 -13
- package/src/ContentCards/content-cards-provider.js +148 -148
- package/src/ContentCards/content-cards.js +21 -13
- package/src/ContentCards/get-cached-content-cards.js +2 -2
- package/src/ContentCards/request-content-cards-refresh.js +2 -2
- package/src/ContentCards/subscribe-to-content-cards-updates.js +8 -8
- package/src/ContentCards/ui/hide-content-cards.js +5 -5
- package/src/ContentCards/ui/show-content-cards.js +35 -35
- package/src/Core/add-sdk-metadata.js +5 -5
- package/src/Core/change-user.js +7 -7
- package/src/Core/destroy.js +2 -2
- package/src/Core/disable-sdk.js +10 -10
- package/src/Core/enable-sdk.js +7 -7
- package/src/Core/get-device-id.js +4 -4
- package/src/Core/get-user.js +1 -1
- package/src/Core/handle-braze-action.js +10 -10
- package/src/Core/is-disabled.js +2 -2
- package/src/Core/is-initialized.js +1 -1
- package/src/Core/log-custom-event.js +18 -18
- package/src/Core/log-purchase.js +19 -19
- package/src/Core/open-session.js +13 -13
- package/src/Core/request-immediate-data-flush.js +1 -1
- package/src/Core/set-logger.js +2 -2
- package/src/Core/toggle-logging.js +2 -2
- package/src/Core/wipe-data.js +9 -9
- package/src/FeatureFlags/feature-flag-factory.js +10 -10
- package/src/FeatureFlags/feature-flag.js +20 -71
- package/src/FeatureFlags/feature-flags-provider-factory.js +7 -7
- package/src/FeatureFlags/feature-flags-provider.js +86 -86
- package/src/FeatureFlags/get-all-feature-flags.js +3 -3
- package/src/FeatureFlags/get-feature-flag.js +3 -3
- package/src/FeatureFlags/log-feature-flag-impression.js +8 -8
- package/src/FeatureFlags/refresh-feature-flags.js +1 -1
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +3 -3
- package/src/InAppMessage/defer-in-app-message.js +4 -4
- package/src/InAppMessage/display/html-message-to-html.js +41 -41
- package/src/InAppMessage/display/in-app-message-to-html.js +145 -139
- package/src/InAppMessage/display/modal-utils.js +40 -42
- package/src/InAppMessage/get-deferred-in-app-message.js +1 -1
- package/src/InAppMessage/in-app-message-factory.js +24 -16
- package/src/InAppMessage/in-app-message-manager-factory.js +5 -5
- package/src/InAppMessage/in-app-message-manager.js +124 -122
- package/src/InAppMessage/log-in-app-message-button-click.js +12 -12
- package/src/InAppMessage/log-in-app-message-click.js +9 -9
- package/src/InAppMessage/log-in-app-message-html-click.js +11 -11
- package/src/InAppMessage/log-in-app-message-impression.js +4 -4
- package/src/InAppMessage/models/control-message.js +5 -5
- package/src/InAppMessage/models/full-screen-message.js +41 -35
- package/src/InAppMessage/models/html-message.js +28 -26
- package/src/InAppMessage/models/in-app-message-button.js +5 -5
- package/src/InAppMessage/models/in-app-message.js +156 -152
- package/src/InAppMessage/models/modal-message.js +40 -34
- package/src/InAppMessage/models/slide-up-message.js +38 -32
- package/src/InAppMessage/models/templated-in-app-message.js +8 -8
- package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
- package/src/InAppMessage/ui/automatically-show-in-app-messages.js +3 -3
- package/src/InAppMessage/ui/show-in-app-message.js +68 -74
- 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 +17 -17
- package/src/Push/push-manager.js +127 -127
- package/src/Push/request-push-permission.js +1 -1
- package/src/Push/utils/push-utils.js +25 -15
- package/src/User/user-manager.js +20 -20
- package/src/User/user.js +60 -61
- package/src/common/base-provider.js +1 -1
- package/src/common/content-cards-display.js +211 -0
- package/src/common/event-logger.js +12 -12
- package/src/common/properties-base.js +56 -0
- package/src/index.js +0 -1
- package/src/l10n/l10n-manager-factory.js +10 -10
- package/src/l10n/l10n-manager.js +7 -7
- package/src/managers/auth-manager.js +36 -36
- package/src/managers/braze-instance.js +184 -185
- package/src/managers/device-manager.js +26 -26
- package/src/managers/network-manager.js +194 -193
- package/src/managers/server-config-manager.js +75 -75
- package/src/managers/session-manager.js +29 -29
- package/src/managers/storage-manager-factory.js +13 -13
- package/src/managers/storage-manager.js +162 -164
- package/src/managers/subscription-manager.js +12 -12
- package/src/managers/utils.js +1 -1
- package/src/models/backend-errors.js +5 -5
- package/src/models/braze-event.js +16 -16
- package/src/models/device.js +3 -3
- package/src/models/identifier.js +8 -8
- package/src/models/push-token.js +10 -10
- package/src/models/request-result.js +4 -4
- package/src/models/server-config.js +33 -33
- package/src/request-controller.js +193 -192
- package/src/triggers/models/custom-event-data.js +7 -7
- package/src/triggers/models/custom-event-property-data.js +8 -8
- package/src/triggers/models/filter-set.js +8 -8
- package/src/triggers/models/filter.js +43 -43
- package/src/triggers/models/in-app-message-click-data.js +4 -4
- 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 +2 -2
- package/src/triggers/models/trigger-condition.js +52 -52
- package/src/triggers/models/trigger-events.js +4 -4
- package/src/triggers/models/trigger.js +19 -19
- package/src/triggers/triggers-provider-factory.js +14 -14
- package/src/triggers/triggers-provider.js +70 -70
- package/src/ui/js/attach-css.js +3 -3
- package/src/ui/js/banner-css.js +1 -1
- package/src/ui/js/iam-css.js +1 -1
- package/src/ui/js/load-font-awesome.js +2 -2
- package/src/util/base-device-parser.js +4 -4
- package/src/util/braze-actions.js +12 -18
- package/src/util/browser-detector.js +27 -20
- package/src/util/client-hints-parser.js +8 -8
- package/src/util/code-utils.js +2 -2
- package/src/util/component-utils.js +14 -14
- package/src/util/deprecation-utils.js +2 -2
- package/src/util/device-constants.js +5 -5
- package/src/util/dom-utils.js +9 -9
- package/src/util/html-display-utils.js +38 -38
- package/src/util/key-codes.js +1 -1
- package/src/util/net.js +12 -12
- package/src/util/request-header-utils.js +22 -22
- package/src/util/string-utils.js +2 -2
- package/src/util/user-agent-parser.js +17 -17
- package/src/util/validation-utils.js +28 -28
- package/src/util/window-utils.js +2 -2
- package/src/Card/log-card-click.js +0 -11
- package/src/Card/log-card-impressions.js +0 -13
- package/src/Feed/feed-provider-factory.js +0 -18
- package/src/Feed/feed-provider.js +0 -90
- package/src/Feed/feed.js +0 -20
- package/src/Feed/get-cached-feed.js +0 -5
- package/src/Feed/index.js +0 -8
- package/src/Feed/log-feed-displayed.js +0 -7
- package/src/Feed/request-feed-refresh.js +0 -5
- package/src/Feed/subscribe-to-feed-updates.js +0 -5
- package/src/Feed/types.js +0 -1
- package/src/Feed/ui/hide-feed.js +0 -7
- package/src/Feed/ui/show-feed.js +0 -96
- package/src/Feed/ui/toggle-feed.js +0 -8
- package/src/common/base-feed.js +0 -29
- package/src/common/feed-display.js +0 -211
package/src/Banner/banner.js
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
(this.
|
|
6
|
-
(this.
|
|
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 = {}) {
|
|
4
|
+
super(o),
|
|
5
|
+
(this.id = t),
|
|
6
|
+
(this.placementId = s),
|
|
7
|
+
(this.html = i),
|
|
8
|
+
(this.xt = h),
|
|
7
9
|
(this.isControl = r),
|
|
8
|
-
(this.
|
|
10
|
+
(this.zt = e),
|
|
9
11
|
(this.id = t),
|
|
10
|
-
(this.placementId =
|
|
11
|
-
(this.html =
|
|
12
|
-
(this.
|
|
12
|
+
(this.placementId = s),
|
|
13
|
+
(this.html = i),
|
|
14
|
+
(this.xt = h),
|
|
13
15
|
(this.isControl = r),
|
|
14
|
-
(this.
|
|
15
|
-
(this.
|
|
16
|
+
(this.zt = e),
|
|
17
|
+
(this.kt = !1);
|
|
16
18
|
}
|
|
17
|
-
|
|
19
|
+
At() {
|
|
18
20
|
return this.isControl;
|
|
19
21
|
}
|
|
20
|
-
|
|
22
|
+
dt() {
|
|
21
23
|
return {
|
|
22
24
|
id: this.id,
|
|
23
|
-
|
|
25
|
+
pid: this.placementId,
|
|
24
26
|
html: this.html,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
its: this.xt,
|
|
28
|
+
ic: this.isControl,
|
|
29
|
+
eat: this.zt,
|
|
30
|
+
pr: this.properties,
|
|
28
31
|
};
|
|
29
32
|
}
|
|
30
33
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
attachHtmlToIframeWithNonce as
|
|
3
|
-
buildBrazeBridge as
|
|
2
|
+
attachHtmlToIframeWithNonce as b,
|
|
3
|
+
buildBrazeBridge as N,
|
|
4
4
|
} from "../../util/html-display-utils.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { BRAZE_MUST_BE_INITIALIZED_ERROR as p } from "../../common/constants.js";
|
|
8
|
-
import { logBannerClick } from "../log-banner-click.js";
|
|
5
|
+
import E from "../../../shared-lib/logger.js";
|
|
6
|
+
import { logBannerClick as _ } from "../log-banner-click.js";
|
|
9
7
|
export const BANNER_PLACEMENT_ID = "data-ab-banner-placement-id";
|
|
10
8
|
export const BANNER_HTML_CLASS = "ab-html-banner";
|
|
11
9
|
export const CONTROL_BANNER_HTML_CLASS = "ab-html-control-banner";
|
|
@@ -19,7 +17,7 @@ export function controlBannerToHtml(n) {
|
|
|
19
17
|
);
|
|
20
18
|
}
|
|
21
19
|
export function bannerToHtml(n, t) {
|
|
22
|
-
if (n.
|
|
20
|
+
if (n.At()) return controlBannerToHtml(n);
|
|
23
21
|
const e = document.createElement("iframe");
|
|
24
22
|
return (
|
|
25
23
|
(e.id = n.id),
|
|
@@ -27,34 +25,24 @@ export function bannerToHtml(n, t) {
|
|
|
27
25
|
(e.className = "ab-html-banner"),
|
|
28
26
|
e.setAttribute(BANNER_PLACEMENT_ID, n.placementId),
|
|
29
27
|
e.setAttribute("title", "Banner"),
|
|
30
|
-
|
|
28
|
+
b(e, n.html, t),
|
|
31
29
|
(e.onload = () => {
|
|
32
30
|
const t = e.contentWindow,
|
|
33
31
|
o = t.document.getElementsByTagName("title");
|
|
34
32
|
o && o.length > 0 && e.setAttribute("title", o[0].textContent || "");
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
b(e, () => {
|
|
39
|
-
import("../../Feed/ui/show-feed.js").then((n) => {
|
|
40
|
-
r.nn() ? n.showFeed() : N.error(p);
|
|
41
|
-
});
|
|
42
|
-
}),
|
|
43
|
-
),
|
|
44
|
-
{
|
|
45
|
-
logClick: function () {
|
|
46
|
-
logBannerClick(n, ...arguments);
|
|
47
|
-
},
|
|
48
|
-
closeMessage: function () {},
|
|
49
|
-
setBannerHeight: (n) => {
|
|
50
|
-
isNaN(n) || !isFinite(n) || n < 0
|
|
51
|
-
? N.warn(`Invalid banner height: ${n}`)
|
|
52
|
-
: (e.style.height = `${n}px`);
|
|
53
|
-
},
|
|
33
|
+
const r = Object.assign(Object.assign({}, N(e)), {
|
|
34
|
+
logClick: function () {
|
|
35
|
+
_(n, ...arguments);
|
|
54
36
|
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
37
|
+
closeMessage: function () {},
|
|
38
|
+
setBannerHeight: (n) => {
|
|
39
|
+
isNaN(n) || !isFinite(n) || n < 0
|
|
40
|
+
? E.warn(`Invalid banner height: ${n}`)
|
|
41
|
+
: (e.style.height = `${n}px`);
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
(t.brazeBridge = r),
|
|
45
|
+
(t.appboyBridge = r),
|
|
58
46
|
t.dispatchEvent(new CustomEvent("ab.BridgeReady"));
|
|
59
47
|
}),
|
|
60
48
|
e
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
-
impressOnBottom as
|
|
3
|
-
impressOnTop as
|
|
4
|
-
detectImpression as
|
|
2
|
+
impressOnBottom as d,
|
|
3
|
+
impressOnTop as j,
|
|
4
|
+
detectImpression as $,
|
|
5
5
|
} from "../../common/detect-impression.js";
|
|
6
|
-
import { topIsInView as
|
|
7
|
-
import { logBannerImpressions } from "../log-banner-impressions.js";
|
|
6
|
+
import { topIsInView as g, bottomIsInView as x } from "../../util/dom-utils.js";
|
|
7
|
+
import { logBannerImpressions as B } from "../log-banner-impressions.js";
|
|
8
8
|
import {
|
|
9
9
|
BANNER_HTML_CLASS as I,
|
|
10
10
|
BANNER_PLACEMENT_ID as k,
|
|
@@ -17,12 +17,12 @@ export function detectBannerImpressions() {
|
|
|
17
17
|
const s = o[n],
|
|
18
18
|
i = s.getAttribute(k);
|
|
19
19
|
if (!i) continue;
|
|
20
|
-
const m =
|
|
21
|
-
r =
|
|
20
|
+
const m = $.oo(s),
|
|
21
|
+
r = $.no(s);
|
|
22
22
|
if (m && r) continue;
|
|
23
|
-
const e =
|
|
24
|
-
c =
|
|
25
|
-
e && !m &&
|
|
23
|
+
const e = g(s),
|
|
24
|
+
c = x(s);
|
|
25
|
+
e && !m && j(s), c && !r && d(s), $.oo(s) && $.no(s) && t.push(i);
|
|
26
26
|
}
|
|
27
|
-
t.length > 0 &&
|
|
27
|
+
t.length > 0 && B(t);
|
|
28
28
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger as
|
|
1
|
+
import { logger as E } from "../../shared-lib/index.js";
|
|
2
2
|
import { BANNERS_DISABLED_MESSAGE as v } from "../common/constants.js";
|
|
3
3
|
import r from "../managers/braze-instance.js";
|
|
4
4
|
import i from "./banner-provider-factory.js";
|
|
@@ -6,13 +6,13 @@ import { getBannerIfNotExpired as y } from "./get-banner.js";
|
|
|
6
6
|
export function getAllBanners() {
|
|
7
7
|
if (!r.rr()) return;
|
|
8
8
|
const n = {},
|
|
9
|
-
o = r.
|
|
9
|
+
o = r.l();
|
|
10
10
|
if (
|
|
11
|
-
(!1 === (null == o ? void 0 : o.
|
|
12
|
-
!(null == o ? void 0 : o.
|
|
11
|
+
(!1 === (null == o ? void 0 : o.Dt()) && E.error(v),
|
|
12
|
+
!(null == o ? void 0 : o.Dt()))
|
|
13
13
|
)
|
|
14
14
|
return n;
|
|
15
|
-
const t = i.
|
|
15
|
+
const t = i.o().ht();
|
|
16
16
|
for (const r in t) n[r] = y(t, r);
|
|
17
17
|
return n;
|
|
18
18
|
}
|
package/src/Banner/get-banner.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { logger as
|
|
1
|
+
import { logger as E } from "../../shared-lib/index.js";
|
|
2
2
|
import { BANNERS_DISABLED_MESSAGE as v } from "../common/constants.js";
|
|
3
3
|
import r from "../managers/braze-instance.js";
|
|
4
4
|
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.
|
|
8
|
+
const t = e.zt,
|
|
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.`),
|
|
12
12
|
null)
|
|
13
13
|
: e;
|
|
14
14
|
}
|
|
15
15
|
export function getBanner(n) {
|
|
16
16
|
var e;
|
|
17
17
|
if (!r.rr()) return;
|
|
18
|
-
!1 === (null === (e = r.
|
|
19
|
-
const t = i.
|
|
20
|
-
if (!t.
|
|
21
|
-
return getBannerIfNotExpired(t.
|
|
18
|
+
!1 === (null === (e = r.l()) || void 0 === e ? void 0 : e.Dt()) && E.error(v);
|
|
19
|
+
const t = i.o();
|
|
20
|
+
if (!t.k()) return null;
|
|
21
|
+
return getBannerIfNotExpired(t.ht(), n);
|
|
22
22
|
}
|
package/src/Banner/index.js
CHANGED
|
@@ -4,4 +4,3 @@ export { insertBanner } from "./ui/insert-banner.js";
|
|
|
4
4
|
export { requestBannersRefresh } from "./request-banners-refresh.js";
|
|
5
5
|
export { getAllBanners } from "./get-all-banners.js";
|
|
6
6
|
export { subscribeToBannersUpdates } from "./subscribe-to-banners-updates.js";
|
|
7
|
-
export { logBannerImpressions } from "./log-banner-impressions.js";
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import r from "../managers/braze-instance.js";
|
|
2
2
|
import Banner from "./banner.js";
|
|
3
|
-
import { logger as
|
|
3
|
+
import { logger as E } from "../../shared-lib/index.js";
|
|
4
4
|
import i from "./banner-provider-factory.js";
|
|
5
5
|
import { keys as C } from "../util/code-utils.js";
|
|
6
6
|
export function logBannerClick(n, o) {
|
|
7
7
|
if (!r.rr()) return;
|
|
8
8
|
if (!(n instanceof Banner))
|
|
9
9
|
return (
|
|
10
|
-
|
|
10
|
+
E.error("Banner argument to logBannerClick must be an Banner object."), !1
|
|
11
11
|
);
|
|
12
|
-
const e = i.
|
|
13
|
-
t = e.
|
|
12
|
+
const e = i.o(),
|
|
13
|
+
t = e.ht();
|
|
14
14
|
return 0 === C(t).length
|
|
15
|
-
? (
|
|
15
|
+
? (E.info("Not logging banner click. No banners exist."), !1)
|
|
16
16
|
: t[n.placementId]
|
|
17
|
-
? e.
|
|
18
|
-
: (
|
|
17
|
+
? e.nt(n, o)
|
|
18
|
+
: (E.info(
|
|
19
19
|
`Not logging banner click for ID ${n.placementId}. The placement ID did not correspond to any banner.`,
|
|
20
20
|
),
|
|
21
21
|
!1);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger as
|
|
1
|
+
import { logger as E, EventTypes as m } from "../../shared-lib/index.js";
|
|
2
2
|
import c from "../common/event-logger.js";
|
|
3
3
|
import r from "../managers/braze-instance.js";
|
|
4
4
|
import { keys as C } from "../util/code-utils.js";
|
|
@@ -6,26 +6,26 @@ import i from "./banner-provider-factory.js";
|
|
|
6
6
|
export function logBannerImpressions(o) {
|
|
7
7
|
if (!r.rr()) return;
|
|
8
8
|
if (!o || o.length <= 0) return !1;
|
|
9
|
-
const n = i.
|
|
10
|
-
s = n.
|
|
9
|
+
const n = i.o(),
|
|
10
|
+
s = n.ht();
|
|
11
11
|
if (0 === C(s).length)
|
|
12
|
-
return
|
|
13
|
-
const e = n.
|
|
12
|
+
return E.info("Not logging banners impression. No banners exist."), !1;
|
|
13
|
+
const e = n.Tt(),
|
|
14
14
|
t = [];
|
|
15
15
|
for (const r of o) {
|
|
16
16
|
const o = s[r];
|
|
17
17
|
o
|
|
18
18
|
? e[o.placementId]
|
|
19
|
-
?
|
|
19
|
+
? E.info(
|
|
20
20
|
`Not logging banners impression for ID ${r}. This ID was already logged this session.`,
|
|
21
21
|
)
|
|
22
22
|
: ((e[o.placementId] = !0), t.push(o.id))
|
|
23
|
-
:
|
|
23
|
+
: E.info(
|
|
24
24
|
`Not logging banners impression for ID ${r}. The placement ID did not correspond to any banner.`,
|
|
25
25
|
);
|
|
26
26
|
}
|
|
27
27
|
if (0 === t.length) return !1;
|
|
28
|
-
n.
|
|
28
|
+
n.Rt(e);
|
|
29
29
|
const a = { ids: t };
|
|
30
|
-
return c.
|
|
30
|
+
return c.rt(m.ro, a).W;
|
|
31
31
|
}
|
|
@@ -1,46 +1,42 @@
|
|
|
1
|
-
import { logger as
|
|
1
|
+
import { logger as E } from "../../shared-lib/index.js";
|
|
2
2
|
import {
|
|
3
3
|
BANNERS_DISABLED_MESSAGE as v,
|
|
4
|
-
BRAZE_MUST_BE_INITIALIZED_ERROR as
|
|
4
|
+
BRAZE_MUST_BE_INITIALIZED_ERROR as w,
|
|
5
5
|
} from "../common/constants.js";
|
|
6
|
-
import r, { OPTIONS as
|
|
7
|
-
import { isArray as
|
|
8
|
-
import { isValidBannerPlacementId as
|
|
6
|
+
import r, { OPTIONS as z } from "../managers/braze-instance.js";
|
|
7
|
+
import { isArray as D } from "../util/code-utils.js";
|
|
8
|
+
import { isValidBannerPlacementId as R } from "../util/validation-utils.js";
|
|
9
9
|
import i from "./banner-provider-factory.js";
|
|
10
|
-
export function requestBannersRefresh(e,
|
|
11
|
-
if (!r.rr()) return void
|
|
12
|
-
const
|
|
13
|
-
if (!
|
|
14
|
-
if (!
|
|
15
|
-
return void
|
|
16
|
-
if (!r.ee(
|
|
17
|
-
return void
|
|
10
|
+
export function requestBannersRefresh(e, t, n) {
|
|
11
|
+
if (!r.rr()) return void E.warn(w);
|
|
12
|
+
const o = r.l();
|
|
13
|
+
if (!o) return;
|
|
14
|
+
if (!D(e) || 0 === e.length)
|
|
15
|
+
return void E.warn("placementIds should be a non-empty array.");
|
|
16
|
+
if (!r.ee(z.re))
|
|
17
|
+
return void E.error(
|
|
18
18
|
"Banners are disabled. Use the 'allowUserSuppliedJavascript' option for braze.initialize to enable these messages.",
|
|
19
19
|
);
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
22
|
-
return void
|
|
23
|
-
|
|
24
|
-
);
|
|
25
|
-
if ((!1 === s.zt() && N.error(v), !o.L()))
|
|
26
|
-
return void s.A(() => {
|
|
27
|
-
requestBannersRefresh(e, n, t);
|
|
20
|
+
const s = i.o();
|
|
21
|
+
if ((!1 === o.Dt() && E.error(v), !s.k()))
|
|
22
|
+
return void o.P(() => {
|
|
23
|
+
requestBannersRefresh(e, t, n);
|
|
28
24
|
});
|
|
29
|
-
const a =
|
|
25
|
+
const a = o.te();
|
|
30
26
|
e.length > a &&
|
|
31
|
-
(
|
|
27
|
+
(E.warn(
|
|
32
28
|
`Number of placement IDs requested exceeds the max allowed. Trimming placementIds array from length ${e.length} to ${a} (max allowed).`,
|
|
33
29
|
),
|
|
34
30
|
(e = e.slice(0, a))),
|
|
35
31
|
0 !==
|
|
36
32
|
(e = e.filter(
|
|
37
33
|
(e) =>
|
|
38
|
-
!!
|
|
39
|
-
(
|
|
34
|
+
!!R(e) ||
|
|
35
|
+
(E.warn(
|
|
40
36
|
`Placement ID should be a valid utf8 string with no whitespaces, filtering out: ${e}`,
|
|
41
37
|
),
|
|
42
38
|
!1),
|
|
43
39
|
)).length &&
|
|
44
|
-
(
|
|
45
|
-
|
|
40
|
+
(E.info(`Requesting banners for placement IDs: ${JSON.stringify(e)}`),
|
|
41
|
+
s.M(e, t, n));
|
|
46
42
|
}
|
|
@@ -4,21 +4,21 @@ import { getAllBanners } from "./get-all-banners.js";
|
|
|
4
4
|
export function subscribeToBannersUpdates(n) {
|
|
5
5
|
var o;
|
|
6
6
|
if (!r.rr()) return;
|
|
7
|
-
const t = i.
|
|
8
|
-
if (t.
|
|
7
|
+
const t = i.o();
|
|
8
|
+
if (t.Ct()) {
|
|
9
9
|
const r = getAllBanners();
|
|
10
10
|
r && "function" == typeof n && n(r);
|
|
11
11
|
}
|
|
12
|
-
const s = t.
|
|
13
|
-
if (!t.
|
|
12
|
+
const s = t.St(n);
|
|
13
|
+
if (!t.jt()) {
|
|
14
14
|
const n =
|
|
15
|
-
null === (o = r.
|
|
15
|
+
null === (o = r.nn()) || void 0 === o
|
|
16
16
|
? void 0
|
|
17
|
-
: o.
|
|
18
|
-
const n = t.
|
|
19
|
-
n && n.length > 0 && t
|
|
17
|
+
: o.rn(() => {
|
|
18
|
+
const n = t.et();
|
|
19
|
+
n && n.length > 0 && t.M(n);
|
|
20
20
|
});
|
|
21
|
-
n && t.
|
|
21
|
+
n && t.yt(n);
|
|
22
22
|
}
|
|
23
23
|
return s;
|
|
24
24
|
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import E from "../../../shared-lib/logger.js";
|
|
2
2
|
import { SUBSCRIPTION_ID_DATA_ATTRIBUTE as f } from "../../common/constants.js";
|
|
3
|
-
import r, { OPTIONS as
|
|
3
|
+
import r, { OPTIONS as z } from "../../managers/braze-instance.js";
|
|
4
4
|
import { setupBannerUI as U } from "../../ui/js/banner-css.js";
|
|
5
5
|
import { addPassiveEventListener as J } from "../../util/dom-utils.js";
|
|
6
6
|
import { bannerToHtml as S } from "../display/banner-to-html.js";
|
|
7
7
|
import { destroyBannerHtml as A } from "../display/destroy-banner-html.js";
|
|
8
|
-
import { detectBannerImpressions as
|
|
8
|
+
import { detectBannerImpressions as F } from "../display/detect-banner-impressions.js";
|
|
9
9
|
import { subscribeToBannersUpdates } from "../subscribe-to-banners-updates.js";
|
|
10
10
|
export function insertBanner(o, e) {
|
|
11
11
|
if (!r.rr()) return;
|
|
12
|
-
if (!o) return void
|
|
12
|
+
if (!o) return void E.error("Not inserting banner: banner was not provided.");
|
|
13
13
|
if (!e)
|
|
14
|
-
return void
|
|
15
|
-
if (!r.ee(
|
|
16
|
-
return void
|
|
14
|
+
return void E.error("Not inserting banner: parentNode was not provided.");
|
|
15
|
+
if (!r.ee(z.re))
|
|
16
|
+
return void E.error(
|
|
17
17
|
"Banners are disabled. Use the 'allowUserSuppliedJavascript' option for braze.initialize to enable these messages.",
|
|
18
18
|
);
|
|
19
19
|
U();
|
|
20
|
-
const n = S(o, r.ee(
|
|
20
|
+
const n = S(o, r.ee(z.er)),
|
|
21
21
|
s = subscribeToBannersUpdates((s) => {
|
|
22
22
|
const i = s[o.placementId];
|
|
23
|
-
i ? e.replaceChildren(S(i, r.ee(
|
|
23
|
+
i ? e.replaceChildren(S(i, r.ee(z.er))) : A(n);
|
|
24
24
|
});
|
|
25
|
-
s && n.setAttribute(f, s), e.replaceChildren(n), J(window, "scroll",
|
|
25
|
+
s && n.setAttribute(f, s), e.replaceChildren(n), J(window, "scroll", F), F();
|
|
26
26
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import M from "./card-manager.js";
|
|
2
2
|
import r from "../managers/braze-instance.js";
|
|
3
|
-
const
|
|
4
|
-
|
|
3
|
+
const G = {
|
|
4
|
+
i: !1,
|
|
5
5
|
aa: null,
|
|
6
|
-
ea: () => (
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
ea: () => (G.t(), G.aa || (G.aa = new M(r.p())), G.aa),
|
|
7
|
+
t: () => {
|
|
8
|
+
G.i || (r.g(G), (G.i = !0));
|
|
9
9
|
},
|
|
10
10
|
destroy: () => {
|
|
11
|
-
(
|
|
11
|
+
(G.aa = null), (G.i = !1);
|
|
12
12
|
},
|
|
13
13
|
};
|
|
14
|
-
export default
|
|
14
|
+
export default G;
|
package/src/Card/card-manager.js
CHANGED
|
@@ -1,75 +1,73 @@
|
|
|
1
1
|
import { ControlCard } from "./models/index.js";
|
|
2
2
|
import c from "../common/event-logger.js";
|
|
3
|
-
import
|
|
4
|
-
import { logger as
|
|
3
|
+
import H from "../models/request-result.js";
|
|
4
|
+
import { logger as E, EventTypes as m } from "../../shared-lib/index.js";
|
|
5
5
|
import { STORAGE_KEYS as s } from "../managers/storage-manager.js";
|
|
6
6
|
export default class M {
|
|
7
7
|
constructor(t) {
|
|
8
|
-
(this.
|
|
8
|
+
(this.j = t), (this.j = t);
|
|
9
9
|
}
|
|
10
|
-
logClick(t
|
|
11
|
-
const
|
|
10
|
+
logClick(t) {
|
|
11
|
+
const n = new H();
|
|
12
12
|
if ((t.$t(), null == t.url || "" === t.url))
|
|
13
13
|
return (
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
E.info(`Card ${t.id} has no url. Not logging click to Braze servers.`),
|
|
15
|
+
n
|
|
16
16
|
);
|
|
17
|
-
if (
|
|
18
|
-
const n = this.
|
|
19
|
-
(n[t.id] = !0), this.
|
|
17
|
+
if (t.id && this.j) {
|
|
18
|
+
const n = this.j.lt(s.ct.Et) || {};
|
|
19
|
+
(n[t.id] = !0), this.j.ft(s.ct.Et, n);
|
|
20
20
|
}
|
|
21
|
-
const
|
|
22
|
-
if (null ==
|
|
23
|
-
const
|
|
24
|
-
return c.
|
|
21
|
+
const r = this.Gt([t]);
|
|
22
|
+
if (null == r) return n;
|
|
23
|
+
const i = m.Ht;
|
|
24
|
+
return c.rt(i, r);
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
const n = new
|
|
28
|
-
if (!t.
|
|
26
|
+
Jt(t) {
|
|
27
|
+
const n = new H();
|
|
28
|
+
if (!t.Kt())
|
|
29
29
|
return (
|
|
30
|
-
|
|
30
|
+
E.info(
|
|
31
31
|
`Card ${t.id} refused this dismissal. Ignoring analytics event.`,
|
|
32
32
|
),
|
|
33
33
|
n
|
|
34
34
|
);
|
|
35
|
-
if (t.id && this.
|
|
36
|
-
const n = this.
|
|
37
|
-
(n[t.id] = !0), this.
|
|
35
|
+
if (t.id && this.j) {
|
|
36
|
+
const n = this.j.lt(s.ct.Lt) || {};
|
|
37
|
+
(n[t.id] = !0), this.j.ft(s.ct.Lt, n);
|
|
38
38
|
}
|
|
39
|
-
const r = this.
|
|
40
|
-
return null == r ? n : c.
|
|
39
|
+
const r = this.Gt([t]);
|
|
40
|
+
return null == r ? n : c.rt(m.Mt, r);
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
let
|
|
47
|
-
this.
|
|
42
|
+
Ot(t) {
|
|
43
|
+
const n = new H(!0),
|
|
44
|
+
r = [],
|
|
45
|
+
i = [];
|
|
46
|
+
let o = {};
|
|
47
|
+
this.j && (o = this.j.lt(s.ct.Pt) || {});
|
|
48
48
|
for (const s of t) {
|
|
49
|
-
s.
|
|
50
|
-
? (s instanceof ControlCard ?
|
|
51
|
-
s.id && (
|
|
52
|
-
:
|
|
49
|
+
s.Qt()
|
|
50
|
+
? (s instanceof ControlCard ? i.push(s) : r.push(s),
|
|
51
|
+
s.id && (o[s.id] = !0))
|
|
52
|
+
: E.info(
|
|
53
53
|
`Card ${s.id} logged an impression too recently. Ignoring analytics event.`,
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
if (null ==
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
s = c.ut(t, l);
|
|
64
|
-
r.ns(s);
|
|
56
|
+
const e = this.Gt(r),
|
|
57
|
+
l = this.Gt(i);
|
|
58
|
+
if (null == e && null == l) return (n.W = !1), n;
|
|
59
|
+
if ((this.j && this.j.ft(s.ct.Pt, o), null != e)) {
|
|
60
|
+
const t = m.Ut,
|
|
61
|
+
s = c.rt(t, e);
|
|
62
|
+
n.Vt(s);
|
|
65
63
|
}
|
|
66
|
-
if (null !=
|
|
67
|
-
const t = c.
|
|
68
|
-
|
|
64
|
+
if (null != l) {
|
|
65
|
+
const t = c.rt(m.Wt, l);
|
|
66
|
+
n.Vt(t);
|
|
69
67
|
}
|
|
70
|
-
return
|
|
68
|
+
return n;
|
|
71
69
|
}
|
|
72
|
-
|
|
70
|
+
Gt(t) {
|
|
73
71
|
let s,
|
|
74
72
|
n = null;
|
|
75
73
|
for (let r = 0; r < t.length; r++)
|