@wscsports/blaze-web-sdk 0.1.72 → 0.1.75

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wscsports/blaze-web-sdk",
3
- "version": "0.1.72",
3
+ "version": "0.1.75",
4
4
  "main": "publish/index",
5
5
  "types": "publish/index",
6
6
  "files": [
@@ -263,8 +263,18 @@ export declare enum WidgetAction {
263
263
  Visible = "widget_visible",
264
264
  Click = "widget_click"
265
265
  }
266
+ export declare enum AdAction {
267
+ View = "ad_view",
268
+ Exit = "ad_exit",
269
+ Click = "ad_click"
270
+ }
271
+ export declare const StoryToAdActionMapper: {
272
+ story_page_start: AdAction;
273
+ story_page_exit: AdAction;
274
+ cta_click: AdAction;
275
+ };
266
276
  type ExposedFields = {
267
- [key in StoryAction | WidgetAction]?: string[];
277
+ [key in StoryAction | WidgetAction | AdAction]?: string[];
268
278
  };
269
279
  export declare const exposedFieldsByAction: ExposedFields;
270
280
 
@@ -286,6 +296,16 @@ export declare class Database implements IDatabase {
286
296
 
287
297
  export * from './database';
288
298
 
299
+ interface IAdInfoConfiguration {
300
+ adLocationsIndexes: Array<number>;
301
+ isActive: boolean;
302
+ }
303
+ export interface IAdInfo {
304
+ path: string;
305
+ type: string;
306
+ configuration: IAdInfoConfiguration;
307
+ }
308
+
289
309
  export interface IContent {
290
310
  id: string;
291
311
  title: string;
@@ -333,7 +353,7 @@ export interface IMoment extends IContent {
333
353
  };
334
354
  }
335
355
 
336
- export interface IPage {
356
+ export interface IContentPage {
337
357
  id: string;
338
358
  type: 'Content';
339
359
  index: number;
@@ -346,6 +366,16 @@ export interface IPage {
346
366
  ignoreReadStatusForStory: boolean;
347
367
  createTime: string;
348
368
  }
369
+ export interface IAdPage {
370
+ id: string;
371
+ type: 'Ad';
372
+ duration: number;
373
+ hasViewed: boolean;
374
+ ignoreReadStatusForStory: boolean;
375
+ createTime: string;
376
+ adPath: string;
377
+ }
378
+ export type IPage = IAdPage | IContentPage;
349
379
 
350
380
  export interface IRendition {
351
381
  url: string;
@@ -356,6 +386,7 @@ export interface IStory extends IContent {
356
386
  isLive: boolean;
357
387
  pages: IPage[];
358
388
  isAd: boolean;
389
+ adInfo?: IAdInfo;
359
390
  }
360
391
 
361
392
  export interface IThumbnail {
@@ -398,6 +429,7 @@ export * from './event.enum';
398
429
 
399
430
  export interface WidgetsTagNameMap {
400
431
  'blaze-sdk': BlazeWidgetSDK;
432
+ 'blaze-widget-ad': BlazeWidgetStoryAd;
401
433
  'blaze-widget-modal': BlazeWidgetModal;
402
434
  'blaze-widget-item': BlazeWidgetItem;
403
435
  'blaze-widget-layout': BlazeWidgetLayout;
@@ -425,6 +457,7 @@ export interface WidgetsTagNameMap {
425
457
  }
426
458
  interface WidgetsTagNameOptionsMap {
427
459
  'blaze-sdk': {};
460
+ 'blaze-widget-ad': {};
428
461
  'blaze-widget-modal': {};
429
462
  'blaze-widget-item': {};
430
463
  'blaze-widget-layout': {};
@@ -574,6 +607,17 @@ export interface IWidgetView {
574
607
  setDelegations: (delegates: Record<Delegation, EventListenerOrEventListenerObject>) => void;
575
608
  }
576
609
 
610
+ declare const AdServiceClass_base: {
611
+ new (): {};
612
+ _instance: AdServiceClass;
613
+ getInstance(): AdServiceClass;
614
+ };
615
+ declare abstract class AdServiceClass extends AdServiceClass_base implements IService {
616
+ canRunAds: boolean;
617
+ init(): Promise<void>;
618
+ }
619
+ export declare const AdService: AdServiceClass;
620
+
577
621
  declare const AlertServiceClass_base: {
578
622
  new (): {};
579
623
  _instance: AlertServiceClass;
@@ -585,16 +629,6 @@ declare abstract class AlertServiceClass extends AlertServiceClass_base implemen
585
629
  }
586
630
  export declare const AlertService: AlertServiceClass;
587
631
 
588
- export declare enum AdAction {
589
- Request = "ad_request",
590
- Load = "ad_load",
591
- Insert = "ad_insert",
592
- View = "ad_view",
593
- Click = "ad_click",
594
- Exit = "ad_exit",
595
- Pause = "ad_playback_pause",
596
- Play = "ad_playback_play"
597
- }
598
632
  export declare enum SessionAction {
599
633
  Start = "start",
600
634
  End = "end"
@@ -611,6 +645,7 @@ declare abstract class AnalyticsServiceClass extends AnalyticsServiceClass_base
611
645
  bulkEvent(body: Partial<AnalyticsEvent>[]): Promise<any>;
612
646
  pushSessionEvent(action: SessionAction, body: Partial<WidgetEvent>, label?: string | undefined): void;
613
647
  pushStoryEvent(action: StoryAction, body: Partial<StoryEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
648
+ pushAdEvent(action: AdAction, body: Partial<AdEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
614
649
  pushWidgetEvent(action: WidgetAction, body: Partial<WidgetEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
615
650
  setupEvent(category: Category, action: string, body: object, label?: string | undefined, referrer?: ReferringEventInfo | undefined): AnalyticsEvent;
616
651
  }
@@ -618,6 +653,7 @@ export declare const AnalyticsService: AnalyticsServiceClass;
618
653
  export declare enum Category {
619
654
  Story = "story",
620
655
  Widget = "widget",
656
+ Ad = "ad",
621
657
  Session = "session"
622
658
  }
623
659
  declare class UserEventInfo {
@@ -700,6 +736,7 @@ export declare class AnalyticsEvent {
700
736
  'referring': ReferringEventInfo;
701
737
  story: Partial<StoryEvent> | undefined;
702
738
  widget: Partial<WidgetEvent> | undefined;
739
+ ad: Partial<AdEvent> | undefined;
703
740
  }
704
741
  export declare class StoryEvent {
705
742
  'story_start_id': string;
@@ -721,7 +758,7 @@ export declare class StoryEvent {
721
758
  'story_session_id': string;
722
759
  'story_page_index': number;
723
760
  'is_last_page': boolean;
724
- 'audio_state': boolean;
761
+ 'audio_state': string;
725
762
  'playback_action_method': 'Press' | 'Release' | 'Click';
726
763
  }
727
764
  export declare class WidgetEvent {
@@ -746,6 +783,26 @@ export declare class WidgetEvent {
746
783
  'page_type': string;
747
784
  'page_size': string;
748
785
  }
786
+ export declare class AdEvent {
787
+ 'advertiser_id': string;
788
+ 'advertiser_name': string;
789
+ 'campaign_id': string;
790
+ 'campaign_name': string;
791
+ 'ad_server': string;
792
+ 'story_id': string;
793
+ 'story_title': string;
794
+ 'ad_insertion_logic': string;
795
+ 'ad_index': string;
796
+ 'ad_start_trigger': string;
797
+ 'ad_exit_trigger': string;
798
+ 'ad_duration': string;
799
+ 'ad_duration_viewed_percent': string;
800
+ 'playback_action_method': string;
801
+ 'audio_state': string;
802
+ 'skip_config': string;
803
+ 'content_type': string;
804
+ 'ad_path': string;
805
+ }
749
806
 
750
807
  declare const ApiServiceClass_base: {
751
808
  new (): {};
@@ -755,16 +812,25 @@ declare const ApiServiceClass_base: {
755
812
  declare abstract class ApiServiceClass extends ApiServiceClass_base implements IService {
756
813
  api: API;
757
814
  init(): Promise<void>;
758
- getStoriesByIds(storyIds: string[], orderType?: OrderType): Promise<IResponse<{
759
- assetsExpiryTime: string;
760
- totalItems: number;
815
+ private setAdsOnStories;
816
+ getStoriesByIds(storyIds: string[], orderType?: OrderType): Promise<{
761
817
  result: IStory[];
762
- }>>;
763
- getStories(labels: string, orderType: OrderType, maxItemsSize?: number): Promise<IResponse<{
764
- assetsExpiryTime: string;
765
- totalItems: number;
818
+ data: {
819
+ assetsExpiryTime: string;
820
+ totalItems: number;
821
+ result: IStory[];
822
+ };
823
+ error?: Error | undefined;
824
+ }>;
825
+ getStories(labels: string, orderType: OrderType, maxItemsSize?: number): Promise<{
766
826
  result: IStory[];
767
- }>>;
827
+ data: {
828
+ assetsExpiryTime: string;
829
+ totalItems: number;
830
+ result: IStory[];
831
+ };
832
+ error?: Error | undefined;
833
+ }>;
768
834
  getShorts(labels: string, orderType: OrderType, maxItemsSize?: number): Promise<IResponse<{
769
835
  assetsExpiryTime: string;
770
836
  totalItems: number;
@@ -1462,12 +1528,9 @@ export type OrderType = 'Manual' | 'AtoZ' | 'ZtoA' | 'RecentlyUpdatedFirst' | 'R
1462
1528
  export declare const PlayTypeArray: readonly ["Widget", "Share", "SingleStory"];
1463
1529
  export type PlayType = typeof PlayTypeArray[number];
1464
1530
 
1465
- export type PositionInsideType = 'insideTopLeft' | 'insideTopRight' | 'insideMiddle' | 'insideBottomRight' | 'insideBottomLeft' | 'insideBottomMiddle' | 'insideMiddleLeft' | 'insideMiddleRight';
1531
+ export type PositionInsideType = 'insideTopLeft' | 'insideTopRight' | 'insideMiddleTop' | 'insideMiddle' | 'insideBottomRight' | 'insideBottomLeft' | 'insideBottomMiddle' | 'insideMiddleLeft' | 'insideMiddleRight';
1466
1532
  export type PositionOutsideType = 'outsideUnder' | 'outsideBelow' | 'outsideAbove' | 'outsideTop' | 'outsideTopLeft' | 'outsideTopRight' | 'outsideBottomLeft' | 'outsideBottomRight' | 'outsideBottom' | 'outsideRight' | 'outsideLeft';
1467
1533
  export type PositionType = PositionInsideType | PositionOutsideType;
1468
- export type PositionCircleRowLabelType = 'outsideBelow' | 'outsideAbove';
1469
- export type PositionRectangleRowLabelType = PositionCircleRowLabelType | PositionInsideType;
1470
- export type PositionRectangleRowHorizontalLabelType = PositionInsideType;
1471
1534
 
1472
1535
  export type SeverityType = 'error' | 'warning' | 'info' | 'success';
1473
1536
 
@@ -1475,10 +1538,10 @@ export type SizeType = 'small' | 'medium' | 'large';
1475
1538
 
1476
1539
  export type ThumbnailApiType = 'SquareIcon' | 'VerticalTwoByThree' | 'MainThumbnail';
1477
1540
  export type ThumbnailType = 'SQUARE_ICON' | 'VERTICAL_TWO_BY_THREE' | 'CUSTOM';
1478
- export type ThumbnailShape = 'circle' | 'rectangle';
1541
+ export type ThumbnailShape = 'Circle' | 'Rectangle';
1479
1542
  export declare function thumbnailMapping(thumbnailType: ThumbnailType): ThumbnailApiType;
1480
1543
 
1481
- export type WidgetType = 'row' | 'grid';
1544
+ export type WidgetType = 'Row' | 'Grid';
1482
1545
 
1483
1546
  interface ChipSizeOptions {
1484
1547
  statusLiveStyle: IndicatorStyle;
@@ -1487,6 +1550,11 @@ interface ChipSizeOptions {
1487
1550
  statusUnreadStyle: IndicatorStyle;
1488
1551
  }
1489
1552
  export declare function getChipSize(options: ChipSizeOptions): DOMRect;
1553
+ export declare function getMaxChipSize(layout: LayoutStyle): DOMRect;
1554
+ export declare function calculateChipSize(statusIndicatorPosition: PositionType, layoutStyle: LayoutStyle): {
1555
+ chipHeight: number;
1556
+ chipWidth: number;
1557
+ };
1490
1558
 
1491
1559
  export declare function delay(ms: number): Promise<void>;
1492
1560
 
@@ -1522,6 +1590,19 @@ export * from './guard.utils';
1522
1590
  export * from './helper';
1523
1591
  export * from './regex.utils';
1524
1592
  export * from './stopwatch';
1593
+ export * from './position.utils';
1594
+
1595
+ export declare function calculatePosition(statusIndicatorPosition: PositionType): {
1596
+ isOutside: boolean;
1597
+ isInside: boolean;
1598
+ isTop: boolean;
1599
+ isMiddle: boolean;
1600
+ isBottom: boolean;
1601
+ isBelow: boolean;
1602
+ isAbove: boolean;
1603
+ isLeft: boolean;
1604
+ isRight: boolean;
1605
+ };
1525
1606
 
1526
1607
  export declare const RegexHash: RegExp;
1527
1608
  export declare const RegexHashPlayType: RegExp;
@@ -1555,6 +1636,37 @@ export * from './widget-story-player';
1555
1636
  export * from './widget-story-preview';
1556
1637
  export * from './widget-story-video';
1557
1638
 
1639
+ export declare class BlazeWidgetStoryAd extends BlazeWidgetStoryBase {
1640
+ data: IPage | undefined;
1641
+ private isCurrectlyDisplay;
1642
+ private adContainer;
1643
+ private placeholderContainer;
1644
+ private googletag;
1645
+ private isMuted;
1646
+ private failToLoadTimeout?;
1647
+ constructor(storyParent: BlazeWidgetStory);
1648
+ connectedCallback(): void;
1649
+ disconnectedCallback(): void;
1650
+ render(): void;
1651
+ get currentTime(): number;
1652
+ set currentTime(value: number);
1653
+ get duration(): number;
1654
+ get progress(): number;
1655
+ set muted(isMuted: boolean);
1656
+ getAdIframeRef(): HTMLIFrameElement | null;
1657
+ changeAdMutedState(isMuted: boolean): void;
1658
+ setData(data: IPage): void;
1659
+ play(): void;
1660
+ get paused(): boolean;
1661
+ pause(): void;
1662
+ removeLoader(): void;
1663
+ loadPoster(): void;
1664
+ hide(): void;
1665
+ display(onFail?: () => void): void;
1666
+ mainElement(): CanvasImageSource;
1667
+ private initStyles;
1668
+ }
1669
+
1558
1670
  export interface BlazeWidgetItemOptions {
1559
1671
  theme: IWidgetTheme;
1560
1672
  content: IStory;
@@ -1598,11 +1710,6 @@ export declare class BlazeWidgetItem extends BaseWidget {
1598
1710
  private updateInsideLabelStyles;
1599
1711
  private updateOutsideLabelStyles;
1600
1712
  private updateThumbnailStyles;
1601
- getMaxChipSize(): DOMRect;
1602
- get chipDimenssions(): {
1603
- chipWidth: number;
1604
- chipHeight: number;
1605
- };
1606
1713
  private updateChipStyles;
1607
1714
  setTheme(theme: IWidgetTheme): void;
1608
1715
  setChipStyle(): void;
@@ -1634,14 +1741,17 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
1634
1741
  preset: IWidgetTheme | undefined;
1635
1742
  thumbnailWidth: number | undefined;
1636
1743
  thumbnailHeight: number | undefined;
1744
+ widgetHeight: number;
1745
+ parentHeight: number | undefined;
1746
+ intersectionObserver: IntersectionObserver;
1747
+ heightObserver: MutationObserver;
1637
1748
  reloadTimeout: NodeJS.Timeout | undefined;
1638
1749
  analyticsStack: Record<WidgetAction, boolean>;
1639
- intersectionObserver: IntersectionObserver;
1640
1750
  onResizeEvent: (this: Window, ev: UIEvent) => void;
1641
- isWidgetReload: boolean | undefined;
1642
- widgetHeight: number;
1643
1751
  constructor();
1752
+ handleHeightChangeMutation(mutationsList: MutationRecord[]): void;
1644
1753
  connectedCallback(): void;
1754
+ getParentHeightWithoutPadding(): number | null;
1645
1755
  disconnectedCallback(): void;
1646
1756
  set storyIds(value: string);
1647
1757
  setContentIds(storyIds: string[]): void;
@@ -1665,6 +1775,11 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
1665
1775
  loadStories(): Promise<void>;
1666
1776
  private get theme();
1667
1777
  render(): void;
1778
+ calculateLabelSizes(labelStyle: LabelStyle, lineNumber: number): {
1779
+ labelWidth: number | "auto";
1780
+ labelAdditionalWidth: number;
1781
+ labelAdditionalHeight: number;
1782
+ };
1668
1783
  maxSize(): number;
1669
1784
  event(action: WidgetAction, data: Partial<WidgetEvent>, label?: string | undefined): void;
1670
1785
  isReadByLastUnIgnoredPageStatus(story: IStory): boolean;
@@ -1672,7 +1787,6 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
1672
1787
  reorderWidgets(): void;
1673
1788
  connectWidgets(): void;
1674
1789
  get thumbnailShape(): ThumbnailShape;
1675
- getMaxChipSize(): DOMRect;
1676
1790
  widgetType(): WidgetType;
1677
1791
  }
1678
1792
 
@@ -1837,7 +1951,9 @@ export declare class BlazeWidgetSDK extends BaseWidget {
1837
1951
  attributeChangedCallback(name: string, oldValue: string, newValue: string): Promise<void>;
1838
1952
  private getConfigAttributes;
1839
1953
  private initialize;
1954
+ private injectToHead;
1840
1955
  private injectFontResource;
1956
+ private injectGoogleTag;
1841
1957
  }
1842
1958
 
1843
1959
  export interface IShareButton {
@@ -1877,7 +1993,7 @@ export declare class BlazeWidgetStoryBase extends HTMLElement {
1877
1993
  removeLoader(): any;
1878
1994
  load(): void;
1879
1995
  unload(): void;
1880
- display(): void;
1996
+ display(onFail?: () => void): void;
1881
1997
  hide(): void;
1882
1998
  set muted(value: boolean);
1883
1999
  get duration(): number;
@@ -2139,10 +2255,13 @@ export declare class BlazeWidgetStory extends HTMLElement {
2139
2255
  isNavigationPending: boolean;
2140
2256
  navigationTimeout: NodeJS.Timeout | null;
2141
2257
  lastPageIndexToResume: number;
2258
+ elementsToHideOnAds: HTMLElement[];
2259
+ muteStateBeforeAd: 'mute' | 'unmute' | 'no-ad';
2142
2260
  constructor();
2143
2261
  onShareClick(): Promise<void>;
2144
2262
  updateChip(): void;
2145
2263
  setTheme(storyPlayerStyle: StoryPlayerStyle): void;
2264
+ adjustAdView(): void;
2146
2265
  updatePlayerButtonIcons(): void;
2147
2266
  onCtaClick(event: Event): boolean;
2148
2267
  playToggle(): void;
@@ -2164,7 +2283,7 @@ export declare class BlazeWidgetStory extends HTMLElement {
2164
2283
  removeFromCache(): void;
2165
2284
  load(): void;
2166
2285
  play(): void;
2167
- event(action: StoryAction, data: Partial<StoryEvent>, label?: string | undefined): void;
2286
+ event(action: StoryAction, storyData: Partial<StoryEvent>, label?: string | undefined): void;
2168
2287
  connectedCallback(): void;
2169
2288
  onShareModalClose(): void;
2170
2289
  onShareModalButtonClick(shareButton: BlazeShareButton): Promise<void>;