@wscsports/blaze-web-sdk 0.15.0 → 0.16.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/package.json +1 -1
- package/publish/index.d.ts +634 -31
- package/publish/index.js +1 -1
package/publish/index.d.ts
CHANGED
|
@@ -429,6 +429,7 @@ declare class DeviceDetector {
|
|
|
429
429
|
static getInstance(): DeviceDetector;
|
|
430
430
|
private detectOS;
|
|
431
431
|
private detectBrowser;
|
|
432
|
+
get getPlatform(): Platform;
|
|
432
433
|
get isDesktop(): boolean;
|
|
433
434
|
get isMobile(): boolean;
|
|
434
435
|
get isTablet(): boolean;
|
|
@@ -437,6 +438,8 @@ declare class DeviceDetector {
|
|
|
437
438
|
private handleResize;
|
|
438
439
|
isIOSMobileTabletSafari(): boolean;
|
|
439
440
|
get isFullscreenSupported(): boolean;
|
|
441
|
+
getDeviceInfo(): UAParser.IDevice;
|
|
442
|
+
getOSInfo(): UAParser.IOS;
|
|
440
443
|
}
|
|
441
444
|
export declare const deviceDetector: DeviceDetector;
|
|
442
445
|
|
|
@@ -470,17 +473,22 @@ export declare class FullscreenManager {
|
|
|
470
473
|
|
|
471
474
|
export * from './analytics.class';
|
|
472
475
|
export * from './base-element.class';
|
|
476
|
+
export * from './data-source.class';
|
|
473
477
|
export * from './debounce';
|
|
474
478
|
export * from './device-detector.class';
|
|
475
479
|
export * from './events-listener';
|
|
480
|
+
export * from './fullscreen-manager.class';
|
|
476
481
|
export * from './label-builder.class';
|
|
482
|
+
export * from './logger/logger-manager.class';
|
|
483
|
+
export * from './logger/logger-storage.class';
|
|
484
|
+
export * from './logger/logger-transport.class';
|
|
485
|
+
export * from './logger/logger-throttle.class';
|
|
477
486
|
export * from './long-press.handler';
|
|
478
487
|
export * from './singleton.class';
|
|
479
488
|
export * from './throttle';
|
|
480
489
|
export * from './url';
|
|
481
|
-
export * from './data-source.class';
|
|
482
|
-
export * from './fullscreen-manager.class';
|
|
483
490
|
export * from './visiblity-manager.class';
|
|
491
|
+
export * from './accessibility';
|
|
484
492
|
|
|
485
493
|
export interface IBlazeWidgetLabel {
|
|
486
494
|
readonly _type: 'BlazeWidgetLabel';
|
|
@@ -579,6 +587,217 @@ export declare class VisibilityManager {
|
|
|
579
587
|
detach(): void;
|
|
580
588
|
}
|
|
581
589
|
|
|
590
|
+
export declare const DEFAULT_ACCESSIBILITY_CONFIG: AccessibilityConfig;
|
|
591
|
+
export declare const DEFAULT_CONTENT_ACCESSIBILITY_CONFIG: ContentAccessibilityConfig;
|
|
592
|
+
|
|
593
|
+
export interface ModalLabelConfig {
|
|
594
|
+
contentType: ContentType;
|
|
595
|
+
position: number;
|
|
596
|
+
total: number;
|
|
597
|
+
title?: string;
|
|
598
|
+
currentContent?: any;
|
|
599
|
+
includeNavigationContext?: boolean;
|
|
600
|
+
}
|
|
601
|
+
export declare function generateModalAriaLabel(config: ModalLabelConfig): string;
|
|
602
|
+
|
|
603
|
+
declare class AccessibilityManager implements IAccessibilityManager {
|
|
604
|
+
private announcementService;
|
|
605
|
+
private contentButtons;
|
|
606
|
+
private modalFocusReturnTarget;
|
|
607
|
+
constructor(config?: AccessibilityConfig);
|
|
608
|
+
setupLiveRegions(container: HTMLElement): void;
|
|
609
|
+
announce(announcement: AccessibilityAnnouncement): void;
|
|
610
|
+
private getContentTypeLabel;
|
|
611
|
+
manageFocus(element: HTMLElement): void;
|
|
612
|
+
storeModalFocusReturnTarget(element: HTMLElement): void;
|
|
613
|
+
private returnFocusFromModal;
|
|
614
|
+
setupModalAccessibility(modal: HTMLElement, contentType: ContentType): void;
|
|
615
|
+
announceModalStatus(action: string, contentType: ContentType, context?: any): void;
|
|
616
|
+
closeModal(contentType: ContentType): void;
|
|
617
|
+
private clearModalFocusReturnTarget;
|
|
618
|
+
cleanup(): void;
|
|
619
|
+
clearAnnouncementQueue(): void;
|
|
620
|
+
}
|
|
621
|
+
export { AccessibilityManager };
|
|
622
|
+
export declare const accessibilityManager: AccessibilityManager;
|
|
623
|
+
|
|
624
|
+
export declare class ButtonLabelManager {
|
|
625
|
+
static setButtonLabel(button: BlazeButton | BlazeCtaButton, label: string): void;
|
|
626
|
+
static buildPlayPauseLabel(isPlaying: boolean, contentType: ContentType): string;
|
|
627
|
+
static buildMuteLabel(isMuted: boolean, contentType: ContentType): string;
|
|
628
|
+
static buildLikeLabel(isLiked: boolean): string;
|
|
629
|
+
static buildCtaLabel(ctaText?: string): string;
|
|
630
|
+
static buildNavigationLabel(direction: 'next' | 'prev', contentType: ContentType, target?: 'page' | 'content'): string;
|
|
631
|
+
static setBatchLabels(buttonLabelPairs: Array<[BlazeButton | BlazeCtaButton | undefined, string]>): void;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
declare class ContentAccessibilityManager implements IContentAccessibilityManager {
|
|
635
|
+
private config;
|
|
636
|
+
private contentStrategies;
|
|
637
|
+
private registeredWidgets;
|
|
638
|
+
private lastUserActionTime;
|
|
639
|
+
private readonly userActionThrottleMs;
|
|
640
|
+
constructor(config?: ContentAccessibilityConfig);
|
|
641
|
+
private initializeStrategies;
|
|
642
|
+
registerContentWidget(contentId: string, elements: IContentWidgetElements, contentType: ContentType): void;
|
|
643
|
+
updateButtonLabels(contentId: string, dynamicState: Partial<IContentWidgetData>): void;
|
|
644
|
+
private getContentTypeLabel;
|
|
645
|
+
unregisterContentWidget(contentId: string): void;
|
|
646
|
+
announceUserAction(contentType: ContentType, action: string, context: UserActionContext): void;
|
|
647
|
+
announceModalOpening(contentType: ContentType, context: ModalContext): void;
|
|
648
|
+
announceNavigation(position: number, total: number, type: string, title?: string, context?: AccessibilityContext): void;
|
|
649
|
+
private generateMeaningfulAnnouncement;
|
|
650
|
+
private buildPageNavigationAnnouncement;
|
|
651
|
+
private buildStoryNavigationAnnouncement;
|
|
652
|
+
private buildMomentNavigationAnnouncement;
|
|
653
|
+
private buildGenericNavigationAnnouncement;
|
|
654
|
+
private formatAnnouncementMessage;
|
|
655
|
+
cleanup(): void;
|
|
656
|
+
}
|
|
657
|
+
export { ContentAccessibilityManager };
|
|
658
|
+
export declare const contentAccessibilityManager: ContentAccessibilityManager;
|
|
659
|
+
|
|
660
|
+
declare abstract class BaseContentAccessibilityStrategy implements IContentAccessibilityStrategy {
|
|
661
|
+
protected contentType: ContentType;
|
|
662
|
+
protected buttonLabels: BaseButtonLabelConfig;
|
|
663
|
+
protected registeredWidgets: Map<string, IContentWidgetElements>;
|
|
664
|
+
constructor(contentType: ContentType, buttonLabels: BaseButtonLabelConfig);
|
|
665
|
+
setupAccessibility(contentId: string, elements: IContentWidgetElements): void;
|
|
666
|
+
updateLabels(contentId: string, data: IContentWidgetData): void;
|
|
667
|
+
cleanup(contentId: string): void;
|
|
668
|
+
}
|
|
669
|
+
export declare class StoryAccessibilityStrategy extends BaseContentAccessibilityStrategy {
|
|
670
|
+
private storyButtonLabels;
|
|
671
|
+
constructor(buttonLabels: StoryButtonLabelConfig);
|
|
672
|
+
updateLabels(contentId: string, data: IContentWidgetData): void;
|
|
673
|
+
}
|
|
674
|
+
export declare class MomentAccessibilityStrategy extends BaseContentAccessibilityStrategy {
|
|
675
|
+
private momentButtonLabels;
|
|
676
|
+
constructor(buttonLabels: MomentButtonLabelConfig);
|
|
677
|
+
updateLabels(contentId: string, data: IContentWidgetData): void;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
export * from './accessibility.class';
|
|
681
|
+
export * from './accessibility-configs';
|
|
682
|
+
export * from './content-accessibility-manager.class';
|
|
683
|
+
export * from './content-accessibility-strategies';
|
|
684
|
+
export * from './accessibility-utils';
|
|
685
|
+
export * from './button-label-manager';
|
|
686
|
+
|
|
687
|
+
export * from './logger-manager.class';
|
|
688
|
+
export * from './logger-storage.class';
|
|
689
|
+
export * from './logger-transport.class';
|
|
690
|
+
export * from './logger-throttle.class';
|
|
691
|
+
export * from './logger-database-adapter';
|
|
692
|
+
|
|
693
|
+
export declare class LoggerDatabaseAdapter implements ILoggerDatabase {
|
|
694
|
+
storeLog(entry: LogEntryDB): Promise<void>;
|
|
695
|
+
getLogBatch(maxSize: number): Promise<LogEntryDB[]>;
|
|
696
|
+
removeLogs(ids: string[]): Promise<void>;
|
|
697
|
+
clearLogs(): Promise<void>;
|
|
698
|
+
getLogCount(): Promise<number>;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export declare class LoggerManager implements ILogger {
|
|
702
|
+
private static readonly LOG_IDENTIFIER_PREFIX;
|
|
703
|
+
private readonly storage;
|
|
704
|
+
private readonly transport;
|
|
705
|
+
private readonly throttle;
|
|
706
|
+
private configuration;
|
|
707
|
+
private pendingConfigUpdate;
|
|
708
|
+
private isInitialized;
|
|
709
|
+
private isDestroyed;
|
|
710
|
+
private isSending;
|
|
711
|
+
private immediateLogs;
|
|
712
|
+
private offlineQueue;
|
|
713
|
+
private immediateTimer;
|
|
714
|
+
private configUpdateTimer;
|
|
715
|
+
private isOnline;
|
|
716
|
+
private onlineStatusListener;
|
|
717
|
+
constructor(database: ILoggerDatabase);
|
|
718
|
+
init(configuration?: ILoggerConfiguration): Promise<void>;
|
|
719
|
+
destroy(): Promise<void>;
|
|
720
|
+
updateConfiguration(configuration: ILoggerConfiguration): void;
|
|
721
|
+
log(level: LogLevel, customLogIdentifier: string, message: string, metadata: ILogMetadata): Promise<void>;
|
|
722
|
+
private shouldLog;
|
|
723
|
+
private shouldSendImmediately;
|
|
724
|
+
private addToImmediateBatch;
|
|
725
|
+
private flushImmediateLogs;
|
|
726
|
+
private removeEntriesFromStorage;
|
|
727
|
+
private sendEntriesAndCleanup;
|
|
728
|
+
private processBatch;
|
|
729
|
+
private setupNetworkMonitoring;
|
|
730
|
+
private syncOfflineQueue;
|
|
731
|
+
private addToOfflineQueue;
|
|
732
|
+
private scheduleConfigurationUpdate;
|
|
733
|
+
private applyPendingConfiguration;
|
|
734
|
+
private resetLoggerState;
|
|
735
|
+
private handleNetworkReconnection;
|
|
736
|
+
private setDefaultLoggerConfiguration;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
export interface ILoggerDatabase {
|
|
740
|
+
storeLog(entry: LogEntryDB): Promise<void>;
|
|
741
|
+
getLogBatch(maxSize: number): Promise<LogEntryDB[]>;
|
|
742
|
+
removeLogs(ids: string[]): Promise<void>;
|
|
743
|
+
clearLogs(): Promise<void>;
|
|
744
|
+
getLogCount(): Promise<number>;
|
|
745
|
+
}
|
|
746
|
+
export declare class LoggerStorage {
|
|
747
|
+
private database;
|
|
748
|
+
constructor(database: ILoggerDatabase);
|
|
749
|
+
store(entry: LogEntryDB): Promise<void>;
|
|
750
|
+
getBatch(maxSize: number): Promise<LogEntryDB[]>;
|
|
751
|
+
remove(ids: string[]): Promise<void>;
|
|
752
|
+
clear(): Promise<void>;
|
|
753
|
+
getLogCount(): Promise<number>;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
export declare class LoggerThrottle {
|
|
757
|
+
private batchIntervalMs;
|
|
758
|
+
private logCount;
|
|
759
|
+
private batchInterval;
|
|
760
|
+
private batchCallback;
|
|
761
|
+
private _maxBatchSize;
|
|
762
|
+
private _minBatchSize;
|
|
763
|
+
get minBatchSize(): number;
|
|
764
|
+
get maxBatchSize(): number;
|
|
765
|
+
updateConfiguration(config: {
|
|
766
|
+
batchIntervalMs: number;
|
|
767
|
+
maxBatchSize: number;
|
|
768
|
+
minBatchSize: number;
|
|
769
|
+
}): void;
|
|
770
|
+
onBatchReady(callback: () => Promise<void>): void;
|
|
771
|
+
destroy(): void;
|
|
772
|
+
private setupBatchInterval;
|
|
773
|
+
incrementLogCount(): void;
|
|
774
|
+
shouldTriggerBatch(): boolean;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
export declare class BatchRejectedError extends Error {
|
|
778
|
+
constructor(message?: string);
|
|
779
|
+
}
|
|
780
|
+
export interface ILogApiRequest {
|
|
781
|
+
message: string;
|
|
782
|
+
level: string;
|
|
783
|
+
api_key: string;
|
|
784
|
+
api_scheme_version: string;
|
|
785
|
+
metadata: ILogMetadata;
|
|
786
|
+
}
|
|
787
|
+
export declare class LoggerTransport {
|
|
788
|
+
private readonly MAX_RETRY_ATTEMPTS;
|
|
789
|
+
private readonly BASE_RETRY_DELAY;
|
|
790
|
+
private readonly MAX_RETRY_DELAY;
|
|
791
|
+
private readonly REQUEST_TIMEOUT;
|
|
792
|
+
send(entries: LogEntryDB[]): Promise<void>;
|
|
793
|
+
private sendWithRetry;
|
|
794
|
+
private attemptSend;
|
|
795
|
+
private preparePayload;
|
|
796
|
+
private sendToEndpoint;
|
|
797
|
+
private calculateRetryDelay;
|
|
798
|
+
private delay;
|
|
799
|
+
}
|
|
800
|
+
|
|
582
801
|
export declare class BlazeAlert extends BaseWidget {
|
|
583
802
|
titleContainer: HTMLDivElement;
|
|
584
803
|
textContainer: HTMLDivElement;
|
|
@@ -749,7 +968,8 @@ export declare class BlazeButton extends BaseWidget {
|
|
|
749
968
|
isAnimationOnDesktopInitialized: boolean;
|
|
750
969
|
get refElement(): ShadowRoot | this;
|
|
751
970
|
constructor();
|
|
752
|
-
|
|
971
|
+
private setupFocusDelegation;
|
|
972
|
+
static get observedAttributes(): ("height" | "order" | "width" | "icon-color" | "disabled" | "blaze-btn-visible" | "blaze-btn-hidden" | "button-desktop-animation")[];
|
|
753
973
|
private onMouseEnter;
|
|
754
974
|
private onMouseLeave;
|
|
755
975
|
private onClick;
|
|
@@ -760,6 +980,7 @@ export declare class BlazeButton extends BaseWidget {
|
|
|
760
980
|
get width(): string | number | boolean;
|
|
761
981
|
setIconUrl(value: string): void;
|
|
762
982
|
setIconUrlAnimation(value: string): void;
|
|
983
|
+
setAriaLabel(label: string): void;
|
|
763
984
|
private applyIconStyles;
|
|
764
985
|
private setIsHidden;
|
|
765
986
|
private setIsVisible;
|
|
@@ -830,6 +1051,7 @@ export declare class BlazeCtaButton extends BaseWidget {
|
|
|
830
1051
|
setAnchorButtonStyles(styles: Partial<CSSStyleDeclaration>): void;
|
|
831
1052
|
setCtaTextStyle(styles: Partial<CSSStyleDeclaration>): void;
|
|
832
1053
|
setCtaIconStyles(styles: Partial<CSSStyleDeclaration>): void;
|
|
1054
|
+
setAriaLabel(label: string): void;
|
|
833
1055
|
clearAllAnimations(): void;
|
|
834
1056
|
}
|
|
835
1057
|
|
|
@@ -856,6 +1078,19 @@ export declare class BlazeShareButton extends BaseWidget {
|
|
|
856
1078
|
createButton(text: string, svgIcon: string): void;
|
|
857
1079
|
}
|
|
858
1080
|
|
|
1081
|
+
export declare const ACCESSIBILITY_TIMING: {
|
|
1082
|
+
readonly FOCUS_DELAY: 500;
|
|
1083
|
+
readonly LABEL_CLEAR_DELAY: 1000;
|
|
1084
|
+
readonly CONFIG_SCHEDULE_DELAY: 1000;
|
|
1085
|
+
};
|
|
1086
|
+
export declare const ACCESSIBILITY_ATTRIBUTES: {
|
|
1087
|
+
readonly ACTIVE_TABINDEX: "0";
|
|
1088
|
+
readonly INACTIVE_TABINDEX: "-1";
|
|
1089
|
+
readonly REGION_ROLE: "region";
|
|
1090
|
+
readonly ARIA_HIDDEN_FALSE: "false";
|
|
1091
|
+
readonly ARIA_HIDDEN_TRUE: "true";
|
|
1092
|
+
};
|
|
1093
|
+
|
|
859
1094
|
export declare const IMA_RATIOS: {
|
|
860
1095
|
readonly general: "1x1";
|
|
861
1096
|
readonly horizontal: "640x480";
|
|
@@ -983,6 +1218,7 @@ export declare const ASPECT_RATIO_16_9_STRING = "16 / 9";
|
|
|
983
1218
|
export declare const ASPECT_RATIO_9_16_STRING = "9 / 16";
|
|
984
1219
|
export declare const ASPECT_RATIO_4_3_STRING = "4 / 3";
|
|
985
1220
|
|
|
1221
|
+
export * from './accessibility.constants';
|
|
986
1222
|
export * from './ads.constants';
|
|
987
1223
|
export * from './analytics.constants';
|
|
988
1224
|
export * from './device.constants';
|
|
@@ -1040,6 +1276,7 @@ export declare const DB_NAMES: {
|
|
|
1040
1276
|
readonly USER: "user";
|
|
1041
1277
|
readonly STORIES: "stories";
|
|
1042
1278
|
readonly VIDEOS: "videos";
|
|
1279
|
+
readonly LOGS: "logs";
|
|
1043
1280
|
};
|
|
1044
1281
|
export declare class Database implements IDatabase {
|
|
1045
1282
|
private readonly options;
|
|
@@ -1053,7 +1290,9 @@ export declare class Database implements IDatabase {
|
|
|
1053
1290
|
private deleteDatabase;
|
|
1054
1291
|
createTransaction(tableName: string, mode: 'readonly' | 'readwrite'): IDBObjectStore | null;
|
|
1055
1292
|
get<T>(tableName: string, key: string): Promise<IResponse<T>>;
|
|
1293
|
+
getAll<T>(tableName: string): Promise<T[]>;
|
|
1056
1294
|
update<T>(tableName: string, value: any): Promise<IResponse<T>>;
|
|
1295
|
+
delete(tableName: string, key: string): Promise<IResponse<void>>;
|
|
1057
1296
|
private throttledReinit;
|
|
1058
1297
|
}
|
|
1059
1298
|
|
|
@@ -1091,7 +1330,9 @@ export type IAdInfo = IWebAdInfo | IImaAdInfo;
|
|
|
1091
1330
|
export interface AppConfiguration {
|
|
1092
1331
|
configurations: {
|
|
1093
1332
|
analyticsAddEntitiesInfo?: string;
|
|
1333
|
+
configRefetchIntervalInMinutes?: number;
|
|
1094
1334
|
};
|
|
1335
|
+
sdkLoggerConfigurations?: ILoggerConfiguration;
|
|
1095
1336
|
}
|
|
1096
1337
|
|
|
1097
1338
|
export type ContentExtraInfo = {
|
|
@@ -1154,6 +1395,7 @@ export * from './cta.interface';
|
|
|
1154
1395
|
export * from './interaction.interface';
|
|
1155
1396
|
export * from './layer-content.interface';
|
|
1156
1397
|
export * from './layer.interface';
|
|
1398
|
+
export * from './log-entry.interface';
|
|
1157
1399
|
export * from './moment.interface';
|
|
1158
1400
|
export * from './page.interface';
|
|
1159
1401
|
export * from './rendition.interface';
|
|
@@ -1258,6 +1500,16 @@ export interface ILayer {
|
|
|
1258
1500
|
content: ILayerContent;
|
|
1259
1501
|
}
|
|
1260
1502
|
|
|
1503
|
+
export interface LogEntryDB {
|
|
1504
|
+
id: string;
|
|
1505
|
+
message: string;
|
|
1506
|
+
level: LogLevel;
|
|
1507
|
+
timestamp: string;
|
|
1508
|
+
logIdentifier: string;
|
|
1509
|
+
metadata: string;
|
|
1510
|
+
priority: number;
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1261
1513
|
type MomentType = 'Content' | 'Ad';
|
|
1262
1514
|
export interface IMoment extends IContent {
|
|
1263
1515
|
momentIndexInPlaylist: number;
|
|
@@ -1448,6 +1700,15 @@ export * from './event.enum';
|
|
|
1448
1700
|
export * from './http-status.enum';
|
|
1449
1701
|
export * from './button.enum';
|
|
1450
1702
|
export * from './action-handler-id.enum';
|
|
1703
|
+
export * from './log-level.enum';
|
|
1704
|
+
|
|
1705
|
+
export declare enum LogLevel {
|
|
1706
|
+
DEBUG = "DEBUG",
|
|
1707
|
+
INFO = "INFO",
|
|
1708
|
+
WARN = "WARN",
|
|
1709
|
+
ERROR = "ERROR",
|
|
1710
|
+
CRITICAL = "CRITICAL"
|
|
1711
|
+
}
|
|
1451
1712
|
|
|
1452
1713
|
export interface WidgetsTagNameMap {
|
|
1453
1714
|
'blaze-sdk': BlazeWidgetSDK;
|
|
@@ -1595,6 +1856,72 @@ export declare const shareVideosIconSvg = "data:image/svg+xml;base64,PHN2ZyB4bWx
|
|
|
1595
1856
|
export declare const linkIconSvg = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNNDQwLTI4MEgyODBxLTgzIDAtMTQxLjUtNTguNVQ4MC00ODBxMC04MyA1OC41LTE0MS41VDI4MC02ODBoMTYwdjgwSDI4MHEtNTAgMC04NSAzNXQtMzUgODVxMCA1MCAzNSA4NXQ4NSAzNWgxNjB2ODBaTTMyMC00NDB2LTgwaDMyMHY4MEgzMjBabTIwMCAxNjB2LTgwaDE2MHE1MCAwIDg1LTM1dDM1LTg1cTAtNTAtMzUtODV0LTg1LTM1SDUyMHYtODBoMTYwcTgzIDAgMTQxLjUgNTguNVQ4ODAtNDgwcTAgODMtNTguNSAxNDEuNVQ2ODAtMjgwSDUyMFoiLz48L3N2Zz4=";
|
|
1596
1857
|
export declare const checkMarkSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzUxMl8xMDY4IiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPgo8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IiNEOUQ5RDkiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzUxMl8xMDY4KSI+CjxwYXRoIGQ9Ik05LjU1MDEgMThMMy44NTAxIDEyLjNMNS4yNzUxIDEwLjg3NUw5LjU1MDEgMTUuMTVMMTguNzI1MSA1Ljk3NDk4TDIwLjE1MDEgNy4zOTk5OEw5LjU1MDEgMThaIiBmaWxsPSIjRjBGMEYwIi8+CjwvZz4KPC9zdmc+Cg==";
|
|
1597
1858
|
|
|
1859
|
+
export interface AccessibilityContext {
|
|
1860
|
+
navigationType?: string;
|
|
1861
|
+
export interface ModalContext extends AccessibilityContext {
|
|
1862
|
+
total: number;
|
|
1863
|
+
isPlaying?: boolean;
|
|
1864
|
+
hasClosedCaptions?: boolean;
|
|
1865
|
+
totalPages?: number;
|
|
1866
|
+
}
|
|
1867
|
+
export interface UserActionContext extends AccessibilityContext {
|
|
1868
|
+
setupAccessibility(contentId: string, elements: IContentWidgetElements): void;
|
|
1869
|
+
updateLabels(contentId: string, data: IContentWidgetData): void;
|
|
1870
|
+
cleanup(contentId: string): void;
|
|
1871
|
+
}
|
|
1872
|
+
export interface AccessibilityAnnouncement {
|
|
1873
|
+
message: string;
|
|
1874
|
+
priority: AnnouncementPriority;
|
|
1875
|
+
delay?: number;
|
|
1876
|
+
category?: AnnouncementCategory;
|
|
1877
|
+
}
|
|
1878
|
+
export interface IContentWidgetButtons {
|
|
1879
|
+
play?: HTMLElement;
|
|
1880
|
+
mute?: HTMLElement;
|
|
1881
|
+
like?: HTMLElement;
|
|
1882
|
+
share?: HTMLElement;
|
|
1883
|
+
close?: HTMLElement;
|
|
1884
|
+
cta?: HTMLElement;
|
|
1885
|
+
captions?: HTMLElement;
|
|
1886
|
+
custom1?: HTMLElement;
|
|
1887
|
+
custom2?: HTMLElement;
|
|
1888
|
+
nextStoryPage?: HTMLElement;
|
|
1889
|
+
prevStoryPage?: HTMLElement;
|
|
1890
|
+
nextStory?: HTMLElement;
|
|
1891
|
+
prevStory?: HTMLElement;
|
|
1892
|
+
nextMoment?: HTMLElement;
|
|
1893
|
+
prevMoment?: HTMLElement;
|
|
1894
|
+
}
|
|
1895
|
+
export interface IContentWidgetData {
|
|
1896
|
+
id: string;
|
|
1897
|
+
title?: string;
|
|
1898
|
+
isPlaying?: boolean;
|
|
1899
|
+
isMuted?: boolean;
|
|
1900
|
+
isLiked?: boolean;
|
|
1901
|
+
hasClosedCaptions?: boolean;
|
|
1902
|
+
ctaText?: string;
|
|
1903
|
+
}
|
|
1904
|
+
export interface IContentWidgetElements {
|
|
1905
|
+
widget: HTMLElement;
|
|
1906
|
+
buttons: IContentWidgetButtons;
|
|
1907
|
+
data: IContentWidgetData;
|
|
1908
|
+
}
|
|
1909
|
+
export interface IContentAccessibilityManager {
|
|
1910
|
+
registerContentWidget(contentId: string, elements: IContentWidgetElements, contentType: ContentType): void;
|
|
1911
|
+
updateButtonLabels(contentId: string, dynamicState: Partial<IContentWidgetData>): void;
|
|
1912
|
+
announceUserAction(contentType: ContentType, action: string, context: UserActionContext): void;
|
|
1913
|
+
announceModalOpening(contentType: ContentType, context: ModalContext): void;
|
|
1914
|
+
announceNavigation(position: number, total: number, type: string, title?: string, context?: AccessibilityContext): void;
|
|
1915
|
+
unregisterContentWidget(contentId: string): void;
|
|
1916
|
+
cleanup(): void;
|
|
1917
|
+
}
|
|
1918
|
+
export interface IAccessibilityManager {
|
|
1919
|
+
setupLiveRegions(container?: HTMLElement): void;
|
|
1920
|
+
announce(announcement: AccessibilityAnnouncement): void;
|
|
1921
|
+
manageFocus(element: HTMLElement): void;
|
|
1922
|
+
cleanup(): void;
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1598
1925
|
type CustomNativeTargeting = Record<string, string | string[]>;
|
|
1599
1926
|
type CustomNativeArgs = {
|
|
1600
1927
|
path: string;
|
|
@@ -1662,7 +1989,9 @@ export type IdsDataSourceParams = Omit<BlazeDataSourceType, 'sourceType' | 'labe
|
|
|
1662
1989
|
export interface IDatabase {
|
|
1663
1990
|
init: () => Promise<void>;
|
|
1664
1991
|
get: <T>(tableName: string, key: string) => Promise<IResponse<T>>;
|
|
1992
|
+
getAll: <T>(tableName: string) => Promise<T[]>;
|
|
1665
1993
|
update: <T>(tableName: string, value: any) => Promise<IResponse<T>>;
|
|
1994
|
+
delete: (tableName: string, key: string) => Promise<IResponse<void>>;
|
|
1666
1995
|
}
|
|
1667
1996
|
export interface IDatabaseInitOptions {
|
|
1668
1997
|
onOpen: (db: IDBDatabase) => Promise<void>;
|
|
@@ -1752,6 +2081,7 @@ export type BlazeVideoIconsStyle = BaseBlazeIcons & {
|
|
|
1752
2081
|
};
|
|
1753
2082
|
};
|
|
1754
2083
|
|
|
2084
|
+
export * from './accessibility-manager.interface';
|
|
1755
2085
|
export * from './ad-handler.interface';
|
|
1756
2086
|
export * from './behaviors.interface';
|
|
1757
2087
|
export * from './blaze-sdk.interface';
|
|
@@ -1762,13 +2092,14 @@ export * from './device.interface';
|
|
|
1762
2092
|
export * from './drawable.interface';
|
|
1763
2093
|
export * from './http-response.interface';
|
|
1764
2094
|
export * from './icons.interface';
|
|
1765
|
-
export * from './
|
|
2095
|
+
export * from './logger.interface';
|
|
1766
2096
|
export * from './player.interface';
|
|
1767
2097
|
export * from './response.interface';
|
|
1768
2098
|
export * from './service.interface';
|
|
1769
2099
|
export * from './widget-label-builder.interface';
|
|
1770
2100
|
export * from './widget-options.interface';
|
|
1771
2101
|
export * from './widget-view.interface';
|
|
2102
|
+
export * from './item-click-callback.interface';
|
|
1772
2103
|
export { default as Observable } from './observable';
|
|
1773
2104
|
|
|
1774
2105
|
export interface ItemClickContext {
|
|
@@ -1794,6 +2125,74 @@ export interface ILayoutDataSourceOptions {
|
|
|
1794
2125
|
shouldOrderWidgetByReadStatus?: boolean;
|
|
1795
2126
|
}
|
|
1796
2127
|
|
|
2128
|
+
export interface ILoggerConfiguration {
|
|
2129
|
+
isEnabled: boolean;
|
|
2130
|
+
loggerBatchIntervalInSeconds: number;
|
|
2131
|
+
loggerMaxAllowedBatchSize: number;
|
|
2132
|
+
loggerMinAllowedBatchSize: number;
|
|
2133
|
+
logLevel: LogLevel;
|
|
2134
|
+
immediateLogLevel: LogLevel;
|
|
2135
|
+
ignoredLogs: IIgnoredLog[];
|
|
2136
|
+
}
|
|
2137
|
+
export interface IIgnoredLog {
|
|
2138
|
+
logIdentifier: string;
|
|
2139
|
+
sdkType: 'Web';
|
|
2140
|
+
applyFromVersion?: string;
|
|
2141
|
+
applyBelowVersion?: string;
|
|
2142
|
+
applySpecificVersions?: string[];
|
|
2143
|
+
}
|
|
2144
|
+
export interface ILogEntry {
|
|
2145
|
+
id: string;
|
|
2146
|
+
message: string;
|
|
2147
|
+
level: LogLevel;
|
|
2148
|
+
timestamp: string;
|
|
2149
|
+
logIdentifier: string;
|
|
2150
|
+
metadata: ILogMetadata;
|
|
2151
|
+
}
|
|
2152
|
+
export interface ILogMetadata {
|
|
2153
|
+
session_id: string;
|
|
2154
|
+
id: string;
|
|
2155
|
+
log_identifier: string;
|
|
2156
|
+
sdk_type: string;
|
|
2157
|
+
sdk_version: string;
|
|
2158
|
+
api_key: string;
|
|
2159
|
+
device_type: string;
|
|
2160
|
+
device_brand: string;
|
|
2161
|
+
device_model: string;
|
|
2162
|
+
operating_system: string;
|
|
2163
|
+
operating_system_version: string;
|
|
2164
|
+
screen_resolution: string;
|
|
2165
|
+
connection_type: string;
|
|
2166
|
+
app_id: string;
|
|
2167
|
+
app_version: string;
|
|
2168
|
+
reporting_timestamp: string;
|
|
2169
|
+
[key: string]: any;
|
|
2170
|
+
}
|
|
2171
|
+
export declare const METADATA_FIELDS: {
|
|
2172
|
+
readonly SESSION_ID: "session_id";
|
|
2173
|
+
readonly ID: "id";
|
|
2174
|
+
readonly SDK_TYPE: "sdk_type";
|
|
2175
|
+
readonly SDK_VERSION: "sdk_version";
|
|
2176
|
+
readonly API_KEY: "api_key";
|
|
2177
|
+
readonly DEVICE_TYPE: "device_type";
|
|
2178
|
+
readonly DEVICE_BRAND: "device_brand";
|
|
2179
|
+
readonly DEVICE_MODEL: "device_model";
|
|
2180
|
+
readonly OPERATING_SYSTEM: "operating_system";
|
|
2181
|
+
readonly OPERATING_SYSTEM_VERSION: "operating_system_version";
|
|
2182
|
+
readonly SCREEN_RESOLUTION: "screen_resolution";
|
|
2183
|
+
readonly CONNECTION_TYPE: "connection_type";
|
|
2184
|
+
readonly APP_ID: "app_id";
|
|
2185
|
+
readonly APP_VERSION: "app_version";
|
|
2186
|
+
readonly REPORTING_TIMESTAMP: "reporting_timestamp";
|
|
2187
|
+
readonly LOG_IDENTIFIER: "log_identifier";
|
|
2188
|
+
};
|
|
2189
|
+
export interface ILogger {
|
|
2190
|
+
init(configuration?: ILoggerConfiguration): Promise<void>;
|
|
2191
|
+
log(level: LogLevel, logIdentifier: string, message: string, metadata?: Record<string, any>): void;
|
|
2192
|
+
updateConfiguration(configuration: ILoggerConfiguration): void;
|
|
2193
|
+
destroy(): Promise<void>;
|
|
2194
|
+
}
|
|
2195
|
+
|
|
1797
2196
|
export default interface IntersectionObservable {
|
|
1798
2197
|
intersectionObserver: IntersectionObserver;
|
|
1799
2198
|
handleIntersection(entries: IntersectionObserverEntry[]): void;
|
|
@@ -1917,6 +2316,24 @@ declare abstract class AnalyticsServiceClass extends AnalyticsServiceClass_base
|
|
|
1917
2316
|
}
|
|
1918
2317
|
export declare const AnalyticsService: AnalyticsServiceClass;
|
|
1919
2318
|
|
|
2319
|
+
export declare class AnnouncementService implements IAnnouncementService {
|
|
2320
|
+
private config;
|
|
2321
|
+
private containerRegions;
|
|
2322
|
+
private announcementQueue;
|
|
2323
|
+
private isProcessingAnnouncement;
|
|
2324
|
+
private lastAnnouncementTime;
|
|
2325
|
+
private liveRegionsSetup;
|
|
2326
|
+
constructor(config: AnnouncementConfig);
|
|
2327
|
+
setupLiveRegions(container: HTMLElement): void;
|
|
2328
|
+
announce(message: string, priority?: AnnouncementPriority, category?: AnnouncementCategory): void;
|
|
2329
|
+
queueAnnouncement(announcement: AccessibilityAnnouncement): void;
|
|
2330
|
+
clearQueue(): void;
|
|
2331
|
+
isProcessing(): boolean;
|
|
2332
|
+
private processAnnouncementQueue;
|
|
2333
|
+
private performAnnouncement;
|
|
2334
|
+
cleanup(): void;
|
|
2335
|
+
}
|
|
2336
|
+
|
|
1920
2337
|
type GetOptions = {
|
|
1921
2338
|
orderType?: OrderType;
|
|
1922
2339
|
};
|
|
@@ -1990,6 +2407,7 @@ declare abstract class ApiServiceClass extends ApiServiceClass_base implements I
|
|
|
1990
2407
|
setLiked: boolean;
|
|
1991
2408
|
}): Promise<void>;
|
|
1992
2409
|
sendAnaltyicsEvents(body: Partial<AnalyticsEvent>[]): Promise<import("../interfaces").IHttpResponse<unknown>>;
|
|
2410
|
+
sendLoggerLogs(compressedBody: ArrayBuffer): Promise<import("../interfaces").IHttpResponse<unknown>>;
|
|
1993
2411
|
sendInteractionResponse(options: {
|
|
1994
2412
|
interactionId: Interaction['id'];
|
|
1995
2413
|
responseId: string;
|
|
@@ -2011,9 +2429,13 @@ declare const AppConfigurationServiceClass_base: {
|
|
|
2011
2429
|
};
|
|
2012
2430
|
declare abstract class AppConfigurationServiceClass extends AppConfigurationServiceClass_base implements IService {
|
|
2013
2431
|
private _appConfigurations?;
|
|
2432
|
+
private _refetchInterval;
|
|
2014
2433
|
constructor();
|
|
2015
2434
|
get appConfigurations(): AppConfiguration | undefined;
|
|
2016
2435
|
init(options: IBlazeSDKOptions): Promise<void>;
|
|
2436
|
+
private setupRefetchInterval;
|
|
2437
|
+
private clearRefetchInterval;
|
|
2438
|
+
destroy(): void;
|
|
2017
2439
|
}
|
|
2018
2440
|
export declare const AppConfigurationService: AppConfigurationServiceClass;
|
|
2019
2441
|
|
|
@@ -2059,6 +2481,7 @@ declare abstract class ConfigServiceClass extends ConfigServiceClass_base implem
|
|
|
2059
2481
|
private readonly _russiaRegionCDN;
|
|
2060
2482
|
private readonly _urls;
|
|
2061
2483
|
private readonly _analyticsUrls;
|
|
2484
|
+
private _loggerUrls;
|
|
2062
2485
|
private readonly _globalStorageCDN;
|
|
2063
2486
|
private readonly _russiaStorageCDN;
|
|
2064
2487
|
private readonly _sdkStorageCDNs;
|
|
@@ -2070,7 +2493,8 @@ declare abstract class ConfigServiceClass extends ConfigServiceClass_base implem
|
|
|
2070
2493
|
private set environment(value);
|
|
2071
2494
|
get sendAnalytics(): boolean;
|
|
2072
2495
|
get shouldCreateUser(): boolean;
|
|
2073
|
-
get analyticsApiUrl(): string
|
|
2496
|
+
get analyticsApiUrl(): string;
|
|
2497
|
+
get loggerApiUrl(): string;
|
|
2074
2498
|
get externalUserId(): string | null;
|
|
2075
2499
|
set externalUserId(value: string | null);
|
|
2076
2500
|
get doNotTrack(): boolean;
|
|
@@ -2148,6 +2572,11 @@ declare abstract class DatabaseServiceClass extends DatabaseServiceClass_base im
|
|
|
2148
2572
|
updateVideoData(videoId: string, data: Partial<VideoDBData>): Promise<void>;
|
|
2149
2573
|
getVideoLike(videoId: string): Promise<IResponse<VideoDBData> | null>;
|
|
2150
2574
|
getVideoPosterById(videoId: string): Promise<string | undefined>;
|
|
2575
|
+
addLog(log: LogEntryDB): Promise<void>;
|
|
2576
|
+
getLogs(maxCount: number): Promise<LogEntryDB[]>;
|
|
2577
|
+
removeLogs(logIds: string[]): Promise<void>;
|
|
2578
|
+
clearLogs(): Promise<void>;
|
|
2579
|
+
getLogCount(): Promise<number>;
|
|
2151
2580
|
}
|
|
2152
2581
|
export declare const DatabaseService: DatabaseServiceClass;
|
|
2153
2582
|
|
|
@@ -2219,7 +2648,9 @@ export * from './event.service';
|
|
|
2219
2648
|
export * from './interaction.service';
|
|
2220
2649
|
export * from './like.service';
|
|
2221
2650
|
export * from './logger.service';
|
|
2651
|
+
export * from './moment.service';
|
|
2222
2652
|
export * from './startup.service';
|
|
2653
|
+
export * from './story.service';
|
|
2223
2654
|
export * from './user.service';
|
|
2224
2655
|
export * from './video-cache.service';
|
|
2225
2656
|
export * from './video-player.service';
|
|
@@ -2228,6 +2659,7 @@ export * from './widgets.service';
|
|
|
2228
2659
|
export * from './moment.service';
|
|
2229
2660
|
export * from './story.service';
|
|
2230
2661
|
export * from './user-country.service';
|
|
2662
|
+
export * from './announcement.service';
|
|
2231
2663
|
|
|
2232
2664
|
declare const InteractionServiceClass_base: {
|
|
2233
2665
|
new (): {};
|
|
@@ -2257,33 +2689,18 @@ declare abstract class LikeServiceClass extends LikeServiceClass_base implements
|
|
|
2257
2689
|
}
|
|
2258
2690
|
export declare const LikeService: LikeServiceClass;
|
|
2259
2691
|
|
|
2260
|
-
interface LoggerParams {
|
|
2261
|
-
message: string;
|
|
2262
|
-
level?: LogLevel;
|
|
2263
|
-
metadata?: Record<string, any>;
|
|
2264
|
-
}
|
|
2265
|
-
declare enum LogLevel {
|
|
2266
|
-
INFO = "info",
|
|
2267
|
-
WARN = "warn",
|
|
2268
|
-
ERROR = "error"
|
|
2269
|
-
}
|
|
2270
2692
|
declare const LoggerServiceClass_base: {
|
|
2271
2693
|
new (): {};
|
|
2272
2694
|
_instance: LoggerServiceClass;
|
|
2273
2695
|
getInstance(): LoggerServiceClass;
|
|
2274
2696
|
};
|
|
2275
|
-
declare class LoggerServiceClass extends LoggerServiceClass_base implements IService {
|
|
2276
|
-
private
|
|
2277
|
-
|
|
2278
|
-
private constructor();
|
|
2697
|
+
declare abstract class LoggerServiceClass extends LoggerServiceClass_base implements IService, ILogger {
|
|
2698
|
+
private loggerManager;
|
|
2699
|
+
constructor();
|
|
2279
2700
|
init(): Promise<void>;
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
log(
|
|
2283
|
-
info(message: string, metadata?: Record<string, any>): void;
|
|
2284
|
-
warn(message: string, metadata?: Record<string, any>): void;
|
|
2285
|
-
error(message: string, metadata?: Record<string, any>): void;
|
|
2286
|
-
printLogsToScreen(): void;
|
|
2701
|
+
destroy(): Promise<void>;
|
|
2702
|
+
updateConfiguration(configuration: ILoggerConfiguration): void;
|
|
2703
|
+
log(level: LogLevel, logIdentifier: string, message: string, metadata?: ILogMetadata): Promise<void>;
|
|
2287
2704
|
}
|
|
2288
2705
|
export declare const LoggerService: LoggerServiceClass;
|
|
2289
2706
|
|
|
@@ -2929,6 +3346,30 @@ export type EnhancementsType = {
|
|
|
2929
3346
|
hasSwipeUp: boolean;
|
|
2930
3347
|
} | null;
|
|
2931
3348
|
|
|
3349
|
+
export type AnnouncementPriority = 'polite' | 'assertive';
|
|
3350
|
+
export type AnnouncementCategory = 'navigation' | 'status' | 'error' | 'success';
|
|
3351
|
+
export declare const ANNOUNCEMENT_CONSTANTS: {
|
|
3352
|
+
readonly LIVE_REGIONS: {
|
|
3353
|
+
readonly POLITE_ID: "blaze-aria-live-polite";
|
|
3354
|
+
readonly ASSERTIVE_ID: "blaze-aria-live-assertive";
|
|
3355
|
+
readonly STYLES: {
|
|
3356
|
+
readonly POSITION: "absolute";
|
|
3357
|
+
readonly LEFT: "-10000px";
|
|
3358
|
+
readonly WIDTH: "1px";
|
|
3359
|
+
readonly HEIGHT: "1px";
|
|
3360
|
+
readonly OVERFLOW: "hidden";
|
|
3361
|
+
};
|
|
3362
|
+
};
|
|
3363
|
+
readonly ATTRIBUTES: {
|
|
3364
|
+
readonly ARIA_LIVE: "aria-live";
|
|
3365
|
+
readonly ARIA_ATOMIC: "aria-atomic";
|
|
3366
|
+
readonly ATOMIC_VALUE: "true";
|
|
3367
|
+
};
|
|
3368
|
+
readonly TIMING: {
|
|
3369
|
+
readonly REGION_SETUP_DELAY: 10;
|
|
3370
|
+
};
|
|
3371
|
+
};
|
|
3372
|
+
|
|
2932
3373
|
export interface IAttributeParser {
|
|
2933
3374
|
getIntAttribute(key: string, defaultValue?: number): number | undefined;
|
|
2934
3375
|
getFloatAttribute(key: string, defaultValue?: number): number | undefined;
|
|
@@ -3348,6 +3789,7 @@ export type StoryGestureType = 'Swipe Up' | 'CTA Click';
|
|
|
3348
3789
|
export type MomentGestureType = 'CTA Click';
|
|
3349
3790
|
|
|
3350
3791
|
export * from './animation.type';
|
|
3792
|
+
export * from './announcement.type';
|
|
3351
3793
|
export * from './attribute-parser';
|
|
3352
3794
|
export * from './button.type';
|
|
3353
3795
|
export * from './chip-status.type';
|
|
@@ -3483,6 +3925,24 @@ export type IWidgetViewOptions = IWidgetViewOptionsWithLabels | IWidgetViewOptio
|
|
|
3483
3925
|
|
|
3484
3926
|
export type WidgetType = 'Row' | 'Grid';
|
|
3485
3927
|
|
|
3928
|
+
export declare function buildContentTypeLabel(contentType: ContentType, title: string, elementType?: 'button' | 'item' | 'player'): string;
|
|
3929
|
+
export declare function getContentTypeAction(contentType: ContentType): string;
|
|
3930
|
+
export declare function buildStatusInfo(content: IStory | IMoment | IVideo, badgeStyle?: IndicatorStyle): string;
|
|
3931
|
+
export declare function buildContentAriaLabel(options: {
|
|
3932
|
+
contentType: ContentType;
|
|
3933
|
+
title: string;
|
|
3934
|
+
content: IStory | IMoment | IVideo;
|
|
3935
|
+
position?: number;
|
|
3936
|
+
total?: number;
|
|
3937
|
+
badgeStyle?: IndicatorStyle;
|
|
3938
|
+
elementType?: 'button' | 'item' | 'player';
|
|
3939
|
+
}): string;
|
|
3940
|
+
export declare function buildCarouselLabel(contentType: ContentType, count: number, includeInstructions?: boolean): {
|
|
3941
|
+
label: string;
|
|
3942
|
+
announcement: string;
|
|
3943
|
+
};
|
|
3944
|
+
export declare function generateThumbnailAltText(contentType: ContentType, title: string, content: IStory | IMoment | IVideo): string;
|
|
3945
|
+
|
|
3486
3946
|
export declare function isImaAdInfo(ad: IAdInfo): ad is IImaAdInfo;
|
|
3487
3947
|
export declare function addContextToCustomTargeting(adInfo: IBaseAdInfo, customTargeting: Record<string, string | string[]>): void;
|
|
3488
3948
|
|
|
@@ -3553,6 +4013,7 @@ export declare function findParentOfType<T>(target: EventTarget | null, type: {
|
|
|
3553
4013
|
}, stopAt: Element): T | null;
|
|
3554
4014
|
export declare function validateContainer(containerId: string, widgetElementName?: string): HTMLElement;
|
|
3555
4015
|
|
|
4016
|
+
export * from './accessibility-label.utils';
|
|
3556
4017
|
export * from './ad-info.utils';
|
|
3557
4018
|
export * from './cc-language.utils';
|
|
3558
4019
|
export * from './chip.utils';
|
|
@@ -3565,6 +4026,7 @@ export * from './personalized.utils';
|
|
|
3565
4026
|
export * from './position.utils';
|
|
3566
4027
|
export * from './regex.utils';
|
|
3567
4028
|
export * from './shared-event-target.utils';
|
|
4029
|
+
export * from './tab-index-utils';
|
|
3568
4030
|
export * from './stopwatch';
|
|
3569
4031
|
|
|
3570
4032
|
export declare function getPersonalizedParamsForRequest(personalized?: BlazePersonalized): {
|
|
@@ -3611,8 +4073,74 @@ export declare class Stopwatch {
|
|
|
3611
4073
|
reset(): void;
|
|
3612
4074
|
}
|
|
3613
4075
|
|
|
4076
|
+
export declare class AccessibilityUtils {
|
|
4077
|
+
static setElementsAccessible(elements: Element[]): void;
|
|
4078
|
+
static setElementsInaccessible(elements: Element[]): void;
|
|
4079
|
+
static setElementAccessibilityHidden(element: Element): void;
|
|
4080
|
+
static setElementsAccessibilityHidden(elements: Element[]): void;
|
|
4081
|
+
}
|
|
4082
|
+
|
|
3614
4083
|
export declare function getVideoDuration(existingVideo?: HTMLVideoElement, videoUrl?: string): Promise<number>;
|
|
3615
4084
|
|
|
4085
|
+
export { LOG_LEVEL_VALUES, isLogLevelAllowed, calculateLogPriority } from './logger-level-utils';
|
|
4086
|
+
export { buildLogMetadata, MetadataKeys } from './logger-metadata-utils';
|
|
4087
|
+
export { compressPayload } from './logger-compression-utils';
|
|
4088
|
+
export { estimateEntrySize, calculateTotalMemoryUsage } from './logger-memory-utils';
|
|
4089
|
+
export { validateLoggerConfigurationDetailed, shouldIgnoreLog, sanitizeBatchSizeConfiguration } from './logger-validation-utils';
|
|
4090
|
+
export { extractEntryIds } from './logger-storage-utils';
|
|
4091
|
+
export { pruneOfflineQueue, addToOfflineQueueWithPruning } from './logger-offline-utils';
|
|
4092
|
+
|
|
4093
|
+
export declare function compressPayload(payload: object | string): Promise<ArrayBuffer>;
|
|
4094
|
+
|
|
4095
|
+
export declare const LOG_LEVEL_VALUES: {
|
|
4096
|
+
readonly DEBUG: 1;
|
|
4097
|
+
readonly INFO: 2;
|
|
4098
|
+
readonly WARN: 3;
|
|
4099
|
+
readonly ERROR: 4;
|
|
4100
|
+
readonly CRITICAL: 5;
|
|
4101
|
+
};
|
|
4102
|
+
export declare function isLogLevelAllowed(logLevel: LogLevel, configuredLevel: LogLevel): boolean;
|
|
4103
|
+
export declare function calculateLogPriority(level: LogLevel): number;
|
|
4104
|
+
|
|
4105
|
+
export declare function estimateEntrySize(entry: LogEntryDB): number;
|
|
4106
|
+
export declare function calculateTotalMemoryUsage(entries: LogEntryDB[]): number;
|
|
4107
|
+
|
|
4108
|
+
export declare const MetadataKeys: {
|
|
4109
|
+
readonly SESSION_ID: "session_id";
|
|
4110
|
+
readonly ID: "id";
|
|
4111
|
+
readonly SDK_TYPE: "sdk_type";
|
|
4112
|
+
readonly SDK_VERSION: "sdk_version";
|
|
4113
|
+
readonly API_KEY: "api_key";
|
|
4114
|
+
readonly DEVICE_TYPE: "device_type";
|
|
4115
|
+
readonly DEVICE_BRAND: "device_brand";
|
|
4116
|
+
readonly DEVICE_MODEL: "device_model";
|
|
4117
|
+
readonly OPERATING_SYSTEM: "operating_system";
|
|
4118
|
+
readonly OPERATING_SYSTEM_VERSION: "operating_system_version";
|
|
4119
|
+
readonly SCREEN_RESOLUTION: "screen_resolution";
|
|
4120
|
+
readonly CONNECTION_TYPE: "connection_type";
|
|
4121
|
+
readonly REPORTING_TIMESTAMP: "reporting_timestamp";
|
|
4122
|
+
readonly LOG_IDENTIFIER: "log_identifier";
|
|
4123
|
+
};
|
|
4124
|
+
export declare function buildLogMetadata(sessionId: string, logId: string, logIdentifier?: string, customMetadata?: Record<string, any>): Record<string, any>;
|
|
4125
|
+
|
|
4126
|
+
export declare function pruneOfflineQueue(queue: LogEntryDB[], maxSize: number): {
|
|
4127
|
+
prunedQueue: LogEntryDB[];
|
|
4128
|
+
removedCount: number;
|
|
4129
|
+
};
|
|
4130
|
+
export declare function addToOfflineQueueWithPruning(queue: LogEntryDB[], entry: LogEntryDB, maxSize: number): {
|
|
4131
|
+
updatedQueue: LogEntryDB[];
|
|
4132
|
+
removedCount: number;
|
|
4133
|
+
};
|
|
4134
|
+
|
|
4135
|
+
export declare function extractEntryIds(entries: LogEntryDB[]): string[];
|
|
4136
|
+
|
|
4137
|
+
export declare function validateLoggerConfigurationDetailed(config: ILoggerConfiguration): {
|
|
4138
|
+
isValid: boolean;
|
|
4139
|
+
errors: string[];
|
|
4140
|
+
};
|
|
4141
|
+
export declare function sanitizeBatchSizeConfiguration(config: ILoggerConfiguration): ILoggerConfiguration;
|
|
4142
|
+
export declare function shouldIgnoreLog(logIdentifier: string, ignoredLogs: IIgnoredLog[]): boolean;
|
|
4143
|
+
|
|
3616
4144
|
export * from './commands/player-buttons.command';
|
|
3617
4145
|
export * from './commands/video-commands';
|
|
3618
4146
|
export * from './components/timer';
|
|
@@ -4351,7 +4879,7 @@ export declare abstract class WidgetBaseLayout extends BlazeWidgetScrollable imp
|
|
|
4351
4879
|
protected abstract updateWidgetDisplay(): void;
|
|
4352
4880
|
protected sortContent(): void;
|
|
4353
4881
|
protected reorderWidgets(): void;
|
|
4354
|
-
|
|
4882
|
+
protected getContentType(): ContentType;
|
|
4355
4883
|
static get observedAttributes(): string[];
|
|
4356
4884
|
protected createModal(type: ContentType): void;
|
|
4357
4885
|
protected beforeStoryModalCreation(): void;
|
|
@@ -4637,20 +5165,25 @@ export declare class BlazeWidgetItem extends BaseWidget implements Observable {
|
|
|
4637
5165
|
contentType: ContentType | undefined;
|
|
4638
5166
|
chipType: ChipStatusType;
|
|
4639
5167
|
intersectionObserver: IntersectionObserver;
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
paddingItem: PositionOffset;
|
|
5168
|
+
private position;
|
|
5169
|
+
private total;
|
|
4643
5170
|
content: IStory | IMoment | IVideo;
|
|
4644
5171
|
onClick: (() => void) | undefined;
|
|
4645
5172
|
private boundOnWidgetClick;
|
|
5173
|
+
private boundOnFocus;
|
|
5174
|
+
get parentRef(): BlazeWidgetLayout;
|
|
5175
|
+
statusIndicatorSettings: IndicatorStyle;
|
|
5176
|
+
paddingItem: PositionOffset;
|
|
4646
5177
|
constructor(options: BlazeWidgetItemOptions);
|
|
4647
5178
|
private initializeWidget;
|
|
4648
5179
|
connectedCallback(): void;
|
|
5180
|
+
private updateAriaLabel;
|
|
4649
5181
|
updateWidget(): void;
|
|
4650
5182
|
updateWidgetItemPadding(): void;
|
|
4651
5183
|
updateWidgetItemStyle(layoutStyle: LayoutStyle): void;
|
|
4652
5184
|
private setupDOMElements;
|
|
4653
5185
|
private setupEventListeners;
|
|
5186
|
+
private onFocus;
|
|
4654
5187
|
private handleWidgetClick;
|
|
4655
5188
|
disconnectedCallback(): void;
|
|
4656
5189
|
debouncedIntersectionAction: {
|
|
@@ -4661,6 +5194,7 @@ export declare class BlazeWidgetItem extends BaseWidget implements Observable {
|
|
|
4661
5194
|
};
|
|
4662
5195
|
handleIntersection(): void;
|
|
4663
5196
|
private setData;
|
|
5197
|
+
private setupChildElementsAccessibility;
|
|
4664
5198
|
isFullyVisibleInParent(): boolean;
|
|
4665
5199
|
loadNewThumbnail(): void;
|
|
4666
5200
|
getThumbnailUrl(): string;
|
|
@@ -4684,6 +5218,11 @@ export declare class BlazeWidgetItem extends BaseWidget implements Observable {
|
|
|
4684
5218
|
private getItemIndex;
|
|
4685
5219
|
event(action: WidgetAction, data: Partial<WidgetEvent>, label?: string | undefined): void;
|
|
4686
5220
|
render(): void;
|
|
5221
|
+
updateAccessibilityInfo(info: {
|
|
5222
|
+
position: number;
|
|
5223
|
+
total: number;
|
|
5224
|
+
contentType?: ContentType;
|
|
5225
|
+
}): void;
|
|
4687
5226
|
}
|
|
4688
5227
|
|
|
4689
5228
|
/// <reference types="node" />
|
|
@@ -4701,6 +5240,8 @@ export declare class BlazeWidgetLayout extends WidgetBaseLayout {
|
|
|
4701
5240
|
onMouseLeaveEvent: (e: MouseEvent) => void;
|
|
4702
5241
|
currentlyAnimatedItem: BlazeWidgetItem | undefined;
|
|
4703
5242
|
firstVisibleItem: BlazeWidgetItem | undefined;
|
|
5243
|
+
private focusedItemIndex;
|
|
5244
|
+
private lastFocusedIndex;
|
|
4704
5245
|
get refElement(): ShadowRoot | BlazeWidgetLayout;
|
|
4705
5246
|
constructor();
|
|
4706
5247
|
connectedCallback(): void;
|
|
@@ -4709,7 +5250,6 @@ export declare class BlazeWidgetLayout extends WidgetBaseLayout {
|
|
|
4709
5250
|
onResize(): void;
|
|
4710
5251
|
handleHeightChangeMutation(mutationsList: MutationRecord[]): void;
|
|
4711
5252
|
handleIntersection(entries: IntersectionObserverEntry[]): void;
|
|
4712
|
-
onKeyDown(e: KeyboardEvent): void;
|
|
4713
5253
|
onContentChange(mode: ContentDirection): void;
|
|
4714
5254
|
onPlayerClose(): void;
|
|
4715
5255
|
onPlayerOpen(): void;
|
|
@@ -4777,10 +5317,24 @@ export declare class BlazeWidgetLayout extends WidgetBaseLayout {
|
|
|
4777
5317
|
connectWidgets(): void;
|
|
4778
5318
|
get thumbnailShape(): ThumbnailShape;
|
|
4779
5319
|
widgetType(): WidgetType;
|
|
5320
|
+
setPersonalized(personalized?: BlazePersonalized): void;
|
|
5321
|
+
private setupAccessibility;
|
|
5322
|
+
private updateAccessibilityLabel;
|
|
5323
|
+
onKeyDown(e: KeyboardEvent): void;
|
|
5324
|
+
private navigateToNextItem;
|
|
5325
|
+
private navigateToPreviousItem;
|
|
5326
|
+
private navigateToItem;
|
|
5327
|
+
private activateCurrentItem;
|
|
5328
|
+
private announceCurrentItem;
|
|
5329
|
+
updateFocusedItemIndex(index: number): void;
|
|
5330
|
+
private setFocusState;
|
|
5331
|
+
private removeTabIndexFromWidgetItems;
|
|
5332
|
+
private restoreTabIndexOnWidgetItems;
|
|
4780
5333
|
}
|
|
4781
5334
|
|
|
4782
5335
|
export declare class BlazeWidgetModal extends BaseWidget {
|
|
4783
5336
|
player: BlazeWidgetStoryPlayer | BlazeWidgetMomentPlayer | BlazeWidgetVideoPlayer;
|
|
5337
|
+
private contentType;
|
|
4784
5338
|
isOpen: boolean;
|
|
4785
5339
|
exitButtonElement: BlazeButton;
|
|
4786
5340
|
exitButtonWrapperElement: BlazeDiv;
|
|
@@ -4789,6 +5343,7 @@ export declare class BlazeWidgetModal extends BaseWidget {
|
|
|
4789
5343
|
isMultiTouch: boolean;
|
|
4790
5344
|
boundOnResizeEvent: (this: Window, ev: UIEvent) => void;
|
|
4791
5345
|
boundOnPopStateEvent: (ev: PopStateEvent) => void;
|
|
5346
|
+
boundOnExitButtonClick: (ev: MouseEvent) => void;
|
|
4792
5347
|
onContentChange?: (mode: ContentDirection) => void;
|
|
4793
5348
|
onClose: ((options?: ISmoothOpenCloseModal) => void) | undefined;
|
|
4794
5349
|
onOpen: (() => void) | undefined;
|
|
@@ -4798,6 +5353,7 @@ export declare class BlazeWidgetModal extends BaseWidget {
|
|
|
4798
5353
|
private isRealResizeEvent;
|
|
4799
5354
|
onResize(): void;
|
|
4800
5355
|
handleOnContentChange(mode: ContentDirection): void;
|
|
5356
|
+
handleOnExitButtonClick(): void;
|
|
4801
5357
|
handlePopState(): void;
|
|
4802
5358
|
seek(id: string): void;
|
|
4803
5359
|
setupHammer(): void;
|
|
@@ -4814,6 +5370,7 @@ export declare class BlazeWidgetModal extends BaseWidget {
|
|
|
4814
5370
|
customButtonVisibility?: boolean;
|
|
4815
5371
|
}): boolean;
|
|
4816
5372
|
render(): void;
|
|
5373
|
+
private transferFocusToModal;
|
|
4817
5374
|
}
|
|
4818
5375
|
|
|
4819
5376
|
export type BlazeWidgetContent = BlazeWidgetStory | BlazeWidgetMoment | BlazeVideoElement;
|
|
@@ -5209,6 +5766,8 @@ export declare class BlazeWidgetMomentPlayer extends WidgetAbstractPlayer {
|
|
|
5209
5766
|
boundHandleMuteClicked: () => void;
|
|
5210
5767
|
private fetchedPosterUrls;
|
|
5211
5768
|
private preloadTimer;
|
|
5769
|
+
private accessibilityConfigTimeout;
|
|
5770
|
+
private focusTimeout;
|
|
5212
5771
|
constructor();
|
|
5213
5772
|
get currentMoment(): BlazeWidgetMoment;
|
|
5214
5773
|
connectedCallback(): void;
|
|
@@ -5228,6 +5787,7 @@ export declare class BlazeWidgetMomentPlayer extends WidgetAbstractPlayer {
|
|
|
5228
5787
|
updateItemData(itemToReplaceWith: BlazeWidgetMoment & BlazeWidgetStory & BlazeVideoElement, nextItemToInsert: BlazeWidgetMoment | BlazeWidgetStory | BlazeVideoElement): void;
|
|
5229
5788
|
createAnimation(content: BlazeWidgetMoment, direction: ContentDirection, targetIndex: number): AnimeTimelineInstance;
|
|
5230
5789
|
handleAnimationStart(content: BlazeWidgetMoment, direction: ContentDirection): void;
|
|
5790
|
+
private calculateTruePosition;
|
|
5231
5791
|
handleAnimationCompletion(content: BlazeWidgetMoment, mode: ContentDirection): Promise<void>;
|
|
5232
5792
|
loadAndPlayContent(): Promise<void>;
|
|
5233
5793
|
setContent(content: BlazeWidgetMoment[]): void;
|
|
@@ -5246,6 +5806,13 @@ export declare class BlazeWidgetMomentPlayer extends WidgetAbstractPlayer {
|
|
|
5246
5806
|
loadContentBatch(): void;
|
|
5247
5807
|
resetStyles(): void;
|
|
5248
5808
|
render(): void;
|
|
5809
|
+
configurePlayerContentAccessibility(): void;
|
|
5810
|
+
private setCurrentMomentAccessibility;
|
|
5811
|
+
private setInactiveMomentAccessibility;
|
|
5812
|
+
private scheduleAccessibilityConfig;
|
|
5813
|
+
private cancelAccessibilityConfig;
|
|
5814
|
+
private scheduleFocus;
|
|
5815
|
+
private cancelFocus;
|
|
5249
5816
|
}
|
|
5250
5817
|
|
|
5251
5818
|
export declare class BlazeWidgetMomentSeekBar extends HTMLElement {
|
|
@@ -5335,6 +5902,7 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
|
|
|
5335
5902
|
onClose: () => void;
|
|
5336
5903
|
boundOnCtaClicked: (event: Event) => void;
|
|
5337
5904
|
boundPlayPauseButtonClick: (event: MouseEvent) => void;
|
|
5905
|
+
boundOnKeyDown: (event: KeyboardEvent) => void;
|
|
5338
5906
|
topContainer: BlazeDiv;
|
|
5339
5907
|
bottomContainer: BlazeDiv;
|
|
5340
5908
|
bottomContentContainer: BlazeDiv;
|
|
@@ -5443,6 +6011,18 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
|
|
|
5443
6011
|
restartVideo(): void;
|
|
5444
6012
|
adjustContentView(): void;
|
|
5445
6013
|
event(action: MomentAction, momentData: Partial<MomentEvent>, label?: string | undefined): Promise<void>;
|
|
6014
|
+
private registerMomentAccessibility;
|
|
6015
|
+
updateAccessibilityLabels(): void;
|
|
6016
|
+
private buildMomentAccessibilityState;
|
|
6017
|
+
updateContentAccessibilityAfterDataChange(): void;
|
|
6018
|
+
protected updateButtonAccessibilityLabels(): void;
|
|
6019
|
+
enableAllButtons(): void;
|
|
6020
|
+
disableAllButtons(): void;
|
|
6021
|
+
protected setButtonsAccessibilityState(buttons: Element[], accessible: boolean): void;
|
|
6022
|
+
private enableAnchorElements;
|
|
6023
|
+
private disableAnchorElements;
|
|
6024
|
+
getAllFocusableButtons(): Element[];
|
|
6025
|
+
private getMomentButtonsForAccessibility;
|
|
5446
6026
|
render(): void;
|
|
5447
6027
|
}
|
|
5448
6028
|
|
|
@@ -5475,6 +6055,8 @@ export declare class BlazeWidgetStoryPlayer extends WidgetAbstractPlayer {
|
|
|
5475
6055
|
boundOnKeyDown: (event: KeyboardEvent) => Promise<void>;
|
|
5476
6056
|
backgroundAnimation?: Animation;
|
|
5477
6057
|
dispatchExitStoryEvents: (() => void) | undefined;
|
|
6058
|
+
private accessibilityConfigTimeout;
|
|
6059
|
+
private focusTimeout;
|
|
5478
6060
|
constructor();
|
|
5479
6061
|
connectedCallback(): void;
|
|
5480
6062
|
disconnectedCallback(): void;
|
|
@@ -5505,6 +6087,15 @@ export declare class BlazeWidgetStoryPlayer extends WidgetAbstractPlayer {
|
|
|
5505
6087
|
render(): void;
|
|
5506
6088
|
loadContentBatch(): void;
|
|
5507
6089
|
playToggleCurrentStory(): void;
|
|
6090
|
+
manageElementsAccessible(activeContentId: string): void;
|
|
6091
|
+
calculateTruePosition(currentContent: BlazeWidgetStory): number;
|
|
6092
|
+
private configurePlayerContentAccessibility;
|
|
6093
|
+
private setCurrentStoryAccessibility;
|
|
6094
|
+
private setInactiveStoryAccessibility;
|
|
6095
|
+
private scheduleAccessibilityConfig;
|
|
6096
|
+
private cancelAccessibilityConfig;
|
|
6097
|
+
private scheduleFocus;
|
|
6098
|
+
private cancelFocus;
|
|
5508
6099
|
}
|
|
5509
6100
|
|
|
5510
6101
|
export declare class BlazeWidgetStory extends BlazeWidgetContent {
|
|
@@ -5677,6 +6268,18 @@ export declare class BlazeWidgetStory extends BlazeWidgetContent {
|
|
|
5677
6268
|
private onNextPageEvent;
|
|
5678
6269
|
private onPrevPageEvent;
|
|
5679
6270
|
private getPagesContentExtraInfo;
|
|
6271
|
+
getAllFocusableButtons(): Element[];
|
|
6272
|
+
enableAllButtons(): void;
|
|
6273
|
+
disableAllButtons(): void;
|
|
6274
|
+
protected setButtonsAccessibilityState(buttons: Element[], accessible: boolean): void;
|
|
6275
|
+
private registerStoryAccessibility;
|
|
6276
|
+
private buildStoryRegistrationData;
|
|
6277
|
+
private getStoryButtonsForAccessibility;
|
|
6278
|
+
private getStoryDataForAccessibility;
|
|
6279
|
+
private updateStoryAccessibilityLabels;
|
|
6280
|
+
private getCurrentAccessibilityState;
|
|
6281
|
+
updateAccessibilityLabels(): void;
|
|
6282
|
+
private buildStoryAccessibilityState;
|
|
5680
6283
|
}
|
|
5681
6284
|
|
|
5682
6285
|
export declare const ElementId: {
|