@tivio/sdk-react 9.4.0 → 9.6.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.
@@ -1,3 +1,4 @@
1
+ import { AD_SERVICE_PROXY_NAME } from '@tivio/common';
1
2
  import type { ComponentType } from 'react';
2
3
  import type dayjs from 'dayjs';
3
4
  import { DocumentReference } from '@firebase/firestore-types';
@@ -34,6 +35,8 @@ declare interface actualPriceDetails {
34
35
  currency?: primaSupportedCurrency;
35
36
  }
36
37
 
38
+ export { AD_SERVICE_PROXY_NAME }
39
+
37
40
  export declare type AdBannerScene = InteractiveWidgetSceneBase<InteractiveWidgetSceneTemplateType.AD_BANNER>;
38
41
 
39
42
  export declare type AddEditCommentResponse = {
@@ -100,6 +103,7 @@ export declare type AdMetadata = {
100
103
  isSkippable: boolean;
101
104
  order: number | null;
102
105
  totalCount: number | null;
106
+ customAdMetadata?: Record<string, unknown>;
103
107
  skip: () => void;
104
108
  } | null;
105
109
 
@@ -217,6 +221,10 @@ export declare interface AdSourceInterface extends CommonSourceInterface<SourceT
217
221
  skipAll(): void;
218
222
  onRemainingTimeChanged(ms: number): void;
219
223
  click(): void;
224
+ /**
225
+ * Rich IMA ad metadata including customAdMetadata (only available for IMA ads)
226
+ */
227
+ imaAdMetadata?: any;
220
228
  }
221
229
 
222
230
  /**
@@ -675,6 +683,8 @@ export declare interface ButtonOptions {
675
683
  */
676
684
  export declare interface ButtonVariantOptions {
677
685
  border?: string;
686
+ disabledBackgroundColor?: string;
687
+ disabledColor?: string;
678
688
  }
679
689
 
680
690
  /**
@@ -1249,7 +1259,8 @@ export declare enum CustomerId {
1249
1259
  KAROL_A_KVIDO = "KAROL_A_KVIDO",
1250
1260
  UZ_BUDU = "UZ_BUDU",
1251
1261
  PRIMA = "PRIMA",
1252
- NORA_FRIDRICHOVA = "NORA_FRIDRICHOVA"
1262
+ NORA_FRIDRICHOVA = "NORA_FRIDRICHOVA",
1263
+ LONGEVITY = "LONGEVITY"
1253
1264
  }
1254
1265
 
1255
1266
  /**
@@ -1447,6 +1458,15 @@ export declare interface Customizations {
1447
1458
  color?: string;
1448
1459
  backgroundColorActive?: string;
1449
1460
  formBackgroundColor?: string;
1461
+ captionColor?: string;
1462
+ textInputBorder?: string;
1463
+ };
1464
+ MobilePayment?: {
1465
+ backgroundColor?: string;
1466
+ color?: string;
1467
+ backgroundColorActive?: string;
1468
+ formBackgroundColor?: string;
1469
+ captionColor?: string;
1450
1470
  };
1451
1471
  QerkoOverlay?: {
1452
1472
  backgroundColor?: string;
@@ -1867,6 +1887,7 @@ export declare interface ForbiddenOnCallError extends GenericOnCallError {
1867
1887
  }
1868
1888
 
1869
1889
  export declare enum ForbiddenReason {
1890
+ AD_BLOCKING = "AD_BLOCKING",
1870
1891
  MONETIZATION = "MONETIZATION",
1871
1892
  GEO_BLOCKING = "GEO_BLOCKING",
1872
1893
  EMAIL_ALREADY_EXISTS = "EMAIL_ALREADY_EXISTS",
@@ -3349,6 +3370,20 @@ export declare interface PartialRegistrationOverlayContextState {
3349
3370
  voucher?: string;
3350
3371
  }
3351
3372
 
3373
+ /**
3374
+ * @public
3375
+ * Generic interface for sources that can be identified by a path (video or TV channel)
3376
+ */
3377
+ export declare type PathSourceParams = PathSourceParamsTvChannel | PathSourceParamsVideo;
3378
+
3379
+ declare interface PathSourceParamsTvChannel extends Partial<ChannelSourceParams> {
3380
+ path: `tvChannels/${string}`;
3381
+ }
3382
+
3383
+ declare interface PathSourceParamsVideo extends Partial<Omit<VodTivioSourceParams, 'videoPath'>> {
3384
+ path: `videos/${string}`;
3385
+ }
3386
+
3352
3387
  export declare type PatreonCreatorData = {
3353
3388
  campaign: string;
3354
3389
  tiers: Tier[];
@@ -3795,6 +3830,7 @@ export declare interface PlayerSourceInterface<T extends NonAdSourceType = NonAd
3795
3830
  start?: Date;
3796
3831
  from?: Date;
3797
3832
  sourceHistory?: string[];
3833
+ staticAdsConfig?: StaticAdsBreak[];
3798
3834
  }
