@braze/web-sdk 4.9.0 → 5.0.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 +2204 -2230
- package/package.json +1 -1
- package/shared-lib/braze-shared-lib.js +1 -1
- package/shared-lib/event-types.js +9 -9
- package/shared-lib/indexed-db-adapter.js +13 -13
- package/shared-lib/logger.js +2 -2
- package/shared-lib/supported-options.js +8 -8
- package/src/Card/models/captioned-image.js +19 -19
- package/src/Card/models/card.js +95 -94
- package/src/Card/models/classic-card.js +19 -19
- package/src/Card/models/control-card.js +9 -9
- package/src/Card/models/image-only.js +21 -22
- package/src/Card/models/index.js +0 -1
- package/src/Card/util/card-factory.js +39 -39
- package/src/ContentCards/content-cards-provider.js +114 -114
- package/src/ContentCards/get-cached-content-cards.js +1 -1
- package/src/ContentCards/index.js +0 -1
- package/src/ContentCards/request-content-cards-refresh.js +1 -1
- package/src/ContentCards/subscribe-to-content-cards-updates.js +3 -3
- package/src/ContentCards/ui/hide-content-cards.js +2 -2
- package/src/ContentCards/ui/show-content-cards.js +14 -14
- package/src/Core/add-sdk-metadata.js +2 -2
- package/src/Core/change-user.js +2 -2
- package/src/Core/disable-sdk.js +4 -4
- package/src/Core/enable-sdk.js +4 -4
- package/src/Core/get-device-id.js +9 -7
- package/src/Core/handle-braze-action.js +14 -14
- package/src/Core/is-disabled.js +2 -2
- package/src/Core/open-session.js +5 -5
- package/src/Core/set-sdk-authentication-signature.js +2 -2
- package/src/Core/wipe-data.js +4 -4
- package/src/FeatureFlags/feature-flag-factory.js +10 -10
- package/src/FeatureFlags/feature-flag.js +7 -7
- package/src/FeatureFlags/feature-flags-provider.js +50 -50
- package/src/FeatureFlags/get-all-feature-flags.js +1 -1
- package/src/FeatureFlags/get-feature-flag.js +3 -5
- package/src/Feed/feed-provider-factory.js +8 -8
- package/src/Feed/feed-provider.js +15 -15
- package/src/Feed/get-cached-feed.js +2 -2
- package/src/Feed/request-feed-refresh.js +2 -2
- package/src/Feed/subscribe-to-feed-updates.js +2 -2
- package/src/Feed/ui/hide-feed.js +2 -2
- package/src/Feed/ui/show-feed.js +13 -13
- package/src/InAppMessage/display/html-message-to-html.js +11 -12
- package/src/InAppMessage/display/in-app-message-to-html.js +15 -15
- package/src/InAppMessage/display/modal-utils.js +8 -8
- package/src/InAppMessage/in-app-message-factory.js +4 -4
- package/src/InAppMessage/in-app-message-manager.js +38 -38
- package/src/InAppMessage/models/full-screen-message.js +31 -31
- package/src/InAppMessage/models/html-message.js +16 -16
- package/src/InAppMessage/models/in-app-message-button.js +5 -5
- package/src/InAppMessage/models/in-app-message.js +46 -46
- package/src/InAppMessage/models/modal-message.js +30 -30
- package/src/InAppMessage/models/slide-up-message.js +26 -26
- package/src/InAppMessage/ui/show-in-app-message.js +9 -9
- 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.js +31 -31
- package/src/Push/utils/push-utils.js +9 -9
- package/src/User/user-manager.js +8 -8
- package/src/User/user.js +38 -37
- package/src/common/base-feed.js +15 -14
- package/src/common/base-provider.js +1 -1
- package/src/common/event-logger.js +2 -2
- package/src/common/feed-display.js +32 -32
- package/src/l10n/l10n-manager-factory.js +9 -9
- package/src/managers/auth-manager.js +6 -6
- package/src/managers/braze-instance.js +84 -92
- package/src/managers/device-manager.js +9 -9
- package/src/managers/network-manager.js +72 -69
- package/src/managers/server-config-manager.js +13 -13
- package/src/managers/session-manager.js +9 -9
- package/src/managers/storage-manager-factory.js +11 -11
- package/src/managers/storage-manager.js +110 -110
- package/src/managers/subscription-manager.js +3 -3
- package/src/models/backend-errors.js +5 -5
- package/src/models/braze-event.js +7 -7
- package/src/models/identifier.js +1 -1
- package/src/models/push-token.js +1 -1
- package/src/models/server-config.js +6 -6
- package/src/request-controller.js +129 -125
- package/src/triggers/models/custom-event-data.js +1 -1
- package/src/triggers/models/custom-event-property-data.js +6 -6
- package/src/triggers/models/filter-set.js +8 -8
- package/src/triggers/models/filter.js +31 -31
- package/src/triggers/models/in-app-message-click-data.js +1 -1
- package/src/triggers/models/purchase-data.js +1 -1
- package/src/triggers/models/purchase-property-data.js +4 -4
- package/src/triggers/models/push-click-data.js +3 -3
- package/src/triggers/models/trigger-condition.js +30 -30
- package/src/triggers/models/trigger-events.js +1 -1
- package/src/triggers/models/trigger.js +32 -32
- package/src/triggers/triggers-provider.js +55 -55
- package/src/ui/js/attach-css.js +1 -1
- package/src/ui/js/feed-css.js +5 -5
- package/src/ui/js/iam-css.js +4 -4
- package/src/ui/js/load-font-awesome.js +1 -1
- package/src/util/braze-actions.js +4 -4
- package/src/util/browser-detector.js +11 -11
- package/src/util/client-hints-parser.js +5 -5
- package/src/util/component-utils.js +2 -2
- package/src/util/date-utils.js +2 -2
- package/src/util/device-constants.js +4 -5
- package/src/util/dom-utils.js +5 -5
- package/src/util/net.js +1 -1
- package/src/util/request-header-utils.js +17 -17
- package/src/util/user-agent-parser.js +11 -16
- package/src/util/validation-utils.js +9 -9
- package/src/Card/models/banner.js +0 -31
- package/src/ContentCards/log-content-cards-displayed.js +0 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ri from "./trigger-condition.js";
|
|
2
|
-
export default class
|
|
2
|
+
export default class sr {
|
|
3
3
|
constructor(t) {
|
|
4
4
|
(this.xu = t), (this.xu = t);
|
|
5
5
|
}
|
|
@@ -7,9 +7,9 @@ export default class lr {
|
|
|
7
7
|
return null == this.xu || ri.Bu(t[0], this.xu);
|
|
8
8
|
}
|
|
9
9
|
static fromJson(t) {
|
|
10
|
-
return new
|
|
10
|
+
return new sr(t ? t.campaign_id : null);
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
tt() {
|
|
13
13
|
return this.xu;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import Qt from "./custom-event-data.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import Yt from "./custom-event-property-data.js";
|
|
3
|
+
import Wt from "./filter-set.js";
|
|
4
4
|
import si from "./in-app-message-click-data.js";
|
|
5
5
|
import rs from "./purchase-data.js";
|
|
6
6
|
import is from "./purchase-property-data.js";
|
|
7
|
-
import
|
|
7
|
+
import sr from "./push-click-data.js";
|
|
8
8
|
import tt from "./trigger-events.js";
|
|
9
9
|
import r from "../../../shared-lib/braze-shared-lib.js";
|
|
10
10
|
import { getErrorMessage as ei } from "../../util/error-utils.js";
|
|
@@ -12,8 +12,8 @@ export default class ri {
|
|
|
12
12
|
constructor(e, t) {
|
|
13
13
|
(this.type = e), (this.data = t), (this.type = e), (this.data = t);
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
return ri.
|
|
15
|
+
ec(e, t) {
|
|
16
|
+
return ri.rc[this.type] === e && (null == this.data || this.data.Bl(t));
|
|
17
17
|
}
|
|
18
18
|
static Bu(e, t) {
|
|
19
19
|
let s = null;
|
|
@@ -31,52 +31,52 @@ export default class ri {
|
|
|
31
31
|
let r = null;
|
|
32
32
|
switch (t) {
|
|
33
33
|
case ri.Wr.OPEN:
|
|
34
|
-
case ri.Wr.
|
|
34
|
+
case ri.Wr.vt:
|
|
35
35
|
break;
|
|
36
36
|
case ri.Wr.Rr:
|
|
37
37
|
r = rs.fromJson(e.data);
|
|
38
38
|
break;
|
|
39
|
-
case ri.Wr.
|
|
39
|
+
case ri.Wr.sc:
|
|
40
40
|
r = is.fromJson(e.data);
|
|
41
41
|
break;
|
|
42
42
|
case ri.Wr.zr:
|
|
43
|
-
r =
|
|
43
|
+
r = sr.fromJson(e.data);
|
|
44
44
|
break;
|
|
45
45
|
case ri.Wr.$e:
|
|
46
46
|
r = Qt.fromJson(e.data);
|
|
47
47
|
break;
|
|
48
|
-
case ri.Wr.
|
|
49
|
-
r =
|
|
48
|
+
case ri.Wr.ac:
|
|
49
|
+
r = Yt.fromJson(e.data);
|
|
50
50
|
break;
|
|
51
51
|
case ri.Wr.ro:
|
|
52
52
|
r = si.fromJson(e.data);
|
|
53
53
|
}
|
|
54
54
|
return new ri(t, r);
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
return { t: this.type, d: this.data ? this.data.
|
|
56
|
+
tt() {
|
|
57
|
+
return { t: this.type, d: this.data ? this.data.tt() : null };
|
|
58
58
|
}
|
|
59
59
|
static Yn(e) {
|
|
60
60
|
let t,
|
|
61
61
|
r = null;
|
|
62
62
|
switch (e.t) {
|
|
63
63
|
case ri.Wr.OPEN:
|
|
64
|
-
case ri.Wr.
|
|
64
|
+
case ri.Wr.vt:
|
|
65
65
|
break;
|
|
66
66
|
case ri.Wr.Rr:
|
|
67
67
|
r = new rs(e.d);
|
|
68
68
|
break;
|
|
69
|
-
case ri.Wr.
|
|
70
|
-
(t = e.d || {}), (r = new is(t.id,
|
|
69
|
+
case ri.Wr.sc:
|
|
70
|
+
(t = e.d || {}), (r = new is(t.id, Wt.Yn(t.pf || [])));
|
|
71
71
|
break;
|
|
72
72
|
case ri.Wr.zr:
|
|
73
|
-
r = new
|
|
73
|
+
r = new sr(e.d);
|
|
74
74
|
break;
|
|
75
75
|
case ri.Wr.$e:
|
|
76
76
|
r = new Qt(e.d);
|
|
77
77
|
break;
|
|
78
|
-
case ri.Wr.
|
|
79
|
-
(t = e.d || {}), (r = new
|
|
78
|
+
case ri.Wr.ac:
|
|
79
|
+
(t = e.d || {}), (r = new Yt(t.e, Wt.Yn(t.pf || [])));
|
|
80
80
|
break;
|
|
81
81
|
case ri.Wr.ro:
|
|
82
82
|
r = new si(e.d);
|
|
@@ -87,19 +87,19 @@ export default class ri {
|
|
|
87
87
|
(ri.Wr = {
|
|
88
88
|
OPEN: "open",
|
|
89
89
|
Rr: "purchase",
|
|
90
|
-
|
|
90
|
+
sc: "purchase_property",
|
|
91
91
|
zr: "push_click",
|
|
92
92
|
$e: "custom_event",
|
|
93
|
-
|
|
93
|
+
ac: "custom_event_property",
|
|
94
94
|
ro: "iam_click",
|
|
95
|
-
|
|
95
|
+
vt: "test",
|
|
96
96
|
}),
|
|
97
|
-
(ri.
|
|
98
|
-
(ri.
|
|
99
|
-
(ri.
|
|
100
|
-
(ri.
|
|
101
|
-
(ri.
|
|
102
|
-
(ri.
|
|
103
|
-
(ri.
|
|
104
|
-
(ri.
|
|
105
|
-
(ri.
|
|
97
|
+
(ri.rc = {}),
|
|
98
|
+
(ri.rc[ri.Wr.OPEN] = tt.OPEN),
|
|
99
|
+
(ri.rc[ri.Wr.Rr] = tt.Rr),
|
|
100
|
+
(ri.rc[ri.Wr.sc] = tt.Rr),
|
|
101
|
+
(ri.rc[ri.Wr.zr] = tt.zr),
|
|
102
|
+
(ri.rc[ri.Wr.$e] = tt.$e),
|
|
103
|
+
(ri.rc[ri.Wr.ac] = tt.$e),
|
|
104
|
+
(ri.rc[ri.Wr.ro] = tt.ro),
|
|
105
|
+
(ri.rc[ri.Wr.vt] = tt.vt);
|
|
@@ -4,50 +4,50 @@ import {
|
|
|
4
4
|
} from "../../util/date-utils.js";
|
|
5
5
|
import r from "../../../shared-lib/braze-shared-lib.js";
|
|
6
6
|
import ri from "./trigger-condition.js";
|
|
7
|
-
import { validateValueIsFromEnum as
|
|
8
|
-
export default class
|
|
9
|
-
constructor(t, i = [], s, e, r = 0, h, l, o = 0, n =
|
|
7
|
+
import { validateValueIsFromEnum as G } from "../../util/code-utils.js";
|
|
8
|
+
export default class pt {
|
|
9
|
+
constructor(t, i = [], s, e, r = 0, h, l, o = 0, n = pt.Ju, a, u, d) {
|
|
10
10
|
(this.id = t),
|
|
11
|
-
(this.
|
|
11
|
+
(this.Vu = i),
|
|
12
12
|
(this.startTime = s),
|
|
13
13
|
(this.endTime = e),
|
|
14
14
|
(this.priority = r),
|
|
15
15
|
(this.type = h),
|
|
16
16
|
(this.data = l),
|
|
17
|
-
(this.
|
|
18
|
-
(this.
|
|
17
|
+
(this.Gu = o),
|
|
18
|
+
(this.Ku = n),
|
|
19
19
|
(this.sn = a),
|
|
20
|
-
(this.
|
|
21
|
-
(this.
|
|
20
|
+
(this.Ou = u),
|
|
21
|
+
(this.Qu = d),
|
|
22
22
|
(this.id = t),
|
|
23
|
-
(this.
|
|
23
|
+
(this.Vu = i || []),
|
|
24
24
|
void 0 === s && (s = null),
|
|
25
25
|
(this.startTime = s),
|
|
26
26
|
void 0 === e && (e = null),
|
|
27
27
|
(this.endTime = e),
|
|
28
28
|
(this.priority = r || 0),
|
|
29
29
|
(this.type = h),
|
|
30
|
-
(this.
|
|
31
|
-
null == a && (a = 1e3 * (this.
|
|
30
|
+
(this.Gu = o || 0),
|
|
31
|
+
null == a && (a = 1e3 * (this.Gu + 30)),
|
|
32
32
|
(this.sn = a),
|
|
33
33
|
(this.data = l),
|
|
34
|
-
null != n && (this.
|
|
35
|
-
(this.
|
|
36
|
-
(this.
|
|
34
|
+
null != n && (this.Ku = n),
|
|
35
|
+
(this.Ou = u),
|
|
36
|
+
(this.Qu = d || null);
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
Uu(t) {
|
|
39
39
|
return (
|
|
40
|
-
null == this.
|
|
40
|
+
null == this.Qu || (this.Ku !== pt.Ju && t - this.Qu >= 1e3 * this.Ku)
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
this.
|
|
43
|
+
Wu(t) {
|
|
44
|
+
this.Qu = t;
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
const i = t + 1e3 * this.
|
|
46
|
+
Xu(t) {
|
|
47
|
+
const i = t + 1e3 * this.Gu;
|
|
48
48
|
return Math.max(i - new Date().valueOf(), 0);
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
Yu(t) {
|
|
51
51
|
const i = new Date().valueOf() - t,
|
|
52
52
|
s = null == t || isNaN(i) || null == this.sn || i < this.sn;
|
|
53
53
|
return (
|
|
@@ -72,18 +72,18 @@ export default class mt {
|
|
|
72
72
|
u = t.timeout,
|
|
73
73
|
d = t.data,
|
|
74
74
|
m = t.min_seconds_since_last_trigger;
|
|
75
|
-
return
|
|
76
|
-
|
|
75
|
+
return G(
|
|
76
|
+
pt.Wr,
|
|
77
77
|
o,
|
|
78
78
|
"Could not construct Trigger from server data",
|
|
79
79
|
"Trigger.Types",
|
|
80
80
|
)
|
|
81
|
-
? new
|
|
81
|
+
? new pt(i, s, e, r, h, o, d, n, a, u, m)
|
|
82
82
|
: null;
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
tt() {
|
|
85
85
|
const t = [];
|
|
86
|
-
for (let i = 0; i < this.
|
|
86
|
+
for (let i = 0; i < this.Vu.length; i++) t.push(this.Vu[i].tt());
|
|
87
87
|
return {
|
|
88
88
|
i: this.id,
|
|
89
89
|
c: t,
|
|
@@ -92,18 +92,18 @@ export default class mt {
|
|
|
92
92
|
p: this.priority,
|
|
93
93
|
t: this.type,
|
|
94
94
|
da: this.data,
|
|
95
|
-
d: this.
|
|
96
|
-
r: this.
|
|
95
|
+
d: this.Gu,
|
|
96
|
+
r: this.Ku,
|
|
97
97
|
tm: this.sn,
|
|
98
|
-
ss: this.
|
|
99
|
-
ld: this.
|
|
98
|
+
ss: this.Ou,
|
|
99
|
+
ld: this.Qu,
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
static Yn(t) {
|
|
103
103
|
const i = [],
|
|
104
104
|
s = t.c || [];
|
|
105
105
|
for (let t = 0; t < s.length; t++) i.push(ri.Yn(s[t]));
|
|
106
|
-
return new
|
|
106
|
+
return new pt(
|
|
107
107
|
t.i,
|
|
108
108
|
i,
|
|
109
109
|
w(t.s),
|
|
@@ -119,4 +119,4 @@ export default class mt {
|
|
|
119
119
|
);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
(
|
|
122
|
+
(pt.Wr = { Vr: "inapp", Zu: "templated_iam" }), (pt.Ju = -1);
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import y from "../common/base-provider.js";
|
|
2
|
-
import { newInAppMessageFromJson as
|
|
3
|
-
import
|
|
2
|
+
import { newInAppMessageFromJson as lt } from "../InAppMessage/in-app-message-factory.js";
|
|
3
|
+
import ue from "../models/braze-event.js";
|
|
4
4
|
import { InAppMessage } from "../InAppMessage/index.js";
|
|
5
5
|
import {
|
|
6
6
|
isArray as p,
|
|
7
7
|
isEqual as ii,
|
|
8
|
-
validateValueIsFromEnum as
|
|
8
|
+
validateValueIsFromEnum as G,
|
|
9
9
|
} from "../util/code-utils.js";
|
|
10
10
|
import { STORAGE_KEYS as i } from "../managers/storage-manager.js";
|
|
11
11
|
import wt from "../InAppMessage/models/templated-in-app-message.js";
|
|
12
|
-
import
|
|
12
|
+
import pt from "./models/trigger.js";
|
|
13
13
|
import tt from "./models/trigger-events.js";
|
|
14
14
|
import r from "../../shared-lib/braze-shared-lib.js";
|
|
15
15
|
export default class gr extends y {
|
|
16
16
|
constructor(t, i, s, e, r) {
|
|
17
17
|
super(),
|
|
18
18
|
(this.tg = t),
|
|
19
|
-
(this.
|
|
19
|
+
(this.Bt = i),
|
|
20
20
|
(this.u = s),
|
|
21
21
|
(this.ki = e),
|
|
22
22
|
(this.ig = r),
|
|
23
23
|
(this.tg = t),
|
|
24
|
-
(this.
|
|
24
|
+
(this.Bt = i),
|
|
25
25
|
(this.u = s),
|
|
26
26
|
(this.ki = e),
|
|
27
27
|
(this.ig = r),
|
|
@@ -37,21 +37,21 @@ export default class gr extends y {
|
|
|
37
37
|
}
|
|
38
38
|
fg() {
|
|
39
39
|
if (this.u) {
|
|
40
|
-
(this.hg = this.u.v(i.k.
|
|
41
|
-
(this.ng = this.u.v(i.k.
|
|
42
|
-
(this.og = this.u.v(i.k.
|
|
40
|
+
(this.hg = this.u.v(i.k.nE) || this.hg),
|
|
41
|
+
(this.ng = this.u.v(i.k.iE) || this.ng),
|
|
42
|
+
(this.og = this.u.v(i.k.oE) || this.og);
|
|
43
43
|
for (let t = 0; t < this.triggers.length; t++) {
|
|
44
44
|
const i = this.triggers[t];
|
|
45
|
-
i.id && null != this.og[i.id] && i.
|
|
45
|
+
i.id && null != this.og[i.id] && i.Wu(this.og[i.id]);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
lg() {
|
|
50
50
|
if (!this.u) return;
|
|
51
|
-
this.ag = this.u.v(i.k.
|
|
52
|
-
const t = this.u.v(i.k.
|
|
51
|
+
this.ag = this.u.v(i.k.rE) || 0;
|
|
52
|
+
const t = this.u.v(i.k.sE) || [],
|
|
53
53
|
s = [];
|
|
54
|
-
for (let i = 0; i < t.length; i++) s.push(
|
|
54
|
+
for (let i = 0; i < t.length; i++) s.push(pt.Yn(t[i]));
|
|
55
55
|
(this.triggers = s), this.fg();
|
|
56
56
|
}
|
|
57
57
|
gg() {
|
|
@@ -71,12 +71,12 @@ export default class gr extends y {
|
|
|
71
71
|
h = [];
|
|
72
72
|
for (let r = 0; r < t.length; r++) {
|
|
73
73
|
const n = t[r],
|
|
74
|
-
o = i.
|
|
74
|
+
o = i.Xu(n.Zr || 0);
|
|
75
75
|
if (o > 0) {
|
|
76
76
|
let t, r;
|
|
77
77
|
h.push(n),
|
|
78
78
|
null != n.ug && (t = n.ug),
|
|
79
|
-
null != n.dg &&
|
|
79
|
+
null != n.dg && ue.cE(n.dg) && (r = ue.Yn(n.dg));
|
|
80
80
|
const a = [];
|
|
81
81
|
if (n.pg && p(n.pg))
|
|
82
82
|
for (let t = 0; t < n.pg.length; t++) {
|
|
@@ -92,22 +92,22 @@ export default class gr extends y {
|
|
|
92
92
|
0 === this.ng[i.id].length && delete this.ng[i.id]);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
r && this.u && this.u.D(i.k.
|
|
95
|
+
r && this.u && this.u.D(i.k.iE, this.ng);
|
|
96
96
|
}
|
|
97
97
|
mg() {
|
|
98
98
|
if (!this.u) return;
|
|
99
99
|
const t = [];
|
|
100
100
|
for (let i = 0; i < this.triggers.length; i++)
|
|
101
|
-
t.push(this.triggers[i].
|
|
101
|
+
t.push(this.triggers[i].tt());
|
|
102
102
|
(this.ag = new Date().valueOf()),
|
|
103
|
-
this.u.D(i.k.
|
|
104
|
-
this.u.D(i.k.
|
|
103
|
+
this.u.D(i.k.sE, t),
|
|
104
|
+
this.u.D(i.k.rE, this.ag);
|
|
105
105
|
}
|
|
106
106
|
bg() {
|
|
107
107
|
if (!this.u) return;
|
|
108
|
-
(this.u.v(i.k.
|
|
108
|
+
(this.u.v(i.k.rE) || 0) > this.ag ? this.lg() : this.fg();
|
|
109
109
|
}
|
|
110
|
-
|
|
110
|
+
Ss(t) {
|
|
111
111
|
let s = !1;
|
|
112
112
|
if (null != t && t.triggers) {
|
|
113
113
|
this.ig.mn(), this.fg();
|
|
@@ -115,26 +115,26 @@ export default class gr extends y {
|
|
|
115
115
|
h = {};
|
|
116
116
|
this.triggers = [];
|
|
117
117
|
for (let i = 0; i < t.triggers.length; i++) {
|
|
118
|
-
const r =
|
|
118
|
+
const r = pt.fromJson(t.triggers[i]);
|
|
119
119
|
if (r) {
|
|
120
120
|
r.id &&
|
|
121
121
|
null != this.og[r.id] &&
|
|
122
|
-
(r.
|
|
122
|
+
(r.Wu(this.og[r.id]), (e[r.id] = this.og[r.id])),
|
|
123
123
|
r.id && null != this.ng[r.id] && (h[r.id] = this.ng[r.id]);
|
|
124
|
-
for (let t = 0; t < r.
|
|
125
|
-
if (r.
|
|
124
|
+
for (let t = 0; t < r.Vu.length; t++)
|
|
125
|
+
if (r.Vu[t].ec(tt.vt, null)) {
|
|
126
126
|
s = !0;
|
|
127
127
|
break;
|
|
128
128
|
}
|
|
129
129
|
this.triggers.push(r);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
ii(this.og, e) || ((this.og = e), this.u && this.u.D(i.k.
|
|
133
|
-
ii(this.ng, h) || ((this.ng = h), this.u && this.u.D(i.k.
|
|
132
|
+
ii(this.og, e) || ((this.og = e), this.u && this.u.D(i.k.oE, this.og)),
|
|
133
|
+
ii(this.ng, h) || ((this.ng = h), this.u && this.u.D(i.k.iE, this.ng)),
|
|
134
134
|
this.mg(),
|
|
135
135
|
s &&
|
|
136
136
|
(r.j.info("Trigger with test condition found, firing test."),
|
|
137
|
-
this.be(tt.
|
|
137
|
+
this.be(tt.vt)),
|
|
138
138
|
this.be(tt.OPEN);
|
|
139
139
|
const n = this.sg;
|
|
140
140
|
let o;
|
|
@@ -147,22 +147,22 @@ export default class gr extends y {
|
|
|
147
147
|
const n = (e) => {
|
|
148
148
|
this.fg();
|
|
149
149
|
const h = new Date().valueOf();
|
|
150
|
-
if (!t.
|
|
151
|
-
return !1 === navigator.onLine && t.type ===
|
|
150
|
+
if (!t.Yu(i))
|
|
151
|
+
return !1 === navigator.onLine && t.type === pt.Wr.Vr && e.imageUrl
|
|
152
152
|
? (r.j.info(
|
|
153
153
|
`Not showing ${t.type} trigger action ${t.id} due to offline state.`,
|
|
154
154
|
),
|
|
155
155
|
void this.ig.Ji(t.id, InAppMessage.Ie.Uh))
|
|
156
|
-
: void (t.
|
|
157
|
-
? 0 === this.
|
|
156
|
+
: void (t.Uu(h) && this.wg(t, h, s)
|
|
157
|
+
? 0 === this.Bt.tc()
|
|
158
158
|
? r.j.info(
|
|
159
159
|
`Not displaying trigger ${t.id} because neither automaticallyShowInAppMessages() nor subscribeToInAppMessage() were called.`,
|
|
160
160
|
)
|
|
161
|
-
: (this.
|
|
161
|
+
: (this.Bt.Dt([e]), this.yg(t, h))
|
|
162
162
|
: r.j.info(
|
|
163
163
|
`Not displaying trigger ${t.id} because display time fell outside of the acceptable time window.`,
|
|
164
164
|
));
|
|
165
|
-
t.type ===
|
|
165
|
+
t.type === pt.Wr.Zu
|
|
166
166
|
? this.ig.Ji(t.id, InAppMessage.Ie.Qr)
|
|
167
167
|
: this.ig.Ji(t.id, InAppMessage.Ie.bh);
|
|
168
168
|
},
|
|
@@ -170,7 +170,7 @@ export default class gr extends y {
|
|
|
170
170
|
this.fg();
|
|
171
171
|
const n = h.pop();
|
|
172
172
|
if (null != n)
|
|
173
|
-
if ((this.Tg(n, i, s, e, h), n.
|
|
173
|
+
if ((this.Tg(n, i, s, e, h), n.Yu(i))) {
|
|
174
174
|
let t = `Server aborted in-app message display, but the timeout on fallback trigger ${n.id} has already elapsed.`;
|
|
175
175
|
h.length > 0 && (t += " Continuing to fall back."),
|
|
176
176
|
r.j.info(t),
|
|
@@ -180,7 +180,7 @@ export default class gr extends y {
|
|
|
180
180
|
r.j.info(
|
|
181
181
|
`Server aborted in-app message display. Falling back to lower priority ${n.type} trigger action ${t.id}.`,
|
|
182
182
|
);
|
|
183
|
-
const o = 1e3 * n.
|
|
183
|
+
const o = 1e3 * n.Gu - (new Date().valueOf() - i);
|
|
184
184
|
o > 0
|
|
185
185
|
? this.eg.push(
|
|
186
186
|
window.setTimeout(() => {
|
|
@@ -192,8 +192,8 @@ export default class gr extends y {
|
|
|
192
192
|
};
|
|
193
193
|
let a, l, g;
|
|
194
194
|
switch (t.type) {
|
|
195
|
-
case
|
|
196
|
-
if (((a =
|
|
195
|
+
case pt.Wr.Vr:
|
|
196
|
+
if (((a = lt(t.data)), null == a)) {
|
|
197
197
|
r.j.error(
|
|
198
198
|
`Could not parse trigger data for trigger ${t.id}, ignoring.`,
|
|
199
199
|
),
|
|
@@ -206,7 +206,7 @@ export default class gr extends y {
|
|
|
206
206
|
}
|
|
207
207
|
n(a);
|
|
208
208
|
break;
|
|
209
|
-
case
|
|
209
|
+
case pt.Wr.Zu:
|
|
210
210
|
if (((g = wt.fromJson(t.data, n, o, i, t.sn || 0)), null == g)) {
|
|
211
211
|
r.j.error(
|
|
212
212
|
`Could not parse trigger data for trigger ${t.id}, ignoring.`,
|
|
@@ -224,8 +224,8 @@ export default class gr extends y {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
be(t, i = null, s) {
|
|
227
|
-
if (!
|
|
228
|
-
if (this.ki && this.ki.
|
|
227
|
+
if (!G(tt, t, "Cannot fire trigger action.", "TriggerEvents")) return;
|
|
228
|
+
if (this.ki && this.ki.Du())
|
|
229
229
|
return (
|
|
230
230
|
r.j.info(
|
|
231
231
|
"Trigger sync is currently in progress, awaiting sync completion before firing trigger event.",
|
|
@@ -240,15 +240,15 @@ export default class gr extends y {
|
|
|
240
240
|
const a = [];
|
|
241
241
|
for (let s = 0; s < this.triggers.length; s++) {
|
|
242
242
|
const r = this.triggers[s],
|
|
243
|
-
h = e + 1e3 * r.
|
|
243
|
+
h = e + 1e3 * r.Gu;
|
|
244
244
|
if (
|
|
245
|
-
r.
|
|
245
|
+
r.Uu(h) &&
|
|
246
246
|
(null == r.startTime || r.startTime.valueOf() <= e) &&
|
|
247
247
|
(null == r.endTime || r.endTime.valueOf() >= e)
|
|
248
248
|
) {
|
|
249
249
|
let s = !1;
|
|
250
|
-
for (let e = 0; e < r.
|
|
251
|
-
if (r.
|
|
250
|
+
for (let e = 0; e < r.Vu.length; e++)
|
|
251
|
+
if (r.Vu[e].ec(t, i)) {
|
|
252
252
|
s = !0;
|
|
253
253
|
break;
|
|
254
254
|
}
|
|
@@ -272,20 +272,20 @@ export default class gr extends y {
|
|
|
272
272
|
`Firing ${l.type} trigger action ${l.id} from trigger event ${t}.`,
|
|
273
273
|
),
|
|
274
274
|
this.Tg(l, e, t, s, a),
|
|
275
|
-
0 === l.
|
|
275
|
+
0 === l.Gu
|
|
276
276
|
? this.cg(l, e, t, s, a)
|
|
277
277
|
: this.eg.push(
|
|
278
278
|
window.setTimeout(() => {
|
|
279
279
|
this.cg(l, e, t, s, a);
|
|
280
|
-
}, 1e3 * l.
|
|
280
|
+
}, 1e3 * l.Gu),
|
|
281
281
|
));
|
|
282
282
|
}
|
|
283
283
|
changeUser(t = !1) {
|
|
284
|
-
if (((this.triggers = []), this.u && this.u.ni(i.k.
|
|
284
|
+
if (((this.triggers = []), this.u && this.u.ni(i.k.sE), !t)) {
|
|
285
285
|
(this.sg = []), (this.hg = null), (this.og = {}), (this.ng = {});
|
|
286
286
|
for (let t = 0; t < this.eg.length; t++) clearTimeout(this.eg[t]);
|
|
287
287
|
(this.eg = []),
|
|
288
|
-
this.u && (this.u.ni(i.k.
|
|
288
|
+
this.u && (this.u.ni(i.k.nE), this.u.ni(i.k.oE), this.u.ni(i.k.iE));
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
clearData() {
|
|
@@ -295,32 +295,32 @@ export default class gr extends y {
|
|
|
295
295
|
}
|
|
296
296
|
wg(t, i, s) {
|
|
297
297
|
if (null == this.hg) return !0;
|
|
298
|
-
if (s === tt.
|
|
298
|
+
if (s === tt.vt)
|
|
299
299
|
return (
|
|
300
300
|
r.j.info(
|
|
301
301
|
"Ignoring minimum interval between trigger because it is a test type.",
|
|
302
302
|
),
|
|
303
303
|
!0
|
|
304
304
|
);
|
|
305
|
-
let e = t.
|
|
305
|
+
let e = t.Ou;
|
|
306
306
|
return null == e && (e = this.tg), i - this.hg >= 1e3 * e;
|
|
307
307
|
}
|
|
308
308
|
Tg(t, s, e, r, h) {
|
|
309
309
|
this.fg(), t.id && (this.ng[t.id] = this.ng[t.id] || []);
|
|
310
310
|
const n = {};
|
|
311
311
|
let o;
|
|
312
|
-
(n.Zr = s), (n.ug = e), null != r && (o = r.
|
|
312
|
+
(n.Zr = s), (n.ug = e), null != r && (o = r.tt()), (n.dg = o);
|
|
313
313
|
const a = [];
|
|
314
314
|
for (const t of h) t.id && a.push(t.id);
|
|
315
315
|
(n.pg = a),
|
|
316
316
|
t.id && this.ng[t.id].push(n),
|
|
317
|
-
this.u && this.u.D(i.k.
|
|
317
|
+
this.u && this.u.D(i.k.iE, this.ng);
|
|
318
318
|
}
|
|
319
319
|
yg(t, s) {
|
|
320
320
|
this.fg(),
|
|
321
|
-
t.
|
|
321
|
+
t.Wu(s),
|
|
322
322
|
(this.hg = s),
|
|
323
323
|
t.id && (this.og[t.id] = s),
|
|
324
|
-
this.u && (this.u.D(i.k.
|
|
324
|
+
this.u && (this.u.D(i.k.nE, s), this.u.D(i.k.oE, this.og));
|
|
325
325
|
}
|
|
326
326
|
}
|
package/src/ui/js/attach-css.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import e, { OPTIONS as L } from "../../managers/braze-instance.js";
|
|
2
2
|
export function attachCSS(n, t, o) {
|
|
3
3
|
const c = n || document.querySelector("head"),
|
|
4
|
-
s = `ab-${t}-css-definitions-${"
|
|
4
|
+
s = `ab-${t}-css-definitions-${"5.0.0".replace(/\./g, "-")}`;
|
|
5
5
|
if (!c) return;
|
|
6
6
|
const a = c.ownerDocument || document;
|
|
7
7
|
if (null == a.getElementById(s)) {
|
package/src/ui/js/feed-css.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { attachCSS as
|
|
2
|
-
import { loadFontAwesome as
|
|
1
|
+
import { attachCSS as Ce } from "./attach-css.js";
|
|
2
|
+
import { loadFontAwesome as Ie } from "./load-font-awesome.js";
|
|
3
3
|
export function attachFeedCSS(t) {
|
|
4
|
-
|
|
4
|
+
Ce(
|
|
5
5
|
t,
|
|
6
6
|
"feed",
|
|
7
|
-
"body>.ab-feed{position:fixed;top:0;right:0;bottom:0;width:421px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}body>.ab-feed .ab-feed-body{position:absolute;top:0;left:0;right:0;border:none;border-left:1px solid #d0d0d0;padding-top:70px;min-height:100%}body>.ab-feed .ab-initial-spinner{float:none}body>.ab-feed .ab-no-cards-message{position:absolute;width:100%;margin-left:-20px;top:40%}.ab-feed{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 7px 1px rgba(66,82,113,.15);-moz-box-shadow:0 1px 7px 1px rgba(66,82,113,.15);box-shadow:0 1px 7px 1px rgba(66,82,113,.15);width:402px;background-color:#eee;font-family:'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px;line-height:130%;letter-spacing:normal;overflow-y:auto;overflow-x:visible;z-index:9011;-webkit-overflow-scrolling:touch}.ab-feed :focus,.ab-feed:focus{outline:0}.ab-feed .ab-feed-body{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #d0d0d0;border-top:none;padding:20px 20px 0 20px}.ab-feed.ab-effect-slide{-webkit-transform:translateX(450px);-moz-transform:translateX(450px);-ms-transform:translateX(450px);transform:translateX(450px);-webkit-transition:transform .5s ease-in-out;-moz-transition:transform .5s ease-in-out;-o-transition:transform .5s ease-in-out;transition:transform .5s ease-in-out}.ab-feed.ab-effect-slide.ab-show{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.ab-feed.ab-effect-slide.ab-hide{-webkit-transform:translateX(450px);-moz-transform:translateX(450px);-ms-transform:translateX(450px);transform:translateX(450px)}.ab-feed .ab-card{position:relative;-webkit-box-shadow:0 2px 3px 0 rgba(178,178,178,.5);-moz-box-shadow:0 2px 3px 0 rgba(178,178,178,.5);box-shadow:0 2px 3px 0 rgba(178,178,178,.5);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100%;border:1px solid #d0d0d0;margin-bottom:20px;overflow:hidden;background-color:#fff;-webkit-transition:height .4s ease-in-out,margin .4s ease-in-out;-moz-transition:height .4s ease-in-out,margin .4s ease-in-out;-o-transition:height .4s ease-in-out,margin .4s ease-in-out;transition:height .4s ease-in-out,margin .4s ease-in-out}.ab-feed .ab-card .ab-pinned-indicator{position:absolute;right:0;top:0;margin-right:-1px;width:0;height:0;border-style:solid;border-width:0 24px 24px 0;border-color:transparent #1676d0 transparent transparent}.ab-feed .ab-card .ab-pinned-indicator .fa-star{position:absolute;right:-21px;top:2px;font-size:9px;color:#fff}.ab-feed .ab-card.ab-effect-card.ab-hide{-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out}.ab-feed .ab-card.ab-effect-card.ab-hide.ab-swiped-left{-webkit-transform:translateX(-450px);-moz-transform:translateX(-450px);-ms-transform:translateX(-450px);transform:translateX(-450px)}.ab-feed .ab-card.ab-effect-card.ab-hide.ab-swiped-right{-webkit-transform:translateX(450px);-moz-transform:translateX(450px);-ms-transform:translateX(450px);transform:translateX(450px)}.ab-feed .ab-card.ab-effect-card.ab-hide:not(.ab-swiped-left):not(.ab-swiped-right){opacity:0}.ab-feed .ab-card .ab-close-button{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;background-color:transparent;background-size:15px;border:none;width:15px;min-width:15px;height:15px;cursor:pointer;display:block;font-size:15px;line-height:0;padding-top:15px;padding-right:15px;padding-left:15px;padding-bottom:15px;position:absolute;right:0;top:0;z-index:9021;opacity:0;-webkit-transition:.5s;-moz-transition:.5s;-o-transition:.5s;transition:.5s}.ab-feed .ab-card .ab-close-button svg{-webkit-transition:.2s ease;-moz-transition:.2s ease;-o-transition:.2s ease;transition:.2s ease;fill:#9b9b9b;height:auto;width:100%}.ab-feed .ab-card .ab-close-button svg.ab-chevron{display:none}.ab-feed .ab-card .ab-close-button:active{background-color:transparent}.ab-feed .ab-card .ab-close-button:focus{background-color:transparent}.ab-feed .ab-card .ab-close-button:hover{background-color:transparent}.ab-feed .ab-card .ab-close-button:hover svg{fill-opacity:.8}.ab-feed .ab-card .ab-close-button:hover{opacity:1}.ab-feed .ab-card .ab-close-button:focus{opacity:1}.ab-feed .ab-card a{float:none;color:inherit;text-decoration:none}.ab-feed .ab-card a:hover{text-decoration:underline}.ab-feed .ab-card .ab-image-area{float:none;display:inline-block;vertical-align:top;line-height:0;overflow:hidden;width:100%;-webkit-box-sizing:initial;-moz-box-sizing:initial;box-sizing:initial}.ab-feed .ab-card .ab-image-area img{float:none;height:auto;width:100%}.ab-feed .ab-card.ab-
|
|
7
|
+
"body>.ab-feed{position:fixed;top:0;right:0;bottom:0;width:421px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}body>.ab-feed .ab-feed-body{position:absolute;top:0;left:0;right:0;border:none;border-left:1px solid #d0d0d0;padding-top:70px;min-height:100%}body>.ab-feed .ab-initial-spinner{float:none}body>.ab-feed .ab-no-cards-message{position:absolute;width:100%;margin-left:-20px;top:40%}.ab-feed{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 7px 1px rgba(66,82,113,.15);-moz-box-shadow:0 1px 7px 1px rgba(66,82,113,.15);box-shadow:0 1px 7px 1px rgba(66,82,113,.15);width:402px;background-color:#eee;font-family:'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px;line-height:130%;letter-spacing:normal;overflow-y:auto;overflow-x:visible;z-index:9011;-webkit-overflow-scrolling:touch}.ab-feed :focus,.ab-feed:focus{outline:0}.ab-feed .ab-feed-body{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #d0d0d0;border-top:none;padding:20px 20px 0 20px}.ab-feed.ab-effect-slide{-webkit-transform:translateX(450px);-moz-transform:translateX(450px);-ms-transform:translateX(450px);transform:translateX(450px);-webkit-transition:transform .5s ease-in-out;-moz-transition:transform .5s ease-in-out;-o-transition:transform .5s ease-in-out;transition:transform .5s ease-in-out}.ab-feed.ab-effect-slide.ab-show{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.ab-feed.ab-effect-slide.ab-hide{-webkit-transform:translateX(450px);-moz-transform:translateX(450px);-ms-transform:translateX(450px);transform:translateX(450px)}.ab-feed .ab-card{position:relative;-webkit-box-shadow:0 2px 3px 0 rgba(178,178,178,.5);-moz-box-shadow:0 2px 3px 0 rgba(178,178,178,.5);box-shadow:0 2px 3px 0 rgba(178,178,178,.5);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100%;border:1px solid #d0d0d0;margin-bottom:20px;overflow:hidden;background-color:#fff;-webkit-transition:height .4s ease-in-out,margin .4s ease-in-out;-moz-transition:height .4s ease-in-out,margin .4s ease-in-out;-o-transition:height .4s ease-in-out,margin .4s ease-in-out;transition:height .4s ease-in-out,margin .4s ease-in-out}.ab-feed .ab-card .ab-pinned-indicator{position:absolute;right:0;top:0;margin-right:-1px;width:0;height:0;border-style:solid;border-width:0 24px 24px 0;border-color:transparent #1676d0 transparent transparent}.ab-feed .ab-card .ab-pinned-indicator .fa-star{position:absolute;right:-21px;top:2px;font-size:9px;color:#fff}.ab-feed .ab-card.ab-effect-card.ab-hide{-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out}.ab-feed .ab-card.ab-effect-card.ab-hide.ab-swiped-left{-webkit-transform:translateX(-450px);-moz-transform:translateX(-450px);-ms-transform:translateX(-450px);transform:translateX(-450px)}.ab-feed .ab-card.ab-effect-card.ab-hide.ab-swiped-right{-webkit-transform:translateX(450px);-moz-transform:translateX(450px);-ms-transform:translateX(450px);transform:translateX(450px)}.ab-feed .ab-card.ab-effect-card.ab-hide:not(.ab-swiped-left):not(.ab-swiped-right){opacity:0}.ab-feed .ab-card .ab-close-button{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;background-color:transparent;background-size:15px;border:none;width:15px;min-width:15px;height:15px;cursor:pointer;display:block;font-size:15px;line-height:0;padding-top:15px;padding-right:15px;padding-left:15px;padding-bottom:15px;position:absolute;right:0;top:0;z-index:9021;opacity:0;-webkit-transition:.5s;-moz-transition:.5s;-o-transition:.5s;transition:.5s}.ab-feed .ab-card .ab-close-button svg{-webkit-transition:.2s ease;-moz-transition:.2s ease;-o-transition:.2s ease;transition:.2s ease;fill:#9b9b9b;height:auto;width:100%}.ab-feed .ab-card .ab-close-button svg.ab-chevron{display:none}.ab-feed .ab-card .ab-close-button:active{background-color:transparent}.ab-feed .ab-card .ab-close-button:focus{background-color:transparent}.ab-feed .ab-card .ab-close-button:hover{background-color:transparent}.ab-feed .ab-card .ab-close-button:hover svg{fill-opacity:.8}.ab-feed .ab-card .ab-close-button:hover{opacity:1}.ab-feed .ab-card .ab-close-button:focus{opacity:1}.ab-feed .ab-card a{float:none;color:inherit;text-decoration:none}.ab-feed .ab-card a:hover{text-decoration:underline}.ab-feed .ab-card .ab-image-area{float:none;display:inline-block;vertical-align:top;line-height:0;overflow:hidden;width:100%;-webkit-box-sizing:initial;-moz-box-sizing:initial;box-sizing:initial}.ab-feed .ab-card .ab-image-area img{float:none;height:auto;width:100%}.ab-feed .ab-card.ab-image-only .ab-card-body{display:none}.ab-feed .ab-card .ab-card-body{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:inline-block;width:100%;position:relative}.ab-feed .ab-card .ab-unread-indicator{position:absolute;bottom:0;margin-right:-1px;width:100%;height:5px;background-color:#1676d0}.ab-feed .ab-card .ab-unread-indicator.read{background-color:transparent}.ab-feed .ab-card .ab-title{float:none;letter-spacing:0;margin:0;font-weight:700;font-family:'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;display:block;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis;font-size:18px;line-height:130%;padding:20px 25px 0 25px}.ab-feed .ab-card .ab-description{float:none;color:#545454;padding:15px 25px 20px 25px;word-wrap:break-word;white-space:pre-wrap}.ab-feed .ab-card .ab-description.ab-no-title{padding-top:20px}.ab-feed .ab-card .ab-url-area{float:none;color:#1676d0;margin-top:12px;font-family:'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif}.ab-feed .ab-card.ab-classic-card .ab-card-body{min-height:40px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.ab-feed .ab-card.ab-classic-card.with-image .ab-card-body{min-height:100px;padding-left:72px}.ab-feed .ab-card.ab-classic-card.with-image .ab-image-area{width:60px;height:60px;padding:20px 0 25px 25px;position:absolute}.ab-feed .ab-card.ab-classic-card.with-image .ab-image-area img{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;max-width:100%;max-height:100%;width:auto;height:auto}.ab-feed .ab-card.ab-classic-card.with-image .ab-title{background-color:transparent;font-size:16px}.ab-feed .ab-card.ab-classic-card.with-image .ab-description{padding-top:10px}.ab-feed .ab-card.ab-control-card{height:0;width:0;margin:0;border:0}.ab-feed .ab-feed-buttons-wrapper{float:none;position:relative;background-color:#282828;height:50px;-webkit-box-shadow:0 2px 3px 0 rgba(178,178,178,.5);-moz-box-shadow:0 2px 3px 0 rgba(178,178,178,.5);box-shadow:0 2px 3px 0 rgba(178,178,178,.5);z-index:1}.ab-feed .ab-feed-buttons-wrapper .ab-close-button,.ab-feed .ab-feed-buttons-wrapper .ab-refresh-button{float:none;cursor:pointer;color:#fff;font-size:18px;padding:16px;-webkit-transition:.2s;-moz-transition:.2s;-o-transition:.2s;transition:.2s}.ab-feed .ab-feed-buttons-wrapper .ab-close-button:hover,.ab-feed .ab-feed-buttons-wrapper .ab-refresh-button:hover{font-size:22px}.ab-feed .ab-feed-buttons-wrapper .ab-close-button{float:right}.ab-feed .ab-feed-buttons-wrapper .ab-close-button:hover{padding-top:12px;padding-right:14px}.ab-feed .ab-feed-buttons-wrapper .ab-refresh-button{padding-left:17px}.ab-feed .ab-feed-buttons-wrapper .ab-refresh-button:hover{padding-top:13px;padding-left:14px}.ab-feed .ab-no-cards-message{text-align:center;margin-bottom:20px}@media (max-width:600px){body>.ab-feed{width:100%}}",
|
|
8
8
|
);
|
|
9
9
|
}
|
|
10
10
|
export function setupFeedUI() {
|
|
11
|
-
attachFeedCSS(),
|
|
11
|
+
attachFeedCSS(), Ie();
|
|
12
12
|
}
|