@braze/web-sdk 4.10.1 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/index.d.ts +26 -111
  2. package/package.json +1 -1
  3. package/shared-lib/braze-shared-lib.js +8 -1
  4. package/shared-lib/encoding-utils.js +12 -1
  5. package/shared-lib/event-types.js +34 -1
  6. package/shared-lib/guid.js +10 -1
  7. package/shared-lib/indexed-db-adapter.js +352 -1
  8. package/shared-lib/logger.js +38 -1
  9. package/shared-lib/supported-options.js +26 -1
  10. package/shared-lib/types.js +1 -1
  11. package/src/Card/card-manager-factory.js +14 -1
  12. package/src/Card/card-manager.js +78 -1
  13. package/src/Card/display/card-display.js +138 -1
  14. package/src/Card/index.js +6 -1
  15. package/src/Card/log-card-click.js +11 -1
  16. package/src/Card/log-card-dismissal.js +11 -1
  17. package/src/Card/log-card-impressions.js +13 -1
  18. package/src/Card/log-content-card-click.js +4 -1
  19. package/src/Card/log-content-card-impressions.js +4 -1
  20. package/src/Card/models/captioned-image.js +33 -1
  21. package/src/Card/models/card.js +197 -1
  22. package/src/Card/models/classic-card.js +32 -1
  23. package/src/Card/models/control-card.js +23 -1
  24. package/src/Card/models/image-only.js +31 -1
  25. package/src/Card/models/index.js +5 -1
  26. package/src/Card/types.js +1 -1
  27. package/src/Card/util/card-factory.js +104 -1
  28. package/src/ContentCards/content-cards-provider-factory.js +20 -1
  29. package/src/ContentCards/content-cards-provider.js +391 -1
  30. package/src/ContentCards/content-cards.js +24 -1
  31. package/src/ContentCards/get-cached-content-cards.js +5 -1
  32. package/src/ContentCards/index.js +7 -1
  33. package/src/ContentCards/request-content-cards-refresh.js +5 -1
  34. package/src/ContentCards/subscribe-to-content-cards-updates.js +17 -1
  35. package/src/ContentCards/types.js +1 -1
  36. package/src/ContentCards/ui/hide-content-cards.js +8 -1
  37. package/src/ContentCards/ui/show-content-cards.js +77 -1
  38. package/src/ContentCards/ui/toggle-content-cards.js +8 -1
  39. package/src/Core/add-sdk-metadata.js +26 -1
  40. package/src/Core/braze-sdk-metadata.js +10 -1
  41. package/src/Core/change-user.js +17 -1
  42. package/src/Core/destroy.js +5 -1
  43. package/src/Core/device-properties.js +9 -1
  44. package/src/Core/disable-sdk.js +15 -1
  45. package/src/Core/enable-sdk.js +11 -1
  46. package/src/Core/get-device-id.js +13 -1
  47. package/src/Core/get-user.js +4 -1
  48. package/src/Core/handle-braze-action.js +87 -1
  49. package/src/Core/index.js +23 -1
  50. package/src/Core/initialize.js +4 -1
  51. package/src/Core/is-disabled.js +4 -1
  52. package/src/Core/log-custom-event.js +38 -1
  53. package/src/Core/log-purchase.js +245 -1
  54. package/src/Core/open-session.js +25 -1
  55. package/src/Core/remove-all-subscriptions.js +4 -1
  56. package/src/Core/remove-subscription.js +4 -1
  57. package/src/Core/request-immediate-data-flush.js +6 -1
  58. package/src/Core/set-logger.js +4 -1
  59. package/src/Core/set-sdk-authentication-signature.js +8 -1
  60. package/src/Core/subscribe-to-sdk-authentication-failures.js +6 -1
  61. package/src/Core/toggle-logging.js +4 -1
  62. package/src/Core/types.js +1 -1
  63. package/src/Core/wipe-data.js +16 -1
  64. package/src/FeatureFlags/feature-flag-factory.js +24 -1
  65. package/src/FeatureFlags/feature-flag.js +64 -1
  66. package/src/FeatureFlags/feature-flags-provider-factory.js +19 -1
  67. package/src/FeatureFlags/feature-flags-provider.js +145 -1
  68. package/src/FeatureFlags/get-all-feature-flags.js +12 -1
  69. package/src/FeatureFlags/get-feature-flag.js +10 -1
  70. package/src/FeatureFlags/index.js +6 -1
  71. package/src/FeatureFlags/log-feature-flag-impression.js +23 -1
  72. package/src/FeatureFlags/refresh-feature-flags.js +9 -1
  73. package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +9 -1
  74. package/src/FeatureFlags/types.js +1 -1
  75. package/src/Feed/feed-provider-factory.js +18 -1
  76. package/src/Feed/feed-provider.js +90 -1
  77. package/src/Feed/feed.js +20 -1
  78. package/src/Feed/get-cached-feed.js +5 -1
  79. package/src/Feed/index.js +8 -1
  80. package/src/Feed/log-feed-displayed.js +7 -1
  81. package/src/Feed/request-feed-refresh.js +5 -1
  82. package/src/Feed/subscribe-to-feed-updates.js +5 -1
  83. package/src/Feed/types.js +1 -1
  84. package/src/Feed/ui/hide-feed.js +7 -1
  85. package/src/Feed/ui/show-feed.js +96 -1
  86. package/src/Feed/ui/toggle-feed.js +8 -1
  87. package/src/InAppMessage/defer-in-app-message.js +13 -1
  88. package/src/InAppMessage/display/get-animation-effect.js +19 -1
  89. package/src/InAppMessage/display/html-message-to-html.js +243 -1
  90. package/src/InAppMessage/display/in-app-message-to-html.js +188 -1
  91. package/src/InAppMessage/display/modal-utils.js +73 -1
  92. package/src/InAppMessage/get-deferred-in-app-message.js +5 -1
  93. package/src/InAppMessage/in-app-message-factory.js +166 -1
  94. package/src/InAppMessage/in-app-message-manager-factory.js +16 -1
  95. package/src/InAppMessage/in-app-message-manager.js +248 -1
  96. package/src/InAppMessage/index.js +16 -1
  97. package/src/InAppMessage/log-in-app-message-button-click.js +27 -1
  98. package/src/InAppMessage/log-in-app-message-click.js +19 -1
  99. package/src/InAppMessage/log-in-app-message-html-click.js +23 -1
  100. package/src/InAppMessage/log-in-app-message-impression.js +13 -1
  101. package/src/InAppMessage/models/control-message.js +11 -1
  102. package/src/InAppMessage/models/full-screen-message.js +105 -1
  103. package/src/InAppMessage/models/html-message.js +68 -1
  104. package/src/InAppMessage/models/in-app-message-button.js +47 -1
  105. package/src/InAppMessage/models/in-app-message.js +382 -1
  106. package/src/InAppMessage/models/modal-message.js +101 -1
  107. package/src/InAppMessage/models/slide-up-message.js +84 -1
  108. package/src/InAppMessage/models/templated-in-app-message.js +19 -1
  109. package/src/InAppMessage/subscribe-to-in-app-message.js +10 -1
  110. package/src/InAppMessage/types.js +1 -1
  111. package/src/InAppMessage/ui/automatically-show-in-app-messages.js +15 -1
  112. package/src/InAppMessage/ui/show-in-app-message.js +181 -1
  113. package/src/InAppMessage/utils/in-app-message-utils.js +1 -1
  114. package/src/Push/index.js +5 -1
  115. package/src/Push/is-push-blocked.js +5 -1
  116. package/src/Push/is-push-permission-granted.js +5 -1
  117. package/src/Push/is-push-supported.js +5 -1
  118. package/src/Push/push-manager-factory.js +30 -1
  119. package/src/Push/push-manager.js +387 -1
  120. package/src/Push/request-push-permission.js +9 -1
  121. package/src/Push/types.js +1 -1
  122. package/src/Push/unregister-push.js +5 -1
  123. package/src/Push/utils/push-utils.js +36 -1
  124. package/src/User/index.js +1 -1
  125. package/src/User/types.js +1 -1
  126. package/src/User/user-manager.js +73 -1
  127. package/src/User/user.js +302 -1
  128. package/src/common/base-feed.js +29 -1
  129. package/src/common/base-provider.js +6 -1
  130. package/src/common/constants.js +14 -1
  131. package/src/common/event-logger.js +31 -1
  132. package/src/common/feed-display.js +210 -1
  133. package/src/common/translations.js +148 -1
  134. package/src/common/types.js +1 -1
  135. package/src/index.js +9 -1
  136. package/src/l10n/l10n-manager-factory.js +22 -1
  137. package/src/l10n/l10n-manager.js +25 -1
  138. package/src/l10n/types.js +1 -1
  139. package/src/managers/auth-manager.js +51 -1
  140. package/src/managers/braze-instance.js +322 -1
  141. package/src/managers/device-manager.js +85 -1
  142. package/src/managers/network-manager.js +256 -1
  143. package/src/managers/server-config-manager.js +108 -1
  144. package/src/managers/session-manager.js +75 -1
  145. package/src/managers/storage-manager-factory.js +42 -1
  146. package/src/managers/storage-manager.js +426 -1
  147. package/src/managers/subscription-manager.js +28 -1
  148. package/src/managers/types.js +1 -1
  149. package/src/models/backend-errors.js +8 -1
  150. package/src/models/braze-event.js +47 -1
  151. package/src/models/braze-sdk-metadata.js +10 -1
  152. package/src/models/device.js +18 -1
  153. package/src/models/identifier.js +19 -1
  154. package/src/models/push-token.js +27 -1
  155. package/src/models/request-result.js +8 -1
  156. package/src/models/server-config.js +48 -1
  157. package/src/models/types.js +1 -1
  158. package/src/request-controller.js +311 -1
  159. package/src/triggers/models/custom-event-data.js +14 -1
  160. package/src/triggers/models/custom-event-property-data.js +21 -1
  161. package/src/triggers/models/filter-set.js +55 -1
  162. package/src/triggers/models/filter.js +102 -1
  163. package/src/triggers/models/in-app-message-click-data.js +25 -1
  164. package/src/triggers/models/purchase-data.js +14 -1
  165. package/src/triggers/models/purchase-property-data.js +21 -1
  166. package/src/triggers/models/push-click-data.js +15 -1
  167. package/src/triggers/models/trigger-condition.js +105 -1
  168. package/src/triggers/models/trigger-events.js +8 -1
  169. package/src/triggers/models/trigger.js +122 -1
  170. package/src/triggers/triggers-provider-factory.js +34 -1
  171. package/src/triggers/triggers-provider.js +326 -1
  172. package/src/triggers/types.js +1 -1
  173. package/src/types.js +1 -1
  174. package/src/ui/js/attach-css.js +13 -1
  175. package/src/ui/js/feed-css.js +12 -1
  176. package/src/ui/js/iam-css.js +12 -1
  177. package/src/ui/js/index.js +3 -1
  178. package/src/ui/js/load-font-awesome.js +13 -1
  179. package/src/util/base-device-parser.js +14 -1
  180. package/src/util/braze-actions.js +84 -1
  181. package/src/util/browser-detector.js +84 -1
  182. package/src/util/client-hints-parser.js +66 -1
  183. package/src/util/code-utils.js +100 -1
  184. package/src/util/color-utils.js +29 -1
  185. package/src/util/component-utils.js +26 -1
  186. package/src/util/date-utils.js +28 -1
  187. package/src/util/deprecation-utils.js +5 -1
  188. package/src/util/device-constants.js +13 -1
  189. package/src/util/dom-utils.js +91 -1
  190. package/src/util/error-utils.js +2 -1
  191. package/src/util/key-codes.js +1 -1
  192. package/src/util/math.js +5 -1
  193. package/src/util/net.js +71 -1
  194. package/src/util/request-header-utils.js +46 -1
  195. package/src/util/string-utils.js +22 -1
  196. package/src/util/types.js +1 -1
  197. package/src/util/url-utils.js +20 -1
  198. package/src/util/user-agent-parser.js +80 -1
  199. package/src/util/validation-utils.js +217 -1
  200. package/src/util/window-utils.js +34 -1
  201. package/src/Card/models/banner.js +0 -1
  202. package/src/ContentCards/log-content-cards-displayed.js +0 -1