3799
3835
 
3800
3836
  /**
@@ -3813,6 +3849,7 @@ export declare interface PlayerSourceParams<T extends NonAdSourceType = NonAdSou
3813
3849
  seekingMatrix?: SeekingMatrixTemplate;
3814
3850
  sessionType?: VideoSourceField['sessionType'];
3815
3851
  sessionId?: string;
3852
+ staticAdsConfig?: StaticAdsBreak[];
3816
3853
  }
3817
3854
 
3818
3855
  export declare type PlayersScene = InteractiveWidgetSceneBase<InteractiveWidgetSceneTemplateType.PLAYERS>;
@@ -3973,7 +4010,15 @@ export declare enum PlayerWrapperEvents {
3973
4010
  /**
3974
4011
  * Un-pause was triggered
3975
4012
  */
3976
- 'unpause_triggered' = "unpause_triggered"
4013
+ 'unpause_triggered' = "unpause_triggered",
4014
+ /**
4015
+ * Triggered when an ad starts playing
4016
+ */
4017
+ 'ad-started' = "ad-started",
4018
+ /**
4019
+ * Triggered when an ad finishes playing
4020
+ */
4021
+ 'ad-ended' = "ad-ended"
3977
4022
  }
3978
4023
 
3979
4024
  /**
@@ -4233,6 +4278,11 @@ export declare type Purchase = {
4233
4278
  voucherId: string | null;
4234
4279
  isVoucherActivation?: boolean;
4235
4280
  rebalancingVideoRef?: any;
4281
+ /**
4282
+ * Returns all purchases that are connected via originalPurchaseRef.
4283
+ * For example, if user has subscription purchase, this method will return all purchases that are RENEWED + PAID/CANCELLED latest one.
4284
+ */
4285
+ getRelatedPurchases: () => Promise<Purchase[]>;
4236
4286
  };
4237
4287
 
4238
4288
  /**
@@ -5361,6 +5411,14 @@ export declare type SdkReactConfig = Omit<TivioConfig, 'language'> & {
5361
5411
  language?: LangCode;
5362
5412
  };
5363
5413
 
5414
+ /**
5415
+ * @public
5416
+ */
5417
+ export declare interface SDKUserAuthCallbacks {
5418
+ onGoToLogin?: () => void;
5419
+ onGoToRegistration?: () => void;
5420
+ }
5421
+
5364
5422
  /**
5365
5423
  * @public
5366
5424
  * @deprecated sections are no longer used.
@@ -5664,6 +5722,21 @@ export declare interface SimplifiedVideoController {
5664
5722
  muted: boolean;
5665
5723
  volume: number;
5666
5724
  }) => void): void;
5725
+ /**
5726
+ * Add an event listener for ad started events
5727
+ * @param event - Must be 'ad-started'
5728
+ * @param callback - Function called when an ad starts playing
5729
+ */
5730
+ addEventListener(event: 'ad-started', callback: (adMetadata: AdMetadata & {
5731
+ customAdMetadata?: Record<string, unknown> | null;
5732
+ ctaElement: HTMLElement | null;
5733
+ }) => void): void;
5734
+ /**
5735
+ * Add an event listener for ad ended events
5736
+ * @param event - Must be 'ad-ended'
5737
+ * @param callback - Function called when an ad finishes playing
5738
+ */
5739
+ addEventListener(event: 'ad-ended', callback: () => void): void;
5667
5740
  /**
5668
5741
  * Remove an event listener
5669
5742
  * @param event - The event name to stop listening for
@@ -5675,6 +5748,7 @@ export declare interface SimplifiedVideoController {
5675
5748
  * @param source - The new source to load (can be a video path, channel path, or source parameters)
5676
5749
  */
5677
5750
  setSource(source: WebPlayerProps['source']): void;
5751
+ setAdsConfig(adsConfig: StaticAdsBreak[]): void;
5678
5752
  /**
5679
5753
  * Destroy the player and clean up all resources
5680
5754
  */
@@ -5794,6 +5868,19 @@ export declare interface StartLiveStreamResponse {
5794
5868
  error?: string;
5795
5869
  }
5796
5870
 
