@hopeplayer/core 1.0.2 → 1.0.4
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/dist/HopePlayerElement.d.ts +27 -0
- package/dist/HopePlayerElement.d.ts.map +1 -1
- package/dist/chunks/{index-DadIEuQc.js → index-C2LLloqz.js} +2 -2
- package/dist/chunks/{index-DadIEuQc.js.map → index-C2LLloqz.js.map} +1 -1
- package/dist/chunks/index-CaMVTgh0.js +144 -0
- package/dist/chunks/index-CaMVTgh0.js.map +1 -0
- package/dist/chunks/{index-lrAXde76.js → index-CoUeJvsG.js} +2 -2
- package/dist/chunks/{index-lrAXde76.js.map → index-CoUeJvsG.js.map} +1 -1
- package/dist/chunks/{index-BR31cEYA.js → index-DSOoIVgQ.js} +2 -2
- package/dist/chunks/{index-BR31cEYA.js.map → index-DSOoIVgQ.js.map} +1 -1
- package/dist/chunks/{index-CZK3TwzR.js → index-DXgJitsr.js} +2 -2
- package/dist/chunks/{index-CZK3TwzR.js.map → index-DXgJitsr.js.map} +1 -1
- package/dist/chunks/{index-CEmsL1uT.js → index-DrFrsAJ-.js} +2 -2
- package/dist/chunks/{index-CEmsL1uT.js.map → index-DrFrsAJ-.js.map} +1 -1
- package/dist/chunks/index-QJhB8dCl.js +2137 -0
- package/dist/chunks/index-QJhB8dCl.js.map +1 -0
- package/dist/controls/ControlBar.d.ts +15 -1
- package/dist/controls/ControlBar.d.ts.map +1 -1
- package/dist/controls/SeekBar.d.ts +4 -0
- package/dist/controls/SeekBar.d.ts.map +1 -1
- package/dist/controls/SeekFeedback.d.ts +20 -0
- package/dist/controls/SeekFeedback.d.ts.map +1 -0
- package/dist/controls/SettingsMenu.d.ts +15 -1
- package/dist/controls/SettingsMenu.d.ts.map +1 -1
- package/dist/controls/Tooltip.d.ts +8 -0
- package/dist/controls/Tooltip.d.ts.map +1 -1
- package/dist/hls/SourceManager.d.ts +23 -0
- package/dist/hls/SourceManager.d.ts.map +1 -1
- package/dist/hope-player.js +1 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/types.d.ts +9 -0
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/keyboard/KeyboardController.d.ts +4 -0
- package/dist/keyboard/KeyboardController.d.ts.map +1 -1
- package/dist/plugins/pause-ad/PauseAd.d.ts +52 -0
- package/dist/plugins/pause-ad/PauseAd.d.ts.map +1 -0
- package/dist/plugins/pause-ad/index.d.ts +6 -0
- package/dist/plugins/pause-ad/index.d.ts.map +1 -0
- package/dist/plugins/pause-ad/loadGpt.d.ts +35 -0
- package/dist/plugins/pause-ad/loadGpt.d.ts.map +1 -0
- package/dist/screens/ErrorScreen.d.ts +11 -1
- package/dist/screens/ErrorScreen.d.ts.map +1 -1
- package/dist/subtitles/attachTracks.d.ts +17 -1
- package/dist/subtitles/attachTracks.d.ts.map +1 -1
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/index-BjmWoP4E.js +0 -1786
- package/dist/chunks/index-BjmWoP4E.js.map +0 -1
|
@@ -23,6 +23,13 @@ export declare class ControlBar {
|
|
|
23
23
|
private readonly playButton;
|
|
24
24
|
private readonly playIcon;
|
|
25
25
|
private readonly pipButton;
|
|
26
|
+
private readonly skipBack;
|
|
27
|
+
private readonly skipForward;
|
|
28
|
+
/** Etkin sarma süreleri (sn); null = buton gizli. */
|
|
29
|
+
private skipSeconds;
|
|
30
|
+
private seekingEnabled;
|
|
31
|
+
/** Sarma butonuyla sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
|
|
32
|
+
onSkip: ((delta: number) => void) | null;
|
|
26
33
|
private readonly fullscreenButton;
|
|
27
34
|
private readonly fullscreenIcon;
|
|
28
35
|
private readonly timeLabel;
|
|
@@ -45,6 +52,12 @@ export declare class ControlBar {
|
|
|
45
52
|
private updateLayout;
|
|
46
53
|
setFullscreenState(isFullscreen: boolean): void;
|
|
47
54
|
/** Dil sonradan değişince (`options.locale`/`labels`) statik (reaktif olarak yeniden render edilmeyen) etiketleri tazeler. */
|
|
55
|
+
/** Geri/ileri sarma butonları — `null` süre o butonu gizler. */
|
|
56
|
+
setSkipButtons(back: number | null, forward: number | null): void;
|
|
57
|
+
/** DAI reklam arasında seek kapalıyken sarma butonları da devre dışı. */
|
|
58
|
+
setSeekingEnabled(enabled: boolean): void;
|
|
59
|
+
private renderSkipButtons;
|
|
60
|
+
private skip;
|
|
48
61
|
refreshLabels(): void;
|
|
49
62
|
/** Reklam modu: seek bar, süre ve sağ grup gizlenir; oynat/duraklat + ses kalır. */
|
|
50
63
|
setAdMode(active: boolean): void;
|
|
@@ -57,11 +70,12 @@ export declare class ControlBar {
|
|
|
57
70
|
btn: HTMLButtonElement;
|
|
58
71
|
icon: HTMLElement;
|
|
59
72
|
};
|
|
60
|
-
/**
|
|
73
|
+
/** Süre etiketine tıklama: geçen süre ↔ kalan süre. */
|
|
61
74
|
private readonly onTimeClick;
|
|
62
75
|
toggleTimeMode(): void;
|
|
63
76
|
setShowRemaining(show: boolean): void;
|
|
64
77
|
getShowRemaining(): boolean;
|
|
78
|
+
/** Plugin'lerin (live-wall-clock vb.) kontrol çubuğuna buton olmayan bir element (ör. saat göstergesi) eklemesi için. */
|
|
65
79
|
addElement(el: HTMLElement): void;
|
|
66
80
|
private togglePlay;
|
|
67
81
|
private togglePip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,10 @@ export declare class SeekBar {
|
|
|
46
46
|
private readonly onPointerDown;
|
|
47
47
|
private readonly onPointerMove;
|
|
48
48
|
private readonly onPointerUp;
|
|
49
|
+
/** Odaktayken ←/→ sarma süresi (sn) — player'ın klavye kısayoluyla aynı (options.keyboardSeekStep). */
|
|
50
|
+
keyboardStep: number;
|
|
51
|
+
/** Odaktayken ok tuşuyla sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
|
|
52
|
+
onKeyboardSeek: ((delta: number) => void) | null;
|
|
49
53
|
private readonly onKeyDown;
|
|
50
54
|
private seekToRatio;
|
|
51
55
|
private readonly startLoop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeekBar.d.ts","sourceRoot":"","sources":["../../src/controls/SeekBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAChC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,qBAAa,OAAO;IAChB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAsB;IACtC,oIAAoI;IACpI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,KAAK,CAAuB;gBAExB,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB;IA0E9D,yGAAyG;IACzG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAMzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAyB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF,OAAO,CAAC,cAAc;IAItB,gKAAgK;IAChK,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkBvC,qEAAqE;IACrE,OAAO,CAAC,QAAQ;IAQhB,6FAA6F;IAC7F,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE;IA+B5D,aAAa,IAAI,IAAI;IAQrB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAO5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK1B;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"SeekBar.d.ts","sourceRoot":"","sources":["../../src/controls/SeekBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAChC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,qBAAa,OAAO;IAChB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAsB;IACtC,oIAAoI;IACpI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,KAAK,CAAuB;gBAExB,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB;IA0E9D,yGAAyG;IACzG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAMzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAyB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF,OAAO,CAAC,cAAc;IAItB,gKAAgK;IAChK,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkBvC,qEAAqE;IACrE,OAAO,CAAC,QAAQ;IAQhB,6FAA6F;IAC7F,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE;IA+B5D,aAAa,IAAI,IAAI;IAQrB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAO5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK1B;IAEF,uGAAuG;IACvG,YAAY,SAAK;IACjB,sFAAsF;IACtF,cAAc,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAExD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAaxB;IAEF,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAOxB;IAEF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMvB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAsCrB;IAEF,iGAAiG;IACjG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,cAAc;IASzD,YAAY,IAAI,IAAI;IAKpB,aAAa,IAAI,IAAI;IAIrB,OAAO,IAAI,IAAI;CAclB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HopeLocaleStrings } from '../i18n/types';
|
|
2
|
+
/**
|
|
3
|
+
* İleri/geri sarmada videonun sağında (ileri) ya da solunda (geri) beliren anlık bildirim.
|
|
4
|
+
* Sarma butonları ve klavye kısayolları tetikler; ard arda sarmalar toplanıp tek sayı olarak gösterilir.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SeekFeedback {
|
|
7
|
+
private readonly labels;
|
|
8
|
+
readonly el: HTMLDivElement;
|
|
9
|
+
private readonly valueEl;
|
|
10
|
+
private readonly unitEl;
|
|
11
|
+
private readonly liveEl;
|
|
12
|
+
private total;
|
|
13
|
+
private lastAt;
|
|
14
|
+
private hideTimer;
|
|
15
|
+
constructor(labels: HopeLocaleStrings);
|
|
16
|
+
/** `delta` saniye sarıldı (negatif = geri). */
|
|
17
|
+
show(delta: number): void;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SeekFeedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeekFeedback.d.ts","sourceRoot":"","sources":["../../src/controls/SeekFeedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUvD;;;GAGG;AACH,qBAAa,YAAY;IAST,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAA8C;gBAElC,MAAM,EAAE,iBAAiB;IAyBtD,+CAA+C;IAC/C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA2BzB,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -43,7 +43,6 @@ export interface SettingsToggleRow {
|
|
|
43
43
|
getValueLabel: () => string;
|
|
44
44
|
onToggle: () => void;
|
|
45
45
|
}
|
|
46
|
-
/** Ayarlar butonu + popup: ana liste (Hız/Kalite/Altyazı) → alt liste. */
|
|
47
46
|
export declare class SettingsMenu {
|
|
48
47
|
readonly el: HTMLDivElement;
|
|
49
48
|
private readonly button;
|
|
@@ -58,11 +57,16 @@ export declare class SettingsMenu {
|
|
|
58
57
|
private captionAppearance;
|
|
59
58
|
private qrResumeToggle;
|
|
60
59
|
private open;
|
|
60
|
+
/** Menü açılıp kapanınca — HopePlayerElement açıkken kontrolleri otomatik gizlemez. */
|
|
61
|
+
onOpenChange: ((open: boolean) => void) | null;
|
|
62
|
+
private readonly panelObserver;
|
|
61
63
|
private currentPanel;
|
|
62
64
|
private submenus;
|
|
63
65
|
constructor(video: HTMLVideoElement, playbackRates: number[], labels: HopeLocaleStrings);
|
|
64
66
|
setQualities(options: SettingsQualityOption[], activeLabel: string): void;
|
|
65
67
|
setCaptions(options: SettingsCaptionOption[], activeLabel: string): void;
|
|
68
|
+
/** Seçili altyazıyı dışarıdan günceller (ör. iOS native tam ekranda yapılan seçim) — seçenekler aynı kalır. */
|
|
69
|
+
setActiveCaption(label: string): void;
|
|
66
70
|
/** Altyazı AÇIKKEN "Altyazı" alt menüsüne eklenecek Boyut/Renk/Konum satırları — `null` kaldırır. */
|
|
67
71
|
setCaptionAppearance(appearance: SettingsCaptionAppearance | null): void;
|
|
68
72
|
/** Ana menüye tek aç/kapa satırı ekler (ör. QrResume). */
|
|
@@ -72,6 +76,16 @@ export declare class SettingsMenu {
|
|
|
72
76
|
unregisterSubmenu(key: string): void;
|
|
73
77
|
private toggle;
|
|
74
78
|
private openMenu;
|
|
79
|
+
get isOpen(): boolean;
|
|
80
|
+
/** Açıksa menü panelinin ekran dikdörtgeni (tooltip çakışma kontrolü için). */
|
|
81
|
+
get panelRect(): DOMRect | null;
|
|
82
|
+
/**
|
|
83
|
+
* Yön + yükseklik player'a göre: kompakt düzende (buton üst bardaysa) aşağı açılır; her iki yönde de
|
|
84
|
+
* yükseklik player içinde kalan alanla sınırlı — küçük player'da menü dışarı taşmaz, kendi içinde kayar.
|
|
85
|
+
*/
|
|
86
|
+
private readonly fitToPlayer;
|
|
87
|
+
/** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
|
|
88
|
+
closeMenu(): void;
|
|
75
89
|
private close;
|
|
76
90
|
private readonly onDocumentClick;
|
|
77
91
|
private row;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../src/controls/SettingsMenu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,uHAAuH;AACvH,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wGAAwG;AACxG,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,mBAAmB,EAAE,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,mBAAmB,EAAE,CAAC;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,mBAAmB,EAAE,CAAC;IACjD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACzC;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../src/controls/SettingsMenu.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,18 @@ export declare class TooltipController {
|
|
|
6
6
|
private showTimer;
|
|
7
7
|
private hideTimer;
|
|
8
8
|
private currentTarget;
|
|
9
|
+
private isOccluded;
|
|
9
10
|
/** Gösterim gecikmesi (SHOW_DELAY_MS) içinde bekleyen hedef — `currentTarget` yalnızca gerçekten gösterilince set ediliyor. */
|
|
10
11
|
private pendingTarget;
|
|
11
12
|
constructor(mountEl: HTMLElement);
|
|
12
13
|
destroy(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Tooltip'i örten bir katman (ör. açık ayarlar menüsü) varsa çakışan tooltip gösterilmez — menü kontrol katmanının
|
|
16
|
+
* (z-20) içinde olduğundan tooltip'i z-index ile menünün altına almak mümkün değil.
|
|
17
|
+
*/
|
|
18
|
+
setOcclusionCheck(check: ((rect: DOMRect) => boolean) | null): void;
|
|
19
|
+
/** Örten katman açıldı/kapandı — görünen tooltip artık çakışıyorsa gizle. */
|
|
20
|
+
recheckOcclusion(): void;
|
|
13
21
|
private matchTarget;
|
|
14
22
|
private readonly onMouseOver;
|
|
15
23
|
private readonly onMouseOut;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/controls/Tooltip.ts"],"names":[],"mappings":"AAgBA,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/controls/Tooltip.ts"],"names":[],"mappings":"AAgBA,qBAAa,iBAAiB;IAWd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,UAAU,CAA6C;IAC/D,+HAA+H;IAC/H,OAAO,CAAC,aAAa,CAA4B;gBAEpB,OAAO,EAAE,WAAW;IAyBjD,OAAO,IAAI,IAAI;IAWf;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI;IAKnE,6EAA6E;IAC7E,gBAAgB,IAAI,IAAI;IAIxB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CActB;IAEF,OAAO,CAAC,IAAI;IAkCZ,OAAO,CAAC,QAAQ;CAiBnB"}
|
|
@@ -7,12 +7,35 @@ export interface HlsQualityLevel {
|
|
|
7
7
|
height: number;
|
|
8
8
|
bitrate: number;
|
|
9
9
|
}
|
|
10
|
+
/** Hangi yoldan oynatılıyor — `reason` native'e neden düşüldüğünü açıklar (ör. CORS). */
|
|
11
|
+
export interface PlaybackEngineInfo {
|
|
12
|
+
engine: 'native' | 'native-hls' | 'hls.js';
|
|
13
|
+
reason?: 'apple-native' | 'no-mse' | 'hlsjs-failed';
|
|
14
|
+
}
|
|
10
15
|
export declare class SourceManager {
|
|
11
16
|
private hls;
|
|
12
17
|
private readonly video;
|
|
18
|
+
/** Son yüklenen kaynak — `reload()` (hata ekranındaki "Tekrar dene") için. */
|
|
19
|
+
private last;
|
|
20
|
+
/** Native HLS denemesi sürerken (ilk loadedmetadata'ya kadar) — başarısız olursa hls.js'e geçilir. */
|
|
21
|
+
private nativeHlsProbe;
|
|
22
|
+
private engineInfo;
|
|
13
23
|
private readonly onLevelsChanged;
|
|
14
24
|
constructor(video: HTMLVideoElement, onLevelsChanged: (levels: HlsQualityLevel[], activeIndex: number) => void);
|
|
15
25
|
load(src: string, type?: string): Promise<void>;
|
|
26
|
+
/** Şu anki oynatma yolu — docs demosu/entegratör teşhisi için (ör. CORS yüzünden native'e düşüldü mü). */
|
|
27
|
+
get engine(): PlaybackEngineInfo;
|
|
28
|
+
private loadNativeHls;
|
|
29
|
+
/** Native HLS denemesi sürüyor mu — ErrorScreen bu sırada gelen hatayı göstermez (hls.js'e geçilecek). */
|
|
30
|
+
isRecovering(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Bazı ortamlar canPlayType'a "maybe" deyip HLS'i native oynatamıyor (bazı Android tarayıcıları/WebView'lar).
|
|
33
|
+
* İlk metadata'dan önce kod 4 gelirse ve MSE varsa hls.js'e geç.
|
|
34
|
+
*/
|
|
35
|
+
private probeNativeHls;
|
|
36
|
+
private attachHlsJs;
|
|
37
|
+
/** Son kaynağı baştan yükler — hls.js ile oynayan kaynakta da çalışır (çıplak video.load() blob'u yeniden açamaz). */
|
|
38
|
+
reload(): Promise<void>;
|
|
16
39
|
/** -1 = otomatik kalite (ABR). */
|
|
17
40
|
setLevel(index: number): void;
|
|
18
41
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../src/hls/SourceManager.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../src/hls/SourceManager.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAOD,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,cAAc,CAAC;CACvD;AAiDD,qBAAa,aAAa;IACtB,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC,8EAA8E;IAC9E,OAAO,CAAC,IAAI,CAA+C;IAC3D,sGAAsG;IACtG,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,UAAU,CAA4C;IAE9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAGtB;gBAGN,KAAK,EAAE,gBAAgB,EACvB,eAAe,EAAE,CACb,MAAM,EAAE,eAAe,EAAE,EACzB,WAAW,EAAE,MAAM,KAClB,IAAI;IAMP,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrD,0GAA0G;IAC1G,IAAI,MAAM,IAAI,kBAAkB,CAE/B;IAED,OAAO,CAAC,aAAa;IAMrB,0GAA0G;IAC1G,YAAY,IAAI,OAAO;IAIvB;;;OAGG;IACH,OAAO,CAAC,cAAc;YAmBR,WAAW;IAgEzB,sHAAsH;IACtH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,OAAO,IAAI,IAAI;CAOlB"}
|
package/dist/hope-player.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,EAAE,EAAE,iBAkEhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,iHAAiH;AACjH,eAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,iHAAiH;AACjH,eAAO,MAAM,EAAE,EAAE,iBAkEhB,CAAC"}
|
package/dist/i18n/types.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export interface HopeLocaleStrings {
|
|
|
8
8
|
seekBar: string;
|
|
9
9
|
settings: string;
|
|
10
10
|
pip: string;
|
|
11
|
+
skipBack: (seconds: number) => string;
|
|
12
|
+
skipForward: (seconds: number) => string;
|
|
13
|
+
/** Sarma bildirimindeki saniye kısaltması ("+15 sn"). */
|
|
14
|
+
secondsShort: string;
|
|
11
15
|
fullscreenEnter: string;
|
|
12
16
|
fullscreenExit: string;
|
|
13
17
|
playbackSpeed: string;
|
|
@@ -33,6 +37,8 @@ export interface HopeLocaleStrings {
|
|
|
33
37
|
errorDecode: string;
|
|
34
38
|
errorSrcNotSupported: string;
|
|
35
39
|
errorGeneric: string;
|
|
40
|
+
/** Hata ekranındaki kod satırının öneki (ör. "Hata kodu 4"). */
|
|
41
|
+
errorCode: string;
|
|
36
42
|
countdownRemaining: string;
|
|
37
43
|
geoDefaultWarning: string;
|
|
38
44
|
geoUnknownCountry: string;
|
|
@@ -47,6 +53,9 @@ export interface HopeLocaleStrings {
|
|
|
47
53
|
qrResumeMenuLabel: string;
|
|
48
54
|
qrResumeOn: string;
|
|
49
55
|
qrResumeOff: string;
|
|
56
|
+
pauseAdLabel: string;
|
|
57
|
+
pauseAdClose: string;
|
|
58
|
+
pauseAdResume: string;
|
|
50
59
|
markerLearnMore: string;
|
|
51
60
|
markerContinue: string;
|
|
52
61
|
playlistTitle: string;
|
package/dist/i18n/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qIAAqI;IACrI,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,2FAA2F;AAC3F,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HopePlayerElement } from './HopePlayerElement';
|
|
2
2
|
export { HopePlayerElement };
|
|
3
|
-
export type {
|
|
3
|
+
export type { PlaybackEngineInfo } from './hls/SourceManager';
|
|
4
|
+
export type { HopeThemePreset, HopeLocale, HopeLocaleStrings, HopePlayerOptions, HopePlayerEventMap, AdsOptions, AdsRetryOptions, PrebidOptions, PrebidBreakOptions, PrebidBidderConfig, GestureOptions, LoopSectionOptions, InViewAutoplayOptions, StickyOptions, StickyCorner, PlayableItem, PlaylistOptions, PlaylistUiOptions, StoryOptions, StoryUiOptions, StoryGestureOptions, MarkerPopupOptions, MarkerPingOptions, MarkerAction, MarkerItem, MarkersOptions, SegmentItem, SpriteThumbnailsOptions, CountdownScreenOptions, GeoCheckerOptions, RedirectScreenSuggestion, RedirectScreenOptions, QrResumeOptions, PauseAdOptions, SkipButtonsOptions, DubbingTrack, DubbingOptions, LiveWallClockOptions, DaiOptions, LiveAdsOptions, } from './types';
|
|
4
5
|
export type { SettingsSubmenuDef, SettingsSubmenuItem } from './controls/SettingsMenu';
|
|
5
6
|
declare global {
|
|
6
7
|
interface HTMLElementTagNameMap {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,YAAY,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,iBAAiB,CAAC;KACpC;CACJ"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,iBAAiB,CAAC;KACpC;CACJ"}
|
|
@@ -3,6 +3,10 @@ export declare class KeyboardController {
|
|
|
3
3
|
private readonly host;
|
|
4
4
|
private readonly video;
|
|
5
5
|
private readonly toggleFullscreen;
|
|
6
|
+
/** ←/→ ve J/L ile sarma süresi (sn) — options.keyboardSeekStep. */
|
|
7
|
+
seekStep: number;
|
|
8
|
+
/** Klavyeyle sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
|
|
9
|
+
onSeek: ((delta: number) => void) | null;
|
|
6
10
|
constructor(host: HTMLElement, video: HTMLVideoElement, toggleFullscreen: () => void);
|
|
7
11
|
private readonly onKeyDown;
|
|
8
12
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardController.d.ts","sourceRoot":"","sources":["../../src/keyboard/KeyboardController.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;
|
|
1
|
+
{"version":3,"file":"KeyboardController.d.ts","sourceRoot":"","sources":["../../src/keyboard/KeyboardController.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,mEAAmE;IACnE,QAAQ,SAAK;IACb,0EAA0E;IAC1E,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;gBAEpC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,IAAI;IAOpF,OAAO,CAAC,QAAQ,CAAC,SAAS,CA8CxB;IAEF,OAAO,IAAI,IAAI;CAGlB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { PauseAdOptions } from '../../types';
|
|
2
|
+
import type { HopeLocaleStrings } from '../../i18n/types';
|
|
3
|
+
export interface PauseAdPlayerContext {
|
|
4
|
+
videoEl: HTMLVideoElement;
|
|
5
|
+
/** Light DOM sahibi (GPT reklam div'ini bulabilsin diye slot'lu div buraya eklenir) + hp:pausead olayları. */
|
|
6
|
+
hostEl: HTMLElement;
|
|
7
|
+
videoArea: HTMLElement;
|
|
8
|
+
i18n: HopeLocaleStrings;
|
|
9
|
+
/** IMA reklamı oynuyor ya da giriş ekranı (countdown/geo) açık — bu sırada gösterilmez. */
|
|
10
|
+
isBlocked(): boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Pause reklamı: video duraklatılınca Google display reklamı (GPT) istenir; dolarsa video sola animasyonla
|
|
14
|
+
* sıkışır (cover — dış kenarlar kırpılır), sağdan reklam paneli kayar. Boş dönerse hiçbir şey açılmaz.
|
|
15
|
+
* GPT reklamı document.getElementById ile bulur — Shadow DOM'u göremez; bu yüzden reklam div'i host'un light
|
|
16
|
+
* DOM çocuğu olarak oluşturulup paneldeki <slot>'a yansıtılır.
|
|
17
|
+
*/
|
|
18
|
+
export declare class PauseAd {
|
|
19
|
+
private readonly ctx;
|
|
20
|
+
private readonly options;
|
|
21
|
+
private readonly panel;
|
|
22
|
+
private readonly adHost;
|
|
23
|
+
private readonly labelEl;
|
|
24
|
+
private readonly closeBtn;
|
|
25
|
+
private readonly resumeBtn;
|
|
26
|
+
private readonly divId;
|
|
27
|
+
private googletag;
|
|
28
|
+
private slot;
|
|
29
|
+
private slotSizesKey;
|
|
30
|
+
private lastFetchAt;
|
|
31
|
+
private lastFilled;
|
|
32
|
+
private waitingForRender;
|
|
33
|
+
private delayTimer;
|
|
34
|
+
private coverTimer;
|
|
35
|
+
private open;
|
|
36
|
+
private destroyed;
|
|
37
|
+
constructor(ctx: PauseAdPlayerContext, options: PauseAdOptions);
|
|
38
|
+
refreshLabels(): void;
|
|
39
|
+
destroy(): void;
|
|
40
|
+
private readonly onPause;
|
|
41
|
+
private readonly onPlay;
|
|
42
|
+
/** Alana sığan reklam boyutları (genişlik oranı + dikey alan) — hiçbiri sığmazsa gösterilmez. */
|
|
43
|
+
private fittingSizes;
|
|
44
|
+
private request;
|
|
45
|
+
private readonly onRenderEnded;
|
|
46
|
+
private show;
|
|
47
|
+
private hide;
|
|
48
|
+
/** Video ve kontrolleri panel genişliği kadar sola sıkıştırır (tailwind.css `.video-area[data-pause-ad]`). */
|
|
49
|
+
private setShift;
|
|
50
|
+
private emit;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=PauseAd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PauseAd.d.ts","sourceRoot":"","sources":["../../../src/plugins/pause-ad/PauseAd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,8GAA8G;IAC9G,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,2FAA2F;IAC3F,SAAS,IAAI,OAAO,CAAC;CACxB;AAgBD;;;;;GAKG;AACH,qBAAa,OAAO;IAmBZ,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnB5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,SAAS,CAAS;gBAGL,GAAG,EAAE,oBAAoB,EACzB,OAAO,EAAE,cAAc;IAmD5C,aAAa,IAAI,IAAI;IAMrB,OAAO,IAAI,IAAI;IAiBf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGtB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAIrB;IAIF,iGAAiG;IACjG,OAAO,CAAC,YAAY;YAQN,OAAO;IAgDrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAa5B;IAEF,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,IAAI;IASZ,8GAA8G;IAC9G,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,IAAI;CAGf"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PauseAd, type PauseAdPlayerContext } from './PauseAd';
|
|
2
|
+
import type { PauseAdOptions } from '../../types';
|
|
3
|
+
export declare function installPauseAd(ctx: PauseAdPlayerContext, options: PauseAdOptions): PauseAd;
|
|
4
|
+
export { PauseAd };
|
|
5
|
+
export type { PauseAdPlayerContext };
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/pause-ad/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAE1F;AAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Google Publisher Tag (GPT) için kullanılan minimal yüzey. */
|
|
2
|
+
export interface GptSlot {
|
|
3
|
+
addService(service: unknown): GptSlot;
|
|
4
|
+
setTargeting(key: string, value: string | string[]): GptSlot;
|
|
5
|
+
getSlotElementId(): string;
|
|
6
|
+
}
|
|
7
|
+
export interface GptSlotRenderEndedEvent {
|
|
8
|
+
slot: GptSlot;
|
|
9
|
+
isEmpty: boolean;
|
|
10
|
+
size: [number, number] | number[] | null;
|
|
11
|
+
}
|
|
12
|
+
export interface GptPubAds {
|
|
13
|
+
addEventListener(type: 'slotRenderEnded', listener: (e: GptSlotRenderEndedEvent) => void): void;
|
|
14
|
+
removeEventListener?(type: 'slotRenderEnded', listener: (e: GptSlotRenderEndedEvent) => void): void;
|
|
15
|
+
refresh(slots: GptSlot[]): void;
|
|
16
|
+
isInitialLoadDisabled(): boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface GoogleTag {
|
|
19
|
+
cmd: Array<() => void> | {
|
|
20
|
+
push(fn: () => void): void;
|
|
21
|
+
};
|
|
22
|
+
defineSlot(adUnitPath: string, sizes: Array<[number, number]>, divId: string): GptSlot | null;
|
|
23
|
+
pubads(): GptPubAds;
|
|
24
|
+
enableServices(): void;
|
|
25
|
+
display(divId: string): void;
|
|
26
|
+
destroySlots(slots?: GptSlot[]): boolean;
|
|
27
|
+
}
|
|
28
|
+
declare global {
|
|
29
|
+
interface Window {
|
|
30
|
+
googletag?: GoogleTag;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** GPT'yi bir kez yükler; sayfada zaten varsa onu kullanır. Komutlar googletag.cmd kuyruğuyla çalışır. */
|
|
34
|
+
export declare function loadGpt(): Promise<GoogleTag>;
|
|
35
|
+
//# sourceMappingURL=loadGpt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadGpt.d.ts","sourceRoot":"","sources":["../../../src/plugins/pause-ad/loadGpt.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAC7D,gBAAgB,IAAI,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACtB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAC;IAChG,mBAAmB,CAAC,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,qBAAqB,IAAI,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACtB,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IACxD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9F,MAAM,IAAI,SAAS,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CAC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,CAAC,EAAE,SAAS,CAAC;KACzB;CACJ;AAKD,0GAA0G;AAC1G,wBAAgB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAmB5C"}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import type { HopeLocaleStrings } from '../i18n/types';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Video 'error' olayında görünen minimal hata ekranı (stiller tailwind.css `.hp-error-*`).
|
|
4
|
+
* Video alanına chrome'un (z-20) üstünde monte edilir — merkez play butonu ve kontroller üstüne binmesin.
|
|
5
|
+
*/
|
|
3
6
|
export declare class ErrorScreen {
|
|
4
7
|
readonly el: HTMLDivElement;
|
|
5
8
|
private readonly video;
|
|
6
9
|
private readonly labels;
|
|
7
10
|
private readonly messageEl;
|
|
11
|
+
private readonly codeEl;
|
|
8
12
|
private readonly retryBtn;
|
|
13
|
+
private readonly retryText;
|
|
9
14
|
private onRetry;
|
|
15
|
+
private shouldShow;
|
|
10
16
|
constructor(video: HTMLVideoElement, labels: HopeLocaleStrings);
|
|
11
17
|
setOnRetry(fn: () => void): void;
|
|
18
|
+
/** false dönerse hata gösterilmez (ör. SourceManager native HLS'ten hls.js'e geçerken). */
|
|
19
|
+
setShouldShow(fn: () => boolean): void;
|
|
20
|
+
get visible(): boolean;
|
|
12
21
|
refreshLabels(): void;
|
|
13
22
|
private readonly show;
|
|
23
|
+
private render;
|
|
14
24
|
private hide;
|
|
15
25
|
destroy(): void;
|
|
16
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../src/screens/ErrorScreen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../src/screens/ErrorScreen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMvD;;;GAGG;AACH,qBAAa,WAAW;IACpB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAA6B;gBAEnC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB;IA0C9D,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIhC,2FAA2F;IAC3F,aAAa,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI;IAItC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,aAAa,IAAI,IAAI;IAKrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAOnB;IAEF,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,IAAI;IAIZ,OAAO,IAAI,IAAI;CAGlB"}
|
|
@@ -3,8 +3,24 @@ export interface AttachedTrack {
|
|
|
3
3
|
label: string;
|
|
4
4
|
track: TextTrack;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
interface ParsedCue {
|
|
7
|
+
start: number;
|
|
8
|
+
end: number;
|
|
9
|
+
settings: string;
|
|
10
|
+
text: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Altyazıları <track> elementi yerine VTT'yi kendimiz indirip addTextTrack + VTTCue ile ekliyoruz.
|
|
14
|
+
* iOS WebKit <track>'leri "out-of-band" iz olarak AVFoundation'a veriyor ve bu, geçerli bir VTT'de bile
|
|
15
|
+
* videonun tamamını MEDIA_ERR_SRC_NOT_SUPPORTED (kod 4) ile düşürebiliyor. Mode 'hidden' — cue'lar akar
|
|
16
|
+
* ama tarayıcı çizmez (CaptionRenderer çizer).
|
|
17
|
+
*/
|
|
7
18
|
export declare function attachSubtitleTracks(video: HTMLVideoElement, subtitles: HopeSubtitleOption[]): AttachedTrack[];
|
|
19
|
+
/** Tüm havuz izlerini kapatıp boşaltır (altyazısız kaynağa geçiş). */
|
|
20
|
+
export declare function clearSubtitleTracks(video: HTMLVideoElement): void;
|
|
8
21
|
/** Yalnızca seçilen track'i 'hidden' yapar, diğerlerini kapatır (null = hepsini kapat). */
|
|
9
22
|
export declare function selectSubtitleTrack(tracks: AttachedTrack[], label: string | null): TextTrack | null;
|
|
23
|
+
/** WebVTT gövdesinden cue'ları çıkarır — NOTE/STYLE/REGION blokları zamanlama satırı içermediği için atlanır. */
|
|
24
|
+
export declare function parseVttCues(text: string): ParsedCue[];
|
|
25
|
+
export {};
|
|
10
26
|
//# sourceMappingURL=attachTracks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachTracks.d.ts","sourceRoot":"","sources":["../../src/subtitles/attachTracks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,
|
|
1
|
+
{"version":3,"file":"attachTracks.d.ts","sourceRoot":"","sources":["../../src/subtitles/attachTracks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,UAAU,SAAS;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,CAoB9G;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAQjE;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAQnG;AA8BD,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CActD"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -331,6 +331,32 @@ export interface RedirectScreenOptions {
|
|
|
331
331
|
url: string;
|
|
332
332
|
suggestions?: RedirectScreenSuggestion[];
|
|
333
333
|
}
|
|
334
|
+
export interface SkipButtonsOptions {
|
|
335
|
+
/** Geri sarma süresi (sn); `false` geri butonunu gizler. Varsayılan 10. */
|
|
336
|
+
back?: number | false;
|
|
337
|
+
/** İleri sarma süresi (sn); `false` ileri butonunu gizler. Varsayılan 10. */
|
|
338
|
+
forward?: number | false;
|
|
339
|
+
}
|
|
340
|
+
export interface PauseAdOptions {
|
|
341
|
+
/** GAM reklam birimi yolu, ör. '/6355419/Travel/Europe/France/Paris'. */
|
|
342
|
+
adUnitPath: string;
|
|
343
|
+
/** İstenecek display boyutları — yalnızca alana sığanlar istenir. Varsayılan [[300,250],[336,280],[250,250],[200,200]]. */
|
|
344
|
+
sizes?: Array<[number, number]>;
|
|
345
|
+
/** Slot düzeyinde key-value hedefleme. */
|
|
346
|
+
targeting?: Record<string, string | string[]>;
|
|
347
|
+
/** Duraklatmadan kaç ms sonra istek atılsın (seek/kısa duraklatmalarda boşuna istek atmamak için). Varsayılan 300. */
|
|
348
|
+
delayMs?: number;
|
|
349
|
+
/** Aynı reklam bu süre (sn) içinde tekrar duraklatılırsa yeni istek atmadan yeniden gösterilir. Varsayılan 30. */
|
|
350
|
+
refreshIntervalSec?: number;
|
|
351
|
+
/** Video alanı bu genişlikten (px) darsa reklam istenmez. Varsayılan 640. */
|
|
352
|
+
minPlayerWidth?: number;
|
|
353
|
+
/** Reklam paneli video alanının en fazla bu oranını kaplar. Varsayılan 0.5. */
|
|
354
|
+
maxWidthRatio?: number;
|
|
355
|
+
/** Panel başlığı — verilmezse dil dosyasındaki "Sponsorlu". */
|
|
356
|
+
label?: string;
|
|
357
|
+
/** Panelin altındaki "Videoya devam et" butonu. Varsayılan true. */
|
|
358
|
+
showResumeButton?: boolean;
|
|
359
|
+
}
|
|
334
360
|
export interface QrResumeOptions {
|
|
335
361
|
/** QR'nin ortasına yerleştirilecek logo görseli (PNG/SVG URL) — verilmezse düz QR kod. */
|
|
336
362
|
logo?: string;
|
|
@@ -379,10 +405,19 @@ export interface HopePlayerOptions {
|
|
|
379
405
|
playbackRates?: number[];
|
|
380
406
|
/** Fare video üzerinden ayrılınca kontrol çubuğunun/merkez play butonunun kaybolmadan önce beklediği süre (ms). Varsayılan 1200. */
|
|
381
407
|
autoHideDelayMs?: number;
|
|
408
|
+
/**
|
|
409
|
+
* Sayfa açılınca ne kadarının önceden yükleneceği (HTML `preload`). Varsayılan `'metadata'`:
|
|
410
|
+
* yalnızca süre/boyut bilgisi — veri harcamaz, süre ve ilk kare hazır olur.
|
|
411
|
+
*/
|
|
412
|
+
preload?: 'none' | 'metadata' | 'auto';
|
|
382
413
|
/** Kontroller gizliyken videonun en altında kenardan kenara 1px ilerleme çizgisi. Varsayılan false. */
|
|
383
414
|
miniProgress?: boolean;
|
|
384
415
|
/** Süre göstergesinde kalan süreyi (-0:10 / 0:15) gösterme. Varsayılan false (geçen süre). */
|
|
385
416
|
showRemainingTime?: boolean;
|
|
417
|
+
/** Oynat butonunun yanında geri/ileri sarma butonları. `true` = 10 sn geri + 10 sn ileri. Varsayılan kapalı. */
|
|
418
|
+
skipButtons?: boolean | SkipButtonsOptions;
|
|
419
|
+
/** ←/→ ve J/L klavye kısayollarıyla kaç saniye sarılır. Varsayılan 5. */
|
|
420
|
+
keyboardSeekStep?: number;
|
|
386
421
|
/**
|
|
387
422
|
* UI dili — hazır gelen `'tr'` (varsayılan) / `'en'`, ya da herhangi bir
|
|
388
423
|
* string (yalnızca `labels` ile TAM override veriliyorsa). Kontrol
|
|
@@ -423,6 +458,8 @@ export interface HopePlayerOptions {
|
|
|
423
458
|
redirectScreen?: RedirectScreenOptions;
|
|
424
459
|
/** Yeterince izlenmiş bir noktada duraklatılınca "telefonundan devam et" QR kodu. */
|
|
425
460
|
qrResume?: QrResumeOptions;
|
|
461
|
+
/** Duraklatınca video sola sıkışır, sağda Google display (GPT) reklamı gösterilir. */
|
|
462
|
+
pauseAd?: PauseAdOptions;
|
|
426
463
|
/** Ayarlar menüsüne "Ses/Dil" alt menüsü ekler — seçim TÜM kaynağı değiştirir (ayrı dublaj dosyaları). */
|
|
427
464
|
dubbing?: DubbingOptions;
|
|
428
465
|
/** Canlı yayında kontrol çubuğunda duvar saati + seekbar hover tooltip'inde "ne zaman izleniyor / canlıdan ne kadar geride". */
|
|
@@ -476,5 +513,10 @@ export type HopePlayerEventMap = {
|
|
|
476
513
|
sticky: boolean;
|
|
477
514
|
corner?: StickyCorner;
|
|
478
515
|
}>;
|
|
516
|
+
'hp:pausead': CustomEvent<{
|
|
517
|
+
state: 'shown' | 'hidden' | 'empty';
|
|
518
|
+
size?: [number, number];
|
|
519
|
+
reason?: 'closed' | 'resumed';
|
|
520
|
+
}>;
|
|
479
521
|
};
|
|
480
522
|
//# sourceMappingURL=index.d.ts.map
|