package/src/Card/index.js CHANGED
@@ -1 +1,6 @@
1
- export*from"./models/index.js";export{logCardClick}from"./log-card-click.js";export{logCardDismissal}from"./log-card-dismissal.js";export{logCardImpressions}from"./log-card-impressions.js";export{logContentCardImpressions}from"./log-content-card-impressions.js";export{logContentCardClick}from"./log-content-card-click.js";
1
+ export * from "./models/index.js";
2
+ export { logCardClick } from "./log-card-click.js";
3
+ export { logCardDismissal } from "./log-card-dismissal.js";
4
+ export { logCardImpressions } from "./log-card-impressions.js";
5
+ export { logContentCardImpressions } from "./log-content-card-impressions.js";
6
+ export { logContentCardClick } from "./log-content-card-click.js";
@@ -1 +1,11 @@
1
- import{Card}from"./models/index.js";import n from"./card-manager-factory.js";import{MUST_BE_CARD_WARNING_SUFFIX as f}from"../common/constants.js";import e from"../managers/braze-instance.js";import r from"../../shared-lib/braze-shared-lib.js";export function logCardClick(o,a){return!!e.rr()&&(o instanceof Card?n.m().h(o,a).O:(r.j.error("card "+f),!1))}
1
+ import { Card } from "./models/index.js";
2
+ import n from "./card-manager-factory.js";
3
+ import { MUST_BE_CARD_WARNING_SUFFIX as f } from "../common/constants.js";
4
+ import e from "../managers/braze-instance.js";
5
+ import r from "../../shared-lib/braze-shared-lib.js";
6
+ export function logCardClick(o, a) {
7
+ return (
8
+ !!e.rr() &&
9
+ (o instanceof Card ? n.m().h(o, a).O : (r.j.error("card " + f), !1))
10
+ );
11
+ }
@@ -1 +1,11 @@
1
- import{Card}from"./models/index.js";import n from"./card-manager-factory.js";import{MUST_BE_CARD_WARNING_SUFFIX as f}from"../common/constants.js";import e from"../managers/braze-instance.js";import r from"../../shared-lib/braze-shared-lib.js";export function logCardDismissal(o){return!!e.rr()&&(o instanceof Card?n.m().A(o).O:(r.j.error("card "+f),!1))}
1
+ import { Card } from "./models/index.js";
2
+ import n from "./card-manager-factory.js";
3
+ import { MUST_BE_CARD_WARNING_SUFFIX as f } from "../common/constants.js";
4
+ import e from "../managers/braze-instance.js";
5
+ import r from "../../shared-lib/braze-shared-lib.js";
6
+ export function logCardDismissal(o) {
7
+ return (
8
+ !!e.rr() &&
9
+ (o instanceof Card ? n.m().A(o).O : (r.j.error("card " + f), !1))
10
+ );
11
+ }
@@ -1 +1,13 @@
1
- import{Card}from"./models/index.js";import n from"./card-manager-factory.js";import e from"../managers/braze-instance.js";import{isArray as p}from"../util/code-utils.js";import{MUST_BE_CARD_WARNING_SUFFIX as f}from"../common/constants.js";import r from"../../shared-lib/braze-shared-lib.js";export function logCardImpressions(o,s){if(!e.rr())return!1;if(!p(o))return r.j.error("cards must be an array"),!1;for(const s of o)if(!(s instanceof Card))return r.j.error(`Each card in cards ${f}`),!1;return n.m().J(o,s).O}
1
+ import { Card } from "./models/index.js";
2
+ import n from "./card-manager-factory.js";
3
+ import e from "../managers/braze-instance.js";
4
+ import { isArray as p } from "../util/code-utils.js";
5
+ import { MUST_BE_CARD_WARNING_SUFFIX as f } from "../common/constants.js";
6
+ import r from "../../shared-lib/braze-shared-lib.js";
7
+ export function logCardImpressions(o, s) {
8
+ if (!e.rr()) return !1;
9
+ if (!p(o)) return r.j.error("cards must be an array"), !1;
10
+ for (const s of o)
11
+ if (!(s instanceof Card)) return r.j.error(`Each card in cards ${f}`), !1;
12
+ return n.m().J(o, s).O;
13
+ }
@@ -1 +1,4 @@
1
- import{logCardClick}from"./log-card-click.js";export function logContentCardClick(o){return logCardClick(o,!0)}
1
+ import { logCardClick } from "./log-card-click.js";
2
+ export function logContentCardClick(o) {
3
+ return logCardClick(o, !0);
4
+ }
@@ -1 +1,4 @@
1
- import{logCardImpressions}from"./log-card-impressions.js";export function logContentCardImpressions(o){return logCardImpressions(o,!0)}
1
+ import { logCardImpressions } from "./log-card-impressions.js";
2
+ export function logContentCardImpressions(o) {
3
+ return logCardImpressions(o, !0);
4
+ }
@@ -1 +1,33 @@
1
- import Card from"./card.js";export default class CaptionedImage extends Card{constructor(t,s,i,h,e,r,a,o,c,n,d,p,u,l,m,f){super(t,s,i,h,e,r,a,o,c,n,d,p,u,l,m,f),this.U="ab-captioned-image",this.V=!0,this.test=!1}ss(){const t={};return t[Card.hs.ts]=Card.es.tt,t[Card.hs.ns]=this.id,t[Card.hs.ls]=this.viewed,t[Card.hs.st]=this.title,t[Card.hs.os]=this.imageUrl,t[Card.hs.it]=this.description,t[Card.hs.us]=this.updated,t[Card.hs.cs]=this.created,t[Card.hs.bs]=this.categories,t[Card.hs.ds]=this.expiresAt,t[Card.hs.URL]=this.url,t[Card.hs.ps]=this.linkText,t[Card.hs.fs]=this.aspectRatio,t[Card.hs.xs]=this.extras,t[Card.hs.gs]=this.pinned,t[Card.hs.js]=this.dismissible,t[Card.hs.ys]=this.clicked,t[Card.hs.zs]=this.test,t}}
1
+ import Card from "./card.js";
2
+ export default class CaptionedImage extends Card {
3
+ constructor(t, s, i, h, e, r, a, o, c, n, d, p, u, l, m, f) {
4
+ super(t, s, i, h, e, r, a, o, c, n, d, p, u, l, m, f),
5
+ (this.U = "ab-captioned-image"),
6
+ (this.V = !0),
7
+ (this.test = !1);
8
+ }
9
+ tt() {
10
+ const t = {};
11
+ return (
12
+ (t[Card.it.st] = Card.et.ht),
13
+ (t[Card.it.rt] = this.id),
14
+ (t[Card.it.ot] = this.viewed),
15
+ (t[Card.it.ct] = this.title),
16
+ (t[Card.it.nt] = this.imageUrl),
17
+ (t[Card.it.dt] = this.description),
18
+ (t[Card.it.ut] = this.updated),
19
+ (t[Card.it.lt] = this.created),
20
+ (t[Card.it.ft] = this.categories),
21
+ (t[Card.it.xt] = this.expiresAt),
22
+ (t[Card.it.URL] = this.url),
23
+ (t[Card.it.bt] = this.linkText),
24
+ (t[Card.it.gt] = this.aspectRatio),
25
+ (t[Card.it.jt] = this.extras),
26
+ (t[Card.it.zt] = this.pinned),
27
+ (t[Card.it.kt] = this.dismissible),
28
+ (t[Card.it.qt] = this.clicked),
29
+ (t[Card.it.vt] = this.test),
30
+ t
31
+ );
32
+ }
33
+ }
@@ -1 +1,197 @@
1
- import{convertMsToSeconds as h,dateFromUnixTimestamp as l}from"../../util/date-utils.js";import{FEED_ANIMATION_DURATION as u}from"../../common/constants.js";import E from"../../managers/subscription-manager.js";export default class Card{constructor(t,i,s,h,n,l,e,r,u,E,o,T,I,a,N,c){this.id=t,this.viewed=i,this.title=s,this.imageUrl=h,this.description=n,this.created=l,this.updated=e,this.categories=r,this.expiresAt=u,this.url=E,this.linkText=o,this.aspectRatio=T,this.extras=I,this.pinned=a,this.dismissible=N,this.clicked=c,this.id=t,this.viewed=i||!1,this.title=s||"",this.imageUrl=h,this.description=n||"",this.created=l||null,this.updated=e||null,this.categories=r||[],this.expiresAt=u||null,this.url=E,this.linkText=o,null==T?this.aspectRatio=null:(T=parseFloat(T.toString()),this.aspectRatio=isNaN(T)?null:T),this.extras=I||{},this.pinned=a||!1,this.dismissible=N||!1,this.dismissed=!1,this.clicked=c||!1,this.isControl=!1,this.test=!1,this.ht=null,this.nt=null}subscribeToClickedEvent(t){return this.et().lt(t)}subscribeToDismissedEvent(t){return this.rt().lt(t)}removeSubscription(t){this.et().removeSubscription(t),this.rt().removeSubscription(t)}removeAllSubscriptions(){this.et().removeAllSubscriptions(),this.rt().removeAllSubscriptions()}dismissCard(){if(!this.dismissible||this.dismissed)return;"function"==typeof this.logCardDismissal&&this.logCardDismissal();let t=this._;!t&&this.id&&(t=document.getElementById(this.id)),t&&(t.style.height=t.offsetHeight+"px",t.className=t.className+" ab-hide",setTimeout((function(){t&&t.parentNode&&(t.style.height="0",t.style.margin="0",setTimeout((function(){t&&t.parentNode&&t.parentNode.removeChild(t)}),Card.ut))}),u))}et(){return null==this.ht&&(this.ht=new E),this.ht}rt(){return null==this.nt&&(this.nt=new E),this.nt}M(){this.viewed=!0}p(){this.viewed=!0,this.clicked=!0,this.et().Et()}F(){return!(!this.dismissible||this.dismissed)&&(this.dismissed=!0,this.rt().Et(),!0)}ot(t){if(null==t||t[Card.Tt.ns]!==this.id)return!0;if(t[Card.Tt.It])return!1;if(null!=t[Card.Tt.us]&&null!=this.updated&&parseInt(t[Card.Tt.us])<h(this.updated.valueOf()))return!0;if(t[Card.Tt.ls]&&!this.viewed&&(this.viewed=!0),t[Card.Tt.ys]&&!this.clicked&&(this.clicked=t[Card.Tt.ys]),null!=t[Card.Tt.st]&&(this.title=t[Card.Tt.st]),null!=t[Card.Tt.os]&&(this.imageUrl=t[Card.Tt.os]),null!=t[Card.Tt.it]&&(this.description=t[Card.Tt.it]),null!=t[Card.Tt.us]){const i=l(t[Card.Tt.us]);null!=i&&(this.updated=i)}if(null!=t[Card.Tt.ds]){let i;i=t[Card.Tt.ds]===Card.Nt?null:l(t[Card.Tt.ds]),this.expiresAt=i}if(null!=t[Card.Tt.URL]&&(this.url=t[Card.Tt.URL]),null!=t[Card.Tt.ps]&&(this.linkText=t[Card.Tt.ps]),null!=t[Card.Tt.fs]){const i=parseFloat(t[Card.Tt.fs].toString());this.aspectRatio=isNaN(i)?null:i}return null!=t[Card.Tt.xs]&&(this.extras=t[Card.Tt.xs]),null!=t[Card.Tt.gs]&&(this.pinned=t[Card.Tt.gs]),null!=t[Card.Tt.js]&&(this.dismissible=t[Card.Tt.js]),null!=t[Card.Tt.zs]&&(this.test=t[Card.Tt.zs]),!0}ss(){throw new Error("Must be implemented in a subclass")}}Card.Nt=-1,Card.Tt={ns:"id",ls:"v",js:"db",It:"r",us:"ca",gs:"p",ds:"ea",xs:"e",ts:"tp",os:"i",st:"tt",it:"ds",URL:"u",ps:"dm",fs:"ar",ys:"cl",zs:"t"},Card.es={tt:"captioned_image",ct:"text_announcement",St:"short_news",rs:"banner_image",At:"control"},Card.hs={ns:"id",ls:"v",js:"db",cs:"cr",us:"ca",gs:"p",bs:"t",ds:"ea",xs:"e",ts:"tp",os:"i",st:"tt",it:"ds",URL:"u",ps:"dm",fs:"ar",ys:"cl",zs:"s"},Card.Dt={dt:"ADVERTISING",Ct:"ANNOUNCEMENTS",Rt:"NEWS",bt:"SOCIAL"},Card.ut=400;
1
+ import {
2
+ convertMsToSeconds as h,
3
+ dateFromUnixTimestamp as l,
4
+ } from "../../util/date-utils.js";
5
+ import { FEED_ANIMATION_DURATION as u } from "../../common/constants.js";
6
+ import E from "../../managers/subscription-manager.js";
7
+ import r from "../../../shared-lib/braze-shared-lib.js";
8
+ export default class Card {
9
+ constructor(t, i, s, h, l, n, e, r, u, E, o, T, a, I, N, c) {
10
+ (this.id = t),
11
+ (this.viewed = i),
12
+ (this.title = s),
13
+ (this.imageUrl = h),
14
+ (this.description = l),
15
+ (this.created = n),
16
+ (this.updated = e),
17
+ (this.categories = r),
18
+ (this.expiresAt = u),
19
+ (this.url = E),
20
+ (this.linkText = o),
21
+ (this.aspectRatio = T),
22
+ (this.extras = a),
23
+ (this.pinned = I),
24
+ (this.dismissible = N),
25
+ (this.clicked = c),
26
+ (this.id = t),
27
+ (this.viewed = i || !1),
28
+ (this.title = s || ""),
29
+ (this.imageUrl = h),
30
+ (this.description = l || ""),
31
+ (this.created = n || null),
32
+ (this.updated = e || null),
33
+ (this.categories = r || []),
34
+ (this.expiresAt = u || null),
35
+ (this.url = E),
36
+ (this.linkText = o),
37
+ null == T
38
+ ? (this.aspectRatio = null)
39
+ : ((T = parseFloat(T.toString())),
40
+ (this.aspectRatio = isNaN(T) ? null : T)),
41
+ (this.extras = a || {}),
42
+ (this.pinned = I || !1),
43
+ (this.dismissible = N || !1),
44
+ (this.dismissed = !1),
45
+ (this.clicked = c || !1),
46
+ (this.isControl = !1),
47
+ (this.test = !1),
48
+ (this.Et = null),
49
+ (this.Tt = null);
50
+ }
51
+ subscribeToClickedEvent(t) {
52
+ return this.Nt().It(t);
53
+ }
54
+ subscribeToDismissedEvent(t) {
55
+ return this.St().It(t);
56
+ }
57
+ removeSubscription(t) {
58
+ this.Nt().removeSubscription(t), this.St().removeSubscription(t);
59
+ }
60
+ removeAllSubscriptions() {
61
+ this.Nt().removeAllSubscriptions(), this.St().removeAllSubscriptions();
62
+ }
63
+ dismissCard() {
64
+ if (!this.dismissible || this.dismissed) return;
65
+ "function" == typeof this.logCardDismissal && this.logCardDismissal();
66
+ let t = this._;
67
+ !t && this.id && (t = document.getElementById(this.id)),
68
+ t &&
69
+ ((t.style.height = t.offsetHeight + "px"),
70
+ (t.className = t.className + " ab-hide"),
71
+ setTimeout(function () {
72
+ t &&
73
+ t.parentNode &&
74
+ ((t.style.height = "0"),
75
+ (t.style.margin = "0"),
76
+ setTimeout(function () {
77
+ t && t.parentNode && t.parentNode.removeChild(t);
78
+ }, Card.At));
79
+ }, u));
80
+ }
81
+ Nt() {
82
+ return null == this.Et && (this.Et = new E()), this.Et;
83
+ }
84
+ St() {
85
+ return null == this.Tt && (this.Tt = new E()), this.Tt;
86
+ }
87
+ M() {
88
+ this.viewed = !0;
89
+ }
90
+ p() {
91
+ (this.viewed = !0), (this.clicked = !0), this.Nt().Dt();
92
+ }
93
+ F() {
94
+ return (
95
+ !(!this.dismissible || this.dismissed) &&
96
+ ((this.dismissed = !0), this.St().Dt(), !0)
97
+ );
98
+ }
99
+ Ct(t) {
100
+ if (null == t || t[Card.Rt.rt] !== this.id) return !0;
101
+ if (t[Card.Rt.Lt]) return !1;
102
+ if (
103
+ null != t[Card.Rt.ut] &&
104
+ null != this.updated &&
105
+ parseInt(t[Card.Rt.ut]) < h(this.updated.valueOf())
106
+ )
107
+ return !0;
108
+ if (
109
+ (t[Card.Rt.ot] && !this.viewed && (this.viewed = !0),
110
+ t[Card.Rt.qt] && !this.clicked && (this.clicked = t[Card.Rt.qt]),
111
+ null != t[Card.Rt.ct] && (this.title = t[Card.Rt.ct]),
112
+ null != t[Card.Rt.nt] && (this.imageUrl = t[Card.Rt.nt]),
113
+ null != t[Card.Rt.dt] && (this.description = t[Card.Rt.dt]),
114
+ null != t[Card.Rt.ut])
115
+ ) {
116
+ const i = l(t[Card.Rt.ut]);
117
+ null != i && (this.updated = i);
118
+ }
119
+ if (null != t[Card.Rt.xt]) {
120
+ let i;
121
+ (i = t[Card.Rt.xt] === Card._t ? null : l(t[Card.Rt.xt])),
122
+ (this.expiresAt = i);
123
+ }
124
+ if (
125
+ (null != t[Card.Rt.URL] && (this.url = t[Card.Rt.URL]),
126
+ null != t[Card.Rt.bt] && (this.linkText = t[Card.Rt.bt]),
127
+ null != t[Card.Rt.gt])
128
+ ) {
129
+ const i = parseFloat(t[Card.Rt.gt].toString());
130
+ this.aspectRatio = isNaN(i) ? null : i;
131
+ }
132
+ return (
133
+ null != t[Card.Rt.jt] && (this.extras = t[Card.Rt.jt]),
134
+ null != t[Card.Rt.zt] && (this.pinned = t[Card.Rt.zt]),
135
+ null != t[Card.Rt.kt] && (this.dismissible = t[Card.Rt.kt]),
136
+ null != t[Card.Rt.vt] && (this.test = t[Card.Rt.vt]),
137
+ !0
138
+ );
139
+ }
140
+ tt() {
141
+ r.j.error("Must be implemented in a subclass");
142
+ }
143
+ }
144
+ (Card._t = -1),
145
+ (Card.Rt = {
146
+ rt: "id",
147
+ ot: "v",
148
+ kt: "db",
149
+ Lt: "r",
150
+ ut: "ca",
151
+ zt: "p",
152
+ xt: "ea",
153
+ jt: "e",
154
+ st: "tp",
155
+ nt: "i",
156
+ ct: "tt",
157
+ dt: "ds",
158
+ URL: "u",
159
+ bt: "dm",
160
+ gt: "ar",
161
+ qt: "cl",
162
+ vt: "t",
163
+ }),
164
+ (Card.et = {
165
+ ht: "captioned_image",
166
+ Ot: "text_announcement",
167
+ Mt: "short_news",
168
+ Pt: "banner_image",
169
+ Ut: "control",
170
+ }),
171
+ (Card.it = {
172
+ rt: "id",
173
+ ot: "v",
174
+ kt: "db",
175
+ lt: "cr",
176
+ ut: "ca",
177
+ zt: "p",
178
+ ft: "t",
179
+ xt: "ea",
180
+ jt: "e",
181
+ st: "tp",
182
+ nt: "i",
183
+ ct: "tt",
184
+ dt: "ds",
185
+ URL: "u",
186
+ bt: "dm",
187
+ gt: "ar",
188
+ qt: "cl",
189
+ vt: "s",
190
+ }),
191
+ (Card.Gt = {
192
+ Xt: "ADVERTISING",
193
+ Vt: "ANNOUNCEMENTS",
194
+ Wt: "NEWS",
195
+ Ft: "SOCIAL",
196
+ }),
197
+ (Card.At = 400);
@@ -1 +1,32 @@
1
- import Card from"./card.js";export default class ClassicCard extends Card{constructor(s,t,i,h,r,c,e,a,o,d,l,n,u,p,f,m){super(s,t,i,h,r,c,e,a,o,d,l,n,u,p,f,m),this.U="ab-classic-card",this.V=!0}ss(){const s={};return s[Card.hs.ts]=Card.es.St,s[Card.hs.ns]=this.id,s[Card.hs.ls]=this.viewed,s[Card.hs.st]=this.title,s[Card.hs.os]=this.imageUrl,s[Card.hs.it]=this.description,s[Card.hs.us]=this.updated,s[Card.hs.cs]=this.created,s[Card.hs.bs]=this.categories,s[Card.hs.ds]=this.expiresAt,s[Card.hs.URL]=this.url,s[Card.hs.ps]=this.linkText,s[Card.hs.fs]=this.aspectRatio,s[Card.hs.xs]=this.extras,s[Card.hs.gs]=this.pinned,s[Card.hs.js]=this.dismissible,s[Card.hs.ys]=this.clicked,s[Card.hs.zs]=this.test,s}}
1
+ import Card from "./card.js";
2
+ export default class ClassicCard extends Card {
3
+ constructor(s, t, i, h, r, c, e, a, o, d, l, n, u, p, f, m) {
4
+ super(s, t, i, h, r, c, e, a, o, d, l, n, u, p, f, m),
5
+ (this.U = "ab-classic-card"),
6
+ (this.V = !0);
7
+ }
8
+ tt() {
9
+ const s = {};
10
+ return (
11
+ (s[Card.it.st] = Card.et.Mt),
12
+ (s[Card.it.rt] = this.id),
13
+ (s[Card.it.ot] = this.viewed),
14
+ (s[Card.it.ct] = this.title),
15
+ (s[Card.it.nt] = this.imageUrl),
16
+ (s[Card.it.dt] = this.description),
17
+ (s[Card.it.ut] = this.updated),
18
+ (s[Card.it.lt] = this.created),
19
+ (s[Card.it.ft] = this.categories),
20
+ (s[Card.it.xt] = this.expiresAt),
21
+ (s[Card.it.URL] = this.url),
22
+ (s[Card.it.bt] = this.linkText),
23
+ (s[Card.it.gt] = this.aspectRatio),
24
+ (s[Card.it.jt] = this.extras),
25
+ (s[Card.it.zt] = this.pinned),
26
+ (s[Card.it.kt] = this.dismissible),
27
+ (s[Card.it.qt] = this.clicked),
28
+ (s[Card.it.vt] = this.test),
29
+ s
30
+ );
31
+ }
32
+ }
@@ -1 +1,23 @@
1
- import Card from"./card.js";export default class ControlCard extends Card{constructor(l,t,s,i,n,r){super(l,t,null,null,null,null,s,null,i,null,null,null,n,r),this.isControl=!0,this.U="ab-control-card",this.V=!1}ss(){const l={};return l[Card.hs.ts]=Card.es.At,l[Card.hs.ns]=this.id,l[Card.hs.ls]=this.viewed,l[Card.hs.us]=this.updated,l[Card.hs.ds]=this.expiresAt,l[Card.hs.xs]=this.extras,l[Card.hs.gs]=this.pinned,l[Card.hs.zs]=this.test,l}}
1
+ import Card from "./card.js";
2
+ export default class ControlCard extends Card {
3
+ constructor(l, t, s, i, n, r) {
4
+ super(l, t, null, null, null, null, s, null, i, null, null, null, n, r),
5
+ (this.isControl = !0),
6
+ (this.U = "ab-control-card"),
7
+ (this.V = !1);
8
+ }
9
+ tt() {
10
+ const l = {};
11
+ return (
12
+ (l[Card.it.st] = Card.et.Ut),
13
+ (l[Card.it.rt] = this.id),
14
+ (l[Card.it.ot] = this.viewed),
15
+ (l[Card.it.ut] = this.updated),
16
+ (l[Card.it.xt] = this.expiresAt),
17
+ (l[Card.it.jt] = this.extras),
18
+ (l[Card.it.zt] = this.pinned),
19
+ (l[Card.it.vt] = this.test),
20
+ l
21
+ );
22
+ }
23
+ }
@@ -1 +1,31 @@
1
- import Card from"./card.js";import Banner from"./banner.js";export default class ImageOnly extends Banner{constructor(s,t,i,h,r,e,a,n,o,c,m,b,l,p){super(s,t,i,h,r,e,a,n,o,c,m,b,l,p),this.U="ab-banner ab-image-only",this.V=!1,this.test=!1}ss(){const s={};return s[Card.hs.ts]=Card.es.rs,s[Card.hs.ns]=this.id,s[Card.hs.ls]=this.viewed,s[Card.hs.os]=this.imageUrl,s[Card.hs.us]=this.updated,s[Card.hs.cs]=this.created,s[Card.hs.bs]=this.categories,s[Card.hs.ds]=this.expiresAt,s[Card.hs.URL]=this.url,s[Card.hs.ps]=this.linkText,s[Card.hs.fs]=this.aspectRatio,s[Card.hs.xs]=this.extras,s[Card.hs.gs]=this.pinned,s[Card.hs.js]=this.dismissible,s[Card.hs.ys]=this.clicked,s[Card.hs.zs]=this.test,s}}
1
+ import Card from "./card.js";
2
+ export default class ImageOnly extends Card {
3
+ constructor(s, t, i, h, r, e, l, n, o, a, u, c, d, m) {
4
+ super(s, t, null, i, null, h, r, e, l, n, o, a, u, c, d, m),
5
+ (this.U = "ab-image-only"),
6
+ (this.V = !1),
7
+ (this.test = !1);
8
+ }
9
+ tt() {
10
+ const s = {};
11
+ return (
12
+ (s[Card.it.st] = Card.et.Pt),
13
+ (s[Card.it.rt] = this.id),
14
+ (s[Card.it.ot] = this.viewed),
15
+ (s[Card.it.nt] = this.imageUrl),
16
+ (s[Card.it.ut] = this.updated),
17
+ (s[Card.it.lt] = this.created),
18
+ (s[Card.it.ft] = this.categories),
19
+ (s[Card.it.xt] = this.expiresAt),
20
+ (s[Card.it.URL] = this.url),
21
+ (s[Card.it.bt] = this.linkText),
22
+ (s[Card.it.gt] = this.aspectRatio),
23
+ (s[Card.it.jt] = this.extras),
24
+ (s[Card.it.zt] = this.pinned),
25
+ (s[Card.it.kt] = this.dismissible),
26
+ (s[Card.it.qt] = this.clicked),
27
+ (s[Card.it.vt] = this.test),
28
+ s
29
+ );
30
+ }
31
+ }
@@ -1 +1,5 @@
1
- export{default as Card}from"./card.js";export{default as Banner}from"./banner.js";export{default as ImageOnly}from"./image-only.js";export{default as CaptionedImage}from"./captioned-image.js";export{default as ClassicCard}from"./classic-card.js";export{default as ControlCard}from"./control-card.js";
1
+ export { default as Card } from "./card.js";
2
+ export { default as ImageOnly } from "./image-only.js";
3
+ export { default as CaptionedImage } from "./captioned-image.js";
4
+ export { default as ClassicCard } from "./classic-card.js";
5
+ export { default as ControlCard } from "./control-card.js";
package/src/Card/types.js CHANGED
@@ -1 +1 @@
1
- export{};
1
+ export {};
@@ -1 +1,104 @@
1
- import{Card,CaptionedImage,ClassicCard,ControlCard,ImageOnly}from"../index.js";import{dateFromUnixTimestamp as l,rehydrateDateAfterJsonization as w}from"../../util/date-utils.js";import r from"../../../shared-lib/braze-shared-lib.js";export function newCard(e,n,t,o,i,l,u,d,a,s,w,f,m,C,p,c,x,F){let b;if(n===Card.es.ct||n===Card.es.St)b=new ClassicCard(e,t,o,i,l,u,d,a,s,w,f,m,C,p,c,x);else if(n===Card.es.tt)b=new CaptionedImage(e,t,o,i,l,u,d,a,s,w,f,m,C,p,c,x);else if(n===Card.es.rs)b=new ImageOnly(e,t,i,u,d,a,s,w,f,m,C,p,c,x);else{if(n!==Card.es.At)return r.j.error("Ignoring card with unknown type "+n),null;b=new ControlCard(e,t,d,s,C,p)}return F&&(b.test=F),b}export function newCardFromContentCardsJson(e){if(e[Card.Tt.It])return null;const n=e[Card.Tt.ns],r=e[Card.Tt.ts],t=e[Card.Tt.ls],o=e[Card.Tt.st],i=e[Card.Tt.os],u=e[Card.Tt.it],d=l(e[Card.Tt.us]),a=d;let s;s=e[Card.Tt.ds]===Card.Nt?null:l(e[Card.Tt.ds]);return newCard(n,r,t,o,i,u,a,d,null,s,e[Card.Tt.URL],e[Card.Tt.ps],e[Card.Tt.fs],e[Card.Tt.xs],e[Card.Tt.gs],e[Card.Tt.js],e[Card.Tt.ys],e[Card.Tt.zs]||!1)}export function newCardFromFeedJson(e){return newCard(e.id,e.type,e.viewed,e.title,e.image,e.description,l(e.created),l(e.updated),e.categories,l(e.expires_at),e.url,e.domain,e.aspect_ratio,e.extras,!1,!1)}export function newCardFromSerializedValue(e){return newCard(e[Card.hs.ns],e[Card.hs.ts],e[Card.hs.ls],e[Card.hs.st],e[Card.hs.os],e[Card.hs.it],w(e[Card.hs.cs]),w(e[Card.hs.us]),e[Card.hs.bs],w(e[Card.hs.ds]),e[Card.hs.URL],e[Card.hs.ps],e[Card.hs.fs],e[Card.hs.xs],e[Card.hs.gs],e[Card.hs.js],e[Card.hs.ys],e[Card.hs.zs]||!1)||void 0}
1
+ import {
2
+ Card,
3
+ CaptionedImage,
4
+ ClassicCard,
5
+ ControlCard,
6
+ ImageOnly,
7
+ } from "../index.js";
8
+ import {
9
+ dateFromUnixTimestamp as l,
10
+ rehydrateDateAfterJsonization as w,
11
+ } from "../../util/date-utils.js";
12
+ import r from "../../../shared-lib/braze-shared-lib.js";
13
+ export function newCard(e, n, t, o, i, l, u, d, a, s, w, f, m, C, p, c, x, F) {
14
+ let b;
15
+ if (n === Card.et.Ot || n === Card.et.Mt)
16
+ b = new ClassicCard(e, t, o, i, l, u, d, a, s, w, f, m, C, p, c, x);
17
+ else if (n === Card.et.ht)
18
+ b = new CaptionedImage(e, t, o, i, l, u, d, a, s, w, f, m, C, p, c, x);
19
+ else if (n === Card.et.Pt)
20
+ b = new ImageOnly(e, t, i, u, d, a, s, w, f, m, C, p, c, x);
21
+ else {
22
+ if (n !== Card.et.Ut)
23
+ return r.j.error("Ignoring card with unknown type " + n), null;
24
+ b = new ControlCard(e, t, d, s, C, p);
25
+ }
26
+ return F && (b.test = F), b;
27
+ }
28
+ export function newCardFromContentCardsJson(e) {
29
+ if (e[Card.Rt.Lt]) return null;
30
+ const n = e[Card.Rt.rt],
31
+ r = e[Card.Rt.st],
32
+ t = e[Card.Rt.ot],
33
+ o = e[Card.Rt.ct],
34
+ i = e[Card.Rt.nt],
35
+ u = e[Card.Rt.dt],
36
+ d = l(e[Card.Rt.ut]),
37
+ a = d;
38
+ let s;
39
+ s = e[Card.Rt.xt] === Card._t ? null : l(e[Card.Rt.xt]);
40
+ return newCard(
41
+ n,
42
+ r,
43
+ t,
44
+ o,
45
+ i,
46
+ u,
47
+ a,
48
+ d,
49
+ null,
50
+ s,
51
+ e[Card.Rt.URL],
52
+ e[Card.Rt.bt],
53
+ e[Card.Rt.gt],
54
+ e[Card.Rt.jt],
55
+ e[Card.Rt.zt],
56
+ e[Card.Rt.kt],
57
+ e[Card.Rt.qt],
58
+ e[Card.Rt.vt] || !1,
59
+ );
60
+ }
61
+ export function newCardFromFeedJson(e) {
62
+ return newCard(
63
+ e.id,
64
+ e.type,
65
+ e.viewed,
66
+ e.title,
67
+ e.image,
68
+ e.description,
69
+ l(e.created),
70
+ l(e.updated),
71
+ e.categories,
72
+ l(e.expires_at),
73
+ e.url,
74
+ e.domain,
75
+ e.aspect_ratio,
76
+ e.extras,
77
+ !1,
78
+ !1,
79
+ );
80
+ }
81
+ export function newCardFromSerializedValue(e) {
82
+ return (
83
+ newCard(
84
+ e[Card.it.rt],
85
+ e[Card.it.st],
86
+ e[Card.it.ot],
87
+ e[Card.it.ct],
88
+ e[Card.it.nt],
89
+ e[Card.it.dt],
90
+ w(e[Card.it.lt]),
91
+ w(e[Card.it.ut]),
92
+ e[Card.it.ft],
93
+ w(e[Card.it.xt]),
94
+ e[Card.it.URL],
95
+ e[Card.it.bt],
96
+ e[Card.it.gt],
97
+ e[Card.it.jt],
98
+ e[Card.it.zt],
99
+ e[Card.it.kt],
100
+ e[Card.it.qt],
101
+ e[Card.it.vt] || !1,
102
+ ) || void 0
103
+ );
104
+ }
@@ -1 +1,20 @@
1
- import e from"../managers/braze-instance.js";import v from"./content-cards-provider.js";const g={t:!1,provider:null,er:()=>(g.o(),g.provider||(g.provider=new v(e.ir(),e.l(),e.tr(),e.nr(),e.ar()),e.dr(g.provider)),g.provider),o:()=>{g.t||(e.g(g),g.t=!0)},destroy:()=>{g.provider=null,g.t=!1}};export default g;
1
+ import e from "../managers/braze-instance.js";
2
+ import v from "./content-cards-provider.js";
3
+ const g = {
4
+ t: !1,
5
+ provider: null,
6
+ er: () => (
7
+ g.o(),
8
+ g.provider ||
9
+ ((g.provider = new v(e.ir(), e.l(), e.tr(), e.nr(), e.ar())),
10
+ e.dr(g.provider)),
11
+ g.provider
12
+ ),
13
+ o: () => {
14
+ g.t || (e.g(g), (g.t = !0));
15
+ },
16
+ destroy: () => {
17
+ (g.provider = null), (g.t = !1);
18
+ },
19
+ };
20
+ export default g;