5871
+ export declare type StaticAdsBreak = StaticAdsBreakPostrollPreroll | StaticAdsBreakMidroll;
5872
+
5873
+ export declare interface StaticAdsBreakMidroll {
5874
+ type: 'midroll';
5875
+ from: number;
5876
+ url: string;
5877
+ }
5878
+
5879
+ declare interface StaticAdsBreakPostrollPreroll {
5880
+ type: 'preroll' | 'postroll';
5881
+ url: string;
5882
+ }
5883
+
5797
5884
  /**
5798
5885
  * @public
5799
5886
  */
@@ -6296,6 +6383,10 @@ export declare interface TivioComponents {
6296
6383
  ContentSortPicker: React_2.ComponentType<ContentSortPickerProps>;
6297
6384
  WebTivioProVideoScreen: React_2.ComponentType<WebTivioProVideoScreenProps>;
6298
6385
  RemoteController: React_2.ComponentType<RemoteControllerProps>;
6386
+ MonetizationsSelectOverlay: React_2.ComponentType;
6387
+ MonetizationsSelectOverlayContextProvider: React_2.ComponentType<{
6388
+ children: React_2.ReactNode;
6389
+ }>;
6299
6390
  }
6300
6391
 
6301
6392
  /**
@@ -6357,6 +6448,12 @@ export declare interface TivioConfig {
6357
6448
  * (otherwise organizations would share login token).
6358
6449
  */
6359
6450
  customerId?: CustomerId;
6451
+ /**
6452
+ * An optional variable that enables Single Sign-On (SSO) for all subdomains under the same parent domain.
6453
+ * @example
6454
+ * customTokenCookiesDomain: 'example.com'
6455
+ */
6456
+ customTokenCookiesDomain?: string;
6360
6457
  }
6361
6458
 
6362
6459
  /**
@@ -6560,7 +6657,9 @@ export declare type TivioInternalProviders = {
6560
6657
  UserContextProvider: React_2.ComponentType<{
6561
6658
  children?: React_2.ReactNode;
6562
6659
  }>;
6563
- MonetizationsSelectOverlayContextProvider: React_2.ComponentType;
6660
+ MonetizationsSelectOverlayContextProvider: React_2.ComponentType<{
6661
+ children: React_2.ReactNode;
6662
+ }>;
6564
6663
  QerkoOverlayContextProvider: React_2.ComponentType;
6565
6664
  /**
6566
6665
  * @deprecated do not use, this provider will be removed in the future
@@ -6803,7 +6902,7 @@ export declare interface TvAppProps {
6803
6902
  /**
6804
6903
  * @public
6805
6904
  */
6806
- export declare interface TvChannel extends RowItem {
6905
+ export declare interface TvChannel extends RowItem, MonetizableItem {
6807
6906
  id: string;
6808
6907
  itemType: ROW_ITEM_TYPES.TV_CHANNEL;
6809
6908
  name: string;
@@ -6814,17 +6913,11 @@ export declare interface TvChannel extends RowItem {
6814
6913
  logoPendingOverlayWidth?: string;
6815
6914
  hls: string;
6816
6915
  dash: string;
6817
- /**
6818
- * Returns all transactions and subscriptions applied to this tv channel.
6819
- * Transactions before subscriptions, sorted by price ascending.
6820
- */
6821
- getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
6822
6916
  getSourceUrl(options?: {
6823
6917
  language?: LangCode;
6824
6918
  }): Promise<GetSourceUrlResponse & {
6825
6919
  language?: LangCode;
6826
6920
  }>;
6827
- purchasableMonetization: any | null;
6828
6921
  price: number;
6829
6922
  cover: string;
6830
6923
  isPlayable: boolean;
@@ -7588,6 +7681,7 @@ export declare enum VastProvider {
7588
7681
  TEST = "test",
7589
7682
  TEST_VPAID = "test-vpaid",
7590
7683
  TIVIO_ADS = "tivio-ads",
7684
+ STATIC_ADS_PROVIDER = "static-ads-provider",
7591
7685
  JOJ_TEST_AD_FORM_PROGRAMMATIC = "joj-test-ad-form-programmatic",
7592
7686
  JOJ_TEST_TESTER_VASTERIX = "joj-test-tester-vasterix",
7593
7687
  JOJ_TEST_TESTER_ADFORM_30 = "joj-test-tester-adform-30"
@@ -7729,6 +7823,9 @@ export declare interface VideoController {
7729
7823
  muted: boolean;
7730
7824
  volume: number;
7731
7825
  }) => void): void;
7826
+ addEventListener(event: 'ad-started', callback: (value: AdMetadata & {
7827
+ adCtaElement: HTMLElement | null;
7828
+ }) => void): void;
7732
7829
  /**
7733
7830
  * Remove an event listener
7734
7831
  * @param event - The event name to stop listening for
@@ -7854,6 +7951,7 @@ export declare interface VideoController {
7854
7951
  * @param mutations - Array of DOM mutation records
7855
7952
  */
7856
7953
  onWatermarkElementChange(mutations: MutationRecord[]): void;
7954
+ setAdCtaElement: (element: HTMLElement | null) => void;
7857
7955
  }
7858
7956
 
7859
7957
  declare type VideoDetailResponsiveField = OrganizationResponsiveSetting<{
@@ -8229,6 +8327,7 @@ export declare interface Watermark {
8229
8327
 
8230
8328
  export declare interface WebConfig {
8231
8329
  customer: CustomerId;
8330
+ customerName?: string;
8232
8331
  title?: string;
8233
8332
  description?: string;
8234
8333
  logo: string;
@@ -8244,16 +8343,35 @@ export declare interface WebConfig {
8244
8343
  * Text on buy voucher button, if not provided the default text will be used.
8245
8344
  */
8246
8345
  buyVoucherButtonText?: string;
8346
+ /**
8347
+ * If true, the voucher button will be shown in the header.
8348
+ */
8349
+ showVoucherButton?: boolean;
8247
8350
  allowSearch?: boolean;
8248
8351
  logoHeight?: string;
8249
8352
  mobileLogoHeight?: string;
8250
8353
  buySubscriptionButtonText?: string;
8354
+ isHidden?: boolean;
8355
+ /**
8356
+ * Additional menu items to be shown in the rounded menu in the header (external or internal)
8357
+ */
8358
+ additionalMenuItems?: {
8359
+ name: string;
8360
+ href: string;
8361
+ newTab?: boolean;
8362
+ }[];
8251
8363
  };
8252
8364
  footer?: {
8365
+ isHidden?: boolean;
8253
8366
  /**
8254
8367
  * If logo is different from logo in header
8255
8368
  */
8256
8369
  logo?: string;
8370
+ /**
8371
+ * @fixme https://app.clickup.com/t/90151157205/TIV-1515
8372
+ * If multiple logos are provided, the multiple logos are prioritized over the single logo.
8373
+ */
8374
+ multipleLogos?: string[];
8257
8375
  showLogo?: boolean;
8258
8376
  /**
8259
8377
  * right panel - various type of contacts to owners of website
@@ -8296,6 +8414,19 @@ export declare interface WebConfig {
8296
8414
  email?: string;
8297
8415
  };
8298
8416
  cookieSettingsLabel?: string;
8417
+ disclaimer?: string;
8418
+ showDivider?: boolean;
8419
+ /**
8420
+ * Additional links to be shown in the footer
8421
+ */
8422
+ additionalLinks?: {
8423
+ name: string;
8424
+ href: string;
8425
+ }[];
8426
+ /**
8427
+ * Hide footer on these paths
8428
+ */
8429
+ hideFooter?: string[];
8299
8430
  partners?: {
8300
8431
  name: string;
8301
8432
  logo: string;
@@ -8311,6 +8442,14 @@ export declare interface WebConfig {
8311
8442
  * so app requires authorization to see them.
8312
8443
  */
8313
8444
  securedContent?: boolean;
8445
+ /**
8446
+ * If true, then auth is required for all pages.
8447
+ */
8448
+ isAuthRequired?: boolean;
8449
+ /**
8450
+ * If true, then buy subscription button is hidden.
8451
+ */
8452
+ hideBuySubscriptionButton?: boolean;
8314
8453
  /**
8315
8454
  * CSS styles for application background.
8316
8455
  */
@@ -8329,6 +8468,10 @@ export declare interface WebConfig {
8329
8468
  * Default is TRUE (see {@link AppLoadingOverlay}
8330
8469
  */
8331
8470
  showProgressBar?: boolean;
8471
+ /**
8472
+ * URL to background image shown on loading screen.
8473
+ */
8474
+ backgroundUrl?: string;
8332
8475
  };
8333
8476
  /**
8334
8477
  * Slug of all pages where user will be forced to fill login form if he's not logged in.
@@ -8356,6 +8499,7 @@ export declare interface WebConfig {
8356
8499
  */
8357
8500
  showChooseSubscription?: boolean;
8358
8501
  registration?: {
8502
+ logoMarginTop?: string;
8359
8503
  /**
8360
8504
  * Customization of auth form
8361
8505
  */
@@ -8375,6 +8519,7 @@ export declare interface WebConfig {
8375
8519
  showAcceptanceOfTermsAndConditions?: boolean;
8376
8520
  };
8377
8521
  registrationConsent?: string;
8522
+ socialRegistrationConsent?: string;
8378
8523
  };
8379
8524
  payment?: {
8380
8525
  paymentConsent?: string;
@@ -8385,9 +8530,11 @@ export declare interface WebConfig {
8385
8530
  */
8386
8531
  supportVouchers?: boolean;
8387
8532
  /**
8388
- * Config for Google Tag Manager
8533
+ * Config for Google Tag Manager with optional shouldWaitForDidomi flag
8389
8534
  */
8390
- googleTagManagerConfig?: TagManagerArgs;
8535
+ googleTagManagerConfig?: TagManagerArgs & {
8536
+ shouldWaitForDidomi?: boolean;
8537
+ };
8391
8538
  customScripts?: CustomScript[];
8392
8539
  /**
8393
8540
  * Favicons config
@@ -8406,6 +8553,8 @@ export declare interface WebConfig {
8406
8553
  };
8407
8554
  monetizationSelectOverlay?: {
8408
8555
  title?: string;
8556
+ benefitLeftIcon?: string;
8557
+ showFullMonetizationOnMobile?: boolean;
8409
8558
  };
8410
8559
  /**
8411
8560
  * Google Analytics ID. If provided, Google Analytics will be enabled.
@@ -8417,6 +8566,7 @@ export declare interface WebConfig {
8417
8566
  centeredMenu?: boolean;
8418
8567
  /**
8419
8568
  * All values are considered as false if not provided.
8569
+ * @deprecated - use settings.allowedSignInProviders inside OrganizationDocument
8420
8570
  */
8421
8571
  socialLogins?: {
8422
8572
  showAppleLogin?: boolean;
@@ -8431,11 +8581,24 @@ export declare interface WebConfig {
8431
8581
  * If true, robots.txt will prevent crawling of the website.
8432
8582
  */
8433
8583
  norobots?: boolean;
8434
- customTranslations?: {
8435
- [key: string]: {
8436
- [key: string]: string;
8437
- };
8584
+ voucher?: {
8585
+ voucherConsent: string;
8438
8586
  };
8587
+ customTranslations?: Record<string, Record<string, string>>;
8588
+ onPurchase?: (monetization: Purchase) => void;
8589
+ facebookPixelConfig?: {
8590
+ pixelId: string;
8591
+ shouldWaitForDidomi?: boolean;
8592
+ };
8593
+ /**
8594
+ * If true, the app will be locked in the "remote controller" mode.
8595
+ * This means that the app will not be able to navigate to other pages and will only show the remote controller.
8596
+ */
8597
+ isRemoteControllerApp?: boolean;
8598
+ /**
8599
+ * Determines if application should check allowed URL handles when switching applications.
8600
+ */
8601
+ disableUrlHandleCheck?: boolean;
8439
8602
  /**
8440
8603
  * Map for all handlers
8441
8604
  */
@@ -8458,7 +8621,7 @@ export declare interface WebGridScreenProps {
8458
8621
  */
8459
8622
  export declare interface WebPlayerProps {
8460
8623
  id: string;
8461
- source?: InputSourceParams | VideoPath | ChannelPath | null;
8624
+ source?: InputSourceParams | PathSourceParams | VideoPath | ChannelPath | null;
8462
8625
  onEnded?: () => any;
8463
8626
  /**
8464
8627
  * If true, the player will inherit the width and height of its parent element.
@@ -8544,6 +8707,8 @@ export declare interface WebPlayerProps {
8544
8707
  setPaymentOverlayVisible?: React_2.Dispatch<React_2.SetStateAction<boolean>>;
8545
8708
  hideOverlay?: boolean;
8546
8709
  sourcePlayMode?: SourcePlayMode;
8710
+ adsConfig?: StaticAdsBreak[];
8711
+ userAuthCallbacks?: SDKUserAuthCallbacks;
8547
8712
  }
8548
8713
 
8549
8714
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tivio/sdk-react",
3
- "version": "9.4.0",
3
+ "version": "9.6.0",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "source": "src/index.ts",
@@ -38,7 +38,7 @@
38
38
  "@material-ui/core": "^4.11.2",
39
39
  "@material-ui/icons": "^4.11.2",
40
40
  "@sentry/browser": "^6.1.0",
41
- "@tivio/common": "1.1.134",
41
+ "@tivio/common": "1.1.136",
42
42
  "dayjs": "^1.11.0",
43
43
  "es7-object-polyfill": "^1.0.1",
44
44
  "firebase": "8.10.1",