@hopeplayer/core 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/HopePlayerElement.d.ts +42 -2
  2. package/dist/HopePlayerElement.d.ts.map +1 -1
  3. package/dist/chunks/NativeEme-CXosVcw8.js +80 -0
  4. package/dist/chunks/NativeEme-CXosVcw8.js.map +1 -0
  5. package/dist/chunks/{accessibility-DeUIoAda.js → accessibility-DFx4CE0H.js} +9 -8
  6. package/dist/chunks/{accessibility-DeUIoAda.js.map → accessibility-DFx4CE0H.js.map} +1 -1
  7. package/dist/chunks/adTriggers-BIAWe8o4.js +419 -0
  8. package/dist/chunks/adTriggers-BIAWe8o4.js.map +1 -0
  9. package/dist/chunks/{ads-CdWbE9aD.js → ads-DlpHPpR9.js} +3 -3
  10. package/dist/chunks/ads-DlpHPpR9.js.map +1 -0
  11. package/dist/chunks/analytics-DEjTAJO9.js +281 -0
  12. package/dist/chunks/analytics-DEjTAJO9.js.map +1 -0
  13. package/dist/chunks/{cast-BQ-suTcF.js → cast-vHyi7oV_.js} +2 -2
  14. package/dist/chunks/{cast-BQ-suTcF.js.map → cast-vHyi7oV_.js.map} +1 -1
  15. package/dist/chunks/dash-CWjy-y7B.js +22 -0
  16. package/dist/chunks/dash-CWjy-y7B.js.map +1 -0
  17. package/dist/chunks/docPip-wybMVP1H.js +82 -0
  18. package/dist/chunks/docPip-wybMVP1H.js.map +1 -0
  19. package/dist/chunks/heatmap-Bb7neaYU.js +92 -0
  20. package/dist/chunks/heatmap-Bb7neaYU.js.map +1 -0
  21. package/dist/chunks/{history-DAbqEhNB.js → history-CwqLXiZi.js} +2 -2
  22. package/dist/chunks/{history-DAbqEhNB.js.map → history-CwqLXiZi.js.map} +1 -1
  23. package/dist/chunks/interactive-CgltIneu.js +189 -0
  24. package/dist/chunks/interactive-CgltIneu.js.map +1 -0
  25. package/dist/chunks/keySystems-CNzjRq6e.js +70 -0
  26. package/dist/chunks/keySystems-CNzjRq6e.js.map +1 -0
  27. package/dist/chunks/{loopSection-CvF4l5uf.js → loopSection-Bwk4W8vz.js} +16 -16
  28. package/dist/chunks/loopSection-Bwk4W8vz.js.map +1 -0
  29. package/dist/chunks/{markers-B04NMI79.js → markers-L69W3kj6.js} +53 -51
  30. package/dist/chunks/markers-L69W3kj6.js.map +1 -0
  31. package/dist/chunks/player-D2_HRzot.js +4351 -0
  32. package/dist/chunks/player-D2_HRzot.js.map +1 -0
  33. package/dist/chunks/{playlist-C6Mh9BE8.js → playlist-CHfStNbQ.js} +29 -21
  34. package/dist/chunks/playlist-CHfStNbQ.js.map +1 -0
  35. package/dist/chunks/plugin-style-CPJELe-i.js +17 -0
  36. package/dist/chunks/plugin-style-CPJELe-i.js.map +1 -0
  37. package/dist/chunks/pluginHost-cN2uGFeG.js +566 -0
  38. package/dist/chunks/pluginHost-cN2uGFeG.js.map +1 -0
  39. package/dist/chunks/redirectScreen-TIqLdvBY.js +239 -0
  40. package/dist/chunks/redirectScreen-TIqLdvBY.js.map +1 -0
  41. package/dist/chunks/{rewardedUnlock-CGhQyWOk.js → rewardedUnlock-DUqYwXTr.js} +2 -2
  42. package/dist/chunks/{rewardedUnlock-CGhQyWOk.js.map → rewardedUnlock-DUqYwXTr.js.map} +1 -1
  43. package/dist/chunks/segments-Ds-c1b5e.js +66 -0
  44. package/dist/chunks/segments-Ds-c1b5e.js.map +1 -0
  45. package/dist/chunks/{skipSegments-BbWzPpXz.js → skipSegments-ByNoF1qZ.js} +2 -2
  46. package/dist/chunks/{skipSegments-BbWzPpXz.js.map → skipSegments-ByNoF1qZ.js.map} +1 -1
  47. package/dist/chunks/{spriteThumbnails-B7oDZFTo.js → spriteThumbnails-Cr9UmkM9.js} +74 -51
  48. package/dist/chunks/spriteThumbnails-Cr9UmkM9.js.map +1 -0
  49. package/dist/chunks/{statsPanel-DSClIwA3.js → statsPanel-D0DtoFgS.js} +2 -2
  50. package/dist/chunks/statsPanel-D0DtoFgS.js.map +1 -0
  51. package/dist/chunks/{sticky-D_eLCNFk.js → sticky-BDStzjBM.js} +27 -26
  52. package/dist/chunks/sticky-BDStzjBM.js.map +1 -0
  53. package/dist/chunks/{story-BLBij82f.js → story-CodA2dfn.js} +2 -2
  54. package/dist/chunks/{story-BLBij82f.js.map → story-CodA2dfn.js.map} +1 -1
  55. package/dist/chunks/transcript-LG7E9UYE.js +186 -0
  56. package/dist/chunks/transcript-LG7E9UYE.js.map +1 -0
  57. package/dist/controls/ContextMenu.d.ts +1 -0
  58. package/dist/controls/ContextMenu.d.ts.map +1 -1
  59. package/dist/controls/ControlBar.d.ts +6 -0
  60. package/dist/controls/ControlBar.d.ts.map +1 -1
  61. package/dist/controls/SeekBar.d.ts +5 -2
  62. package/dist/controls/SeekBar.d.ts.map +1 -1
  63. package/dist/controls/SettingsMenu.d.ts +2 -1
  64. package/dist/controls/SettingsMenu.d.ts.map +1 -1
  65. package/dist/drm/NativeEme.d.ts +23 -0
  66. package/dist/drm/NativeEme.d.ts.map +1 -0
  67. package/dist/drm/keySystems.d.ts +18 -0
  68. package/dist/drm/keySystems.d.ts.map +1 -0
  69. package/dist/hls/SourceManager.d.ts +31 -5
  70. package/dist/hls/SourceManager.d.ts.map +1 -1
  71. package/dist/hls/dashEngine.d.ts +85 -0
  72. package/dist/hls/dashEngine.d.ts.map +1 -0
  73. package/dist/hls/sourceGroups.d.ts.map +1 -1
  74. package/dist/hope-player.js +1 -1
  75. package/dist/i18n/locales/en.d.ts.map +1 -1
  76. package/dist/i18n/locales/tr.d.ts.map +1 -1
  77. package/dist/i18n/types.d.ts +28 -0
  78. package/dist/i18n/types.d.ts.map +1 -1
  79. package/dist/index.d.ts +2 -2
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/keyboard/KeyboardController.d.ts +14 -0
  82. package/dist/keyboard/KeyboardController.d.ts.map +1 -1
  83. package/dist/plugin-api/PluginAds.d.ts +61 -0
  84. package/dist/plugin-api/PluginAds.d.ts.map +1 -0
  85. package/dist/plugin-api/PluginHost.d.ts +6 -0
  86. package/dist/plugin-api/PluginHost.d.ts.map +1 -1
  87. package/dist/plugin-api/types.d.ts +39 -0
  88. package/dist/plugin-api/types.d.ts.map +1 -1
  89. package/dist/plugins/accessibility/Accessibility.d.ts.map +1 -1
  90. package/dist/plugins/ad-triggers/AdTriggers.d.ts +5 -0
  91. package/dist/plugins/ad-triggers/AdTriggers.d.ts.map +1 -1
  92. package/dist/plugins/ads/AdsController.d.ts +2 -0
  93. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  94. package/dist/plugins/analytics/QoeTracker.d.ts +71 -0
  95. package/dist/plugins/analytics/QoeTracker.d.ts.map +1 -0
  96. package/dist/plugins/analytics/index.d.ts +6 -0
  97. package/dist/plugins/analytics/index.d.ts.map +1 -0
  98. package/dist/plugins/doc-pip/DocumentPip.d.ts +44 -0
  99. package/dist/plugins/doc-pip/DocumentPip.d.ts.map +1 -0
  100. package/dist/plugins/doc-pip/index.d.ts +5 -0
  101. package/dist/plugins/doc-pip/index.d.ts.map +1 -0
  102. package/dist/plugins/heatmap/Heatmap.d.ts +36 -0
  103. package/dist/plugins/heatmap/Heatmap.d.ts.map +1 -0
  104. package/dist/plugins/heatmap/index.d.ts +6 -0
  105. package/dist/plugins/heatmap/index.d.ts.map +1 -0
  106. package/dist/plugins/interactive/Interactive.d.ts +45 -0
  107. package/dist/plugins/interactive/Interactive.d.ts.map +1 -0
  108. package/dist/plugins/interactive/index.d.ts +6 -0
  109. package/dist/plugins/interactive/index.d.ts.map +1 -0
  110. package/dist/plugins/markers/MarkProgress.d.ts +3 -1
  111. package/dist/plugins/markers/MarkProgress.d.ts.map +1 -1
  112. package/dist/plugins/playlist/PlaylistRunner.d.ts +2 -0
  113. package/dist/plugins/playlist/PlaylistRunner.d.ts.map +1 -1
  114. package/dist/plugins/redirect-screen/RedirectScreen.d.ts +3 -1
  115. package/dist/plugins/redirect-screen/RedirectScreen.d.ts.map +1 -1
  116. package/dist/plugins/segments/Segments.d.ts +1 -0
  117. package/dist/plugins/segments/Segments.d.ts.map +1 -1
  118. package/dist/plugins/sprite-thumbnails/SpriteThumbnails.d.ts +9 -0
  119. package/dist/plugins/sprite-thumbnails/SpriteThumbnails.d.ts.map +1 -1
  120. package/dist/plugins/sticky/StickyManager.d.ts +2 -0
  121. package/dist/plugins/sticky/StickyManager.d.ts.map +1 -1
  122. package/dist/plugins/transcript/Transcript.d.ts +65 -0
  123. package/dist/plugins/transcript/Transcript.d.ts.map +1 -0
  124. package/dist/plugins/transcript/index.d.ts +6 -0
  125. package/dist/plugins/transcript/index.d.ts.map +1 -0
  126. package/dist/screens/ErrorScreen.d.ts +1 -1
  127. package/dist/screens/ErrorScreen.d.ts.map +1 -1
  128. package/dist/subtitles/attachTracks.d.ts +6 -0
  129. package/dist/subtitles/attachTracks.d.ts.map +1 -1
  130. package/dist/types/index.d.ts +320 -16
  131. package/dist/types/index.d.ts.map +1 -1
  132. package/dist/utils/plugin-style.d.ts +5 -0
  133. package/dist/utils/plugin-style.d.ts.map +1 -0
  134. package/package.json +2 -1
  135. package/dist/chunks/adTriggers-DXmtF4t2.js +0 -410
  136. package/dist/chunks/adTriggers-DXmtF4t2.js.map +0 -1
  137. package/dist/chunks/ads-CdWbE9aD.js.map +0 -1
  138. package/dist/chunks/loopSection-CvF4l5uf.js.map +0 -1
  139. package/dist/chunks/markers-B04NMI79.js.map +0 -1
  140. package/dist/chunks/player-D7WQxMzr.js +0 -3894
  141. package/dist/chunks/player-D7WQxMzr.js.map +0 -1
  142. package/dist/chunks/playlist-C6Mh9BE8.js.map +0 -1
  143. package/dist/chunks/pluginHost-DjvLmMYZ.js +0 -376
  144. package/dist/chunks/pluginHost-DjvLmMYZ.js.map +0 -1
  145. package/dist/chunks/redirectScreen-5HAVRtxe.js +0 -208
  146. package/dist/chunks/redirectScreen-5HAVRtxe.js.map +0 -1
  147. package/dist/chunks/segments-gCPrWRig.js +0 -63
  148. package/dist/chunks/segments-gCPrWRig.js.map +0 -1
  149. package/dist/chunks/spriteThumbnails-B7oDZFTo.js.map +0 -1
  150. package/dist/chunks/statsPanel-DSClIwA3.js.map +0 -1
  151. package/dist/chunks/sticky-D_eLCNFk.js.map +0 -1
@@ -0,0 +1,186 @@
1
+ var d = Object.defineProperty;
2
+ var u = (p, t, s) => t in p ? d(p, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : p[t] = s;
3
+ var r = (p, t, s) => u(p, typeof t != "symbol" ? t + "" : t, s);
4
+ import { c as m, t as x, f } from "./player-D2_HRzot.js";
5
+ import { a as b } from "./plugin-style-CPJELe-i.js";
6
+ const v = ".hp-transcript{position:absolute;top:12px;bottom:76px;z-index:24;display:flex;flex-direction:column;width:min(340px,45%);overflow:hidden;border:1px solid var(--hp-panel-border);border-radius:12px;background:var(--hp-panel-bg);backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);color:var(--hp-panel-text);box-shadow:0 8px 28px #00000059;font:13px/1.45 system-ui,-apple-system,sans-serif;transition:bottom .2s ease}.hp-transcript[hidden],.hp-transcript[data-ad],.hp-transcript [hidden]{display:none}.hp-transcript[data-position=right]{right:12px}.hp-transcript[data-position=left]{left:12px}.video-area[data-chrome-hidden] .hp-transcript{bottom:12px}.video-area[data-compact] .hp-transcript{top:8px;bottom:56px;left:8px;right:8px;width:auto}.video-area[data-compact][data-chrome-hidden] .hp-transcript{bottom:8px}.hp-transcript-head{display:flex;align-items:center;gap:8px;padding:10px 10px 6px 14px}.hp-transcript-title{flex:1;font-weight:600;font-size:14px}.hp-transcript-select,.hp-transcript-search{border:1px solid var(--hp-panel-border);border-radius:8px;background:color-mix(in srgb,var(--hp-panel-text) 8%,transparent);color:inherit;font:inherit}.hp-transcript-select{max-width:45%;padding:3px 6px;font-size:12px}.hp-transcript-select option{color:#000}.hp-transcript-close{display:grid;place-items:center;flex:none;width:26px;height:26px;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;font-size:13px;cursor:pointer}.hp-transcript-close:hover{background:color-mix(in srgb,var(--hp-panel-text) 14%,transparent)}.hp-transcript-search{margin:0 10px 8px;padding:6px 10px;outline:none}.hp-transcript-search:focus-visible,.hp-transcript-select:focus-visible,.hp-transcript-close:focus-visible,.hp-transcript-line button:focus-visible{outline:2px solid var(--hp-panel-text);outline-offset:-2px}.hp-transcript-list{position:relative;flex:1;margin:0;padding:0 6px 8px;overflow-y:auto;overscroll-behavior:contain;list-style:none}.hp-transcript-line button{display:flex;gap:10px;width:100%;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.hp-transcript-line button:hover{background:color-mix(in srgb,var(--hp-panel-text) 10%,transparent)}.hp-transcript-line[data-active] button{background:color-mix(in srgb,var(--hp-panel-text) 16%,transparent);font-weight:500}.hp-transcript-time{flex:none;min-width:3.2em;padding-top:1px;color:var(--hp-panel-text-muted, var(--hp-panel-text));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.hp-transcript-text mark{border-radius:3px;background:color-mix(in srgb,var(--hp-panel-text) 24%,transparent);color:inherit}.hp-transcript-status{margin:0;padding:4px 14px 14px;opacity:.7;font-size:12px}.hp-transcript-btn[aria-pressed=true]{color:var(--hp-color-accent, #fff)}@media(prefers-reduced-motion:reduce){.hp-transcript{transition:none}}", g = { "&amp;": "&", "&lt;": "<", "&gt;": ">", "&nbsp;": " ", "&quot;": '"', "&#39;": "'" };
7
+ function E(p) {
8
+ return p.replace(/<[^>]*>/g, "").replace(/&(amp|lt|gt|nbsp|quot|#39);/g, (t) => g[t] ?? t).replace(/\s+/g, " ").trim();
9
+ }
10
+ function h(p) {
11
+ return p.toLocaleLowerCase("tr").normalize("NFD").replace(/[̀-ͯ]/g, "");
12
+ }
13
+ class k {
14
+ constructor(t, s) {
15
+ r(this, "panel");
16
+ r(this, "list");
17
+ r(this, "status");
18
+ r(this, "select");
19
+ r(this, "search", null);
20
+ r(this, "titleEl");
21
+ r(this, "closeBtn");
22
+ r(this, "button", null);
23
+ r(this, "lines", []);
24
+ r(this, "activeIndex", -1);
25
+ r(this, "sourceLabel", null);
26
+ r(this, "sourceTrack", null);
27
+ r(this, "cueCount", -1);
28
+ r(this, "query", "");
29
+ r(this, "open", !1);
30
+ r(this, "userScrollUntil", 0);
31
+ r(this, "lastSync", 0);
32
+ r(this, "autoScroll");
33
+ /** Altyazı listesi / seçimi değişti — kaynak iz yeniden seçilir. */
34
+ r(this, "onTracksChanged", () => {
35
+ const t = this.ctx.getTracks(), s = this.select.value;
36
+ this.select.replaceChildren(
37
+ ...t.map((c) => {
38
+ const l = document.createElement("option");
39
+ return l.value = l.textContent = c.label, l;
40
+ })
41
+ ), this.select.hidden = t.length < 2;
42
+ const e = this.options.track, n = e ? t.find((c) => c.label === e || c.track.language === e) : void 0, i = this.sourceLabel ? t.find((c) => c.label === this.sourceLabel) : void 0, a = this.ctx.activeLabel(), o = i ?? (a ? t.find((c) => c.label === a) : void 0) ?? n ?? t[0];
43
+ o && (this.select.value = o.label), (o == null ? void 0 : o.track) !== this.sourceTrack || s !== this.select.value || this.cueCount < 0 ? this.load() : this.syncCues();
44
+ });
45
+ r(this, "onAd", (t) => {
46
+ this.panel.toggleAttribute("data-ad", t.type === "hp:adstart");
47
+ });
48
+ r(this, "onTimeUpdate", () => {
49
+ var i, a, o, c;
50
+ const t = performance.now();
51
+ this.sourceTrack && this.cueCount >= 0 && t - this.lastSync > 1e3 && (this.lastSync = t, this.syncCues());
52
+ const s = this.ctx.videoEl.currentTime;
53
+ let e = -1;
54
+ for (let l = 0; l < this.lines.length && !(this.lines[l].start > s); l++)
55
+ e = l;
56
+ if (e >= 0 && s > this.lines[e].end + 3 && (e = -1), e === this.activeIndex) return;
57
+ if (this.activeIndex >= 0) {
58
+ const l = (i = this.lines[this.activeIndex]) == null ? void 0 : i.row;
59
+ l == null || l.removeAttribute("data-active"), (a = l == null ? void 0 : l.firstElementChild) == null || a.removeAttribute("aria-current");
60
+ }
61
+ this.activeIndex = e;
62
+ const n = (o = this.lines[e]) == null ? void 0 : o.row;
63
+ n == null || n.setAttribute("data-active", ""), (c = n == null ? void 0 : n.firstElementChild) == null || c.setAttribute("aria-current", "true"), this.scrollToActive(!1);
64
+ });
65
+ this.ctx = t, this.options = s, this.autoScroll = s.autoScroll !== !1, b(t.overlayEl, "transcript", v);
66
+ const e = document.createElement("aside");
67
+ e.className = "hp-transcript", e.setAttribute("part", "transcript"), e.setAttribute("data-position", s.position === "left" ? "left" : "right"), e.hidden = !0;
68
+ const n = document.createElement("div");
69
+ if (n.className = "hp-transcript-head", this.titleEl = document.createElement("span"), this.titleEl.className = "hp-transcript-title", this.select = document.createElement("select"), this.select.className = "hp-transcript-select", this.select.addEventListener("change", () => {
70
+ this.sourceLabel = this.select.value, this.load();
71
+ }), this.closeBtn = document.createElement("button"), this.closeBtn.type = "button", this.closeBtn.className = "hp-transcript-close", this.closeBtn.appendChild(m("close")), this.closeBtn.addEventListener("click", () => this.setOpen(!1)), n.append(this.titleEl, this.select, this.closeBtn), e.appendChild(n), s.search !== !1) {
72
+ const i = document.createElement("input");
73
+ i.type = "search", i.className = "hp-transcript-search", i.addEventListener("input", () => {
74
+ this.query = i.value, this.applyFilter();
75
+ }), this.search = i, e.appendChild(i);
76
+ }
77
+ this.list = document.createElement("ol"), this.list.className = "hp-transcript-list";
78
+ for (const i of ["wheel", "touchmove"])
79
+ this.list.addEventListener(i, () => this.userScrollUntil = performance.now() + 4e3, { passive: !0 });
80
+ this.status = document.createElement("p"), this.status.className = "hp-transcript-status", this.status.setAttribute("aria-live", "polite"), e.append(this.list, this.status);
81
+ for (const i of ["pointerdown", "click", "dblclick"]) e.addEventListener(i, (a) => a.stopPropagation());
82
+ if (e.addEventListener("keydown", (i) => {
83
+ var a;
84
+ i.key === "Escape" && (this.setOpen(!1), (a = this.button) == null || a.focus()), i.stopPropagation();
85
+ }), t.overlayEl.appendChild(e), this.panel = e, s.button !== !1) {
86
+ const { btn: i } = t.addButton(t.i18n.transcript, "transcript", () => this.setOpen(!this.open));
87
+ i.classList.add("hp-transcript-btn"), i.setAttribute("aria-pressed", "false"), this.button = i;
88
+ }
89
+ this.refreshLabels(), t.videoEl.addEventListener("timeupdate", this.onTimeUpdate), t.videoEl.addEventListener("seeked", this.onTimeUpdate), t.videoEl.addEventListener("hp-internal:subtitle-loaded", this.onTracksChanged), t.hostEl.addEventListener("hp:adstart", this.onAd), t.hostEl.addEventListener("hp:adend", this.onAd), this.onTracksChanged(), s.open && this.setOpen(!0, !1);
90
+ }
91
+ get isOpen() {
92
+ return this.open;
93
+ }
94
+ setOpen(t, s = !0) {
95
+ var e;
96
+ t !== this.open && (this.open = t, this.panel.hidden = !t, (e = this.button) == null || e.setAttribute("aria-pressed", String(t)), this.ctx.overlayEl.toggleAttribute("data-transcript-open", t), t && (this.onTracksChanged(), this.scrollToActive(!0)), s && this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:transcript", { detail: { state: t ? "open" : "close" } })));
97
+ }
98
+ refreshLabels() {
99
+ var s;
100
+ const t = this.ctx.i18n;
101
+ this.titleEl.textContent = t.transcript, this.panel.setAttribute("aria-label", t.transcript), this.select.setAttribute("aria-label", t.transcriptTrack), this.closeBtn.setAttribute("aria-label", t.transcriptClose), this.search && (this.search.placeholder = t.transcriptSearch, this.search.setAttribute("aria-label", t.transcriptSearch)), (s = this.button) == null || s.setAttribute("aria-label", t.transcript), this.updateStatus();
102
+ }
103
+ destroy() {
104
+ var s;
105
+ const t = this.ctx.videoEl;
106
+ t.removeEventListener("timeupdate", this.onTimeUpdate), t.removeEventListener("seeked", this.onTimeUpdate), t.removeEventListener("hp-internal:subtitle-loaded", this.onTracksChanged), this.ctx.hostEl.removeEventListener("hp:adstart", this.onAd), this.ctx.hostEl.removeEventListener("hp:adend", this.onAd), this.ctx.overlayEl.removeAttribute("data-transcript-open"), this.panel.remove(), (s = this.button) == null || s.remove();
107
+ }
108
+ /** Seçili izin cue'larını baştan kurar. */
109
+ load() {
110
+ var s;
111
+ const t = this.select.value || null;
112
+ this.sourceTrack = ((s = this.ctx.getTracks().find((e) => e.label === t)) == null ? void 0 : s.track) ?? null, this.cueCount = -1, this.syncCues();
113
+ }
114
+ /** Cue sayısı değiştiyse (yayın izi parça parça dolar) satırları yeniden çizer. */
115
+ syncCues() {
116
+ const t = this.sourceTrack ? x(this.sourceTrack) : null, s = (t == null ? void 0 : t.length) ?? 0;
117
+ if (s === this.cueCount) return;
118
+ this.cueCount = s;
119
+ const e = (t ?? []).slice().sort((i, a) => i.start - a.start), n = [];
120
+ for (const i of e) {
121
+ const a = E(i.text);
122
+ if (!a) continue;
123
+ const o = n[n.length - 1];
124
+ if (o && o.text === a) {
125
+ o.end = Math.max(o.end, i.end);
126
+ continue;
127
+ }
128
+ n.push(this.buildLine(i.start, i.end, a));
129
+ }
130
+ this.lines = n, this.activeIndex = -1, this.list.replaceChildren(...n.map((i) => i.row)), this.applyFilter(), this.onTimeUpdate();
131
+ }
132
+ buildLine(t, s, e) {
133
+ const n = document.createElement("li");
134
+ n.className = "hp-transcript-line";
135
+ const i = document.createElement("button");
136
+ i.type = "button";
137
+ const a = document.createElement("span");
138
+ a.className = "hp-transcript-time", a.textContent = f(t);
139
+ const o = document.createElement("span");
140
+ return o.className = "hp-transcript-text", o.textContent = e, i.append(a, o), i.addEventListener("click", () => {
141
+ const c = this.ctx.videoEl;
142
+ c.currentTime = t, this.userScrollUntil = 0, this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:transcript", { detail: { state: "seek", time: t } }));
143
+ }), n.appendChild(i), { start: t, end: s, text: e, row: n, textEl: o };
144
+ }
145
+ scrollToActive(t) {
146
+ var i;
147
+ if (!this.open || !t && (!this.autoScroll || performance.now() < this.userScrollUntil)) return;
148
+ const s = (i = this.lines[this.activeIndex]) == null ? void 0 : i.row;
149
+ if (!s || s.hidden) return;
150
+ const e = this.list, n = s.offsetTop - e.offsetTop;
151
+ (t || n < e.scrollTop || n + s.offsetHeight > e.scrollTop + e.clientHeight) && (e.scrollTop = Math.max(0, n - e.clientHeight / 3));
152
+ }
153
+ /** Arama: eşleşmeyen satırlar gizlenir, eşleşen kısım <mark> ile vurgulanır. */
154
+ applyFilter() {
155
+ const t = h(this.query.trim());
156
+ let s = 0;
157
+ for (const e of this.lines) {
158
+ if (!t) {
159
+ e.row.hidden = !1, e.textEl.textContent = e.text, s++;
160
+ continue;
161
+ }
162
+ const n = h(e.text).indexOf(t);
163
+ if (e.row.hidden = n < 0, n < 0) continue;
164
+ if (s++, h(e.text).length !== e.text.length) {
165
+ e.textEl.textContent = e.text;
166
+ continue;
167
+ }
168
+ const i = document.createElement("mark");
169
+ i.textContent = e.text.slice(n, n + t.length), e.textEl.replaceChildren(e.text.slice(0, n), i, e.text.slice(n + t.length));
170
+ }
171
+ this.updateStatus(s);
172
+ }
173
+ updateStatus(t = this.lines.filter((s) => !s.row.hidden).length) {
174
+ const s = this.ctx.i18n;
175
+ let e = "";
176
+ this.ctx.getTracks().length ? this.lines.length ? t || (e = s.transcriptNoResults) : e = s.transcriptWaiting : e = s.transcriptEmpty, this.status.textContent = e, this.status.hidden = !e;
177
+ }
178
+ }
179
+ function w(p, t) {
180
+ return new k(p, t);
181
+ }
182
+ export {
183
+ k as Transcript,
184
+ w as installTranscript
185
+ };
186
+ //# sourceMappingURL=transcript-LG7E9UYE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-LG7E9UYE.js","sources":["../../src/plugins/transcript/Transcript.ts","../../src/plugins/transcript/index.ts"],"sourcesContent":["import type { TranscriptOptions } from '../../types';\nimport type { HopeLocaleStrings } from '../../i18n/types';\nimport { createIcon } from '../../icons/Icon';\nimport { formatTime } from '../../utils/format-time';\nimport { trackCues } from '../../subtitles/attachTracks';\nimport { adoptStyle } from '../../utils/plugin-style';\nimport css from './transcript.css?inline';\n\nexport interface TranscriptPlayerContext {\n hostEl: HTMLElement;\n videoEl: HTMLVideoElement;\n overlayEl: HTMLElement;\n i18n: HopeLocaleStrings;\n /** Altyazı menüsündeki izler (dosya + yayın). */\n getTracks(): { label: string; track: TextTrack }[];\n /** Seçili altyazının adı (kapalıysa null). */\n activeLabel(): string | null;\n addButton(label: string, iconName: string, onClick: () => void): { btn: HTMLButtonElement; icon: HTMLElement };\n}\n\ninterface Line {\n start: number;\n end: number;\n text: string;\n row: HTMLLIElement;\n textEl: HTMLSpanElement;\n}\n\nconst ENTITIES: Record<string, string> = { '&amp;': '&', '&lt;': '<', '&gt;': '>', '&nbsp;': ' ', '&quot;': '\"', '&#39;': \"'\" };\n\n/** VTT etiketlerini (<v Ad>, <b>, <c.renk>, zaman damgası) atar, satırları birleştirir. */\nfunction cleanCueText(raw: string): string {\n return raw\n .replace(/<[^>]*>/g, '')\n .replace(/&(amp|lt|gt|nbsp|quot|#39);/g, (m) => ENTITIES[m] ?? m)\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\n/** Arama için harf/aksan duyarsız biçim (İ/ı dahil). */\nfunction fold(s: string): string {\n return s.toLocaleLowerCase('tr').normalize('NFD').replace(/[̀-ͯ]/g, '');\n}\n\n/**\n * Transkript paneli: seçili (ya da `track`) altyazı izinin tüm satırları; tıklayınca o ana gider, oynayan satır\n * vurgulanır ve görünür tutulur, aranabilir. Dosyadan gelen altyazılar iz kapalıyken de okunur; yayın içi izler\n * (HLS / DASH) yalnızca açıkken dolar.\n */\nexport class Transcript {\n private readonly panel: HTMLElement;\n private readonly list: HTMLOListElement;\n private readonly status: HTMLParagraphElement;\n private readonly select: HTMLSelectElement;\n private readonly search: HTMLInputElement | null = null;\n private readonly titleEl: HTMLSpanElement;\n private readonly closeBtn: HTMLButtonElement;\n private button: HTMLButtonElement | null = null;\n private lines: Line[] = [];\n private activeIndex = -1;\n private sourceLabel: string | null = null;\n private sourceTrack: TextTrack | null = null;\n private cueCount = -1;\n private query = '';\n private open = false;\n private userScrollUntil = 0;\n private lastSync = 0;\n private readonly autoScroll: boolean;\n\n constructor(\n private readonly ctx: TranscriptPlayerContext,\n private readonly options: TranscriptOptions\n ) {\n this.autoScroll = options.autoScroll !== false;\n adoptStyle(ctx.overlayEl, 'transcript', css);\n const panel = document.createElement('aside');\n panel.className = 'hp-transcript';\n panel.setAttribute('part', 'transcript');\n panel.setAttribute('data-position', options.position === 'left' ? 'left' : 'right');\n panel.hidden = true;\n\n const head = document.createElement('div');\n head.className = 'hp-transcript-head';\n this.titleEl = document.createElement('span');\n this.titleEl.className = 'hp-transcript-title';\n this.select = document.createElement('select');\n this.select.className = 'hp-transcript-select';\n this.select.addEventListener('change', () => {\n this.sourceLabel = this.select.value;\n this.load();\n });\n this.closeBtn = document.createElement('button');\n this.closeBtn.type = 'button';\n this.closeBtn.className = 'hp-transcript-close';\n this.closeBtn.appendChild(createIcon('close'));\n this.closeBtn.addEventListener('click', () => this.setOpen(false));\n head.append(this.titleEl, this.select, this.closeBtn);\n panel.appendChild(head);\n\n if (options.search !== false) {\n const search = document.createElement('input');\n search.type = 'search';\n search.className = 'hp-transcript-search';\n search.addEventListener('input', () => {\n this.query = search.value;\n this.applyFilter();\n });\n this.search = search;\n panel.appendChild(search);\n }\n\n this.list = document.createElement('ol');\n this.list.className = 'hp-transcript-list';\n // Kullanıcı kaydırırken otomatik kaydırma birkaç saniye durur.\n for (const ev of ['wheel', 'touchmove'] as const) {\n this.list.addEventListener(ev, () => (this.userScrollUntil = performance.now() + 4000), { passive: true });\n }\n this.status = document.createElement('p');\n this.status.className = 'hp-transcript-status';\n this.status.setAttribute('aria-live', 'polite');\n panel.append(this.list, this.status);\n\n // Panel içindeki tıklama / yazma oynatıcıya (oynat-duraklat, kısayollar) gitmesin.\n for (const ev of ['pointerdown', 'click', 'dblclick'] as const) panel.addEventListener(ev, (e) => e.stopPropagation());\n panel.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n this.setOpen(false);\n this.button?.focus();\n }\n e.stopPropagation();\n });\n ctx.overlayEl.appendChild(panel);\n this.panel = panel;\n\n if (options.button !== false) {\n const { btn } = ctx.addButton(ctx.i18n.transcript, 'transcript', () => this.setOpen(!this.open));\n btn.classList.add('hp-transcript-btn');\n btn.setAttribute('aria-pressed', 'false');\n this.button = btn;\n }\n\n this.refreshLabels();\n ctx.videoEl.addEventListener('timeupdate', this.onTimeUpdate);\n ctx.videoEl.addEventListener('seeked', this.onTimeUpdate);\n ctx.videoEl.addEventListener('hp-internal:subtitle-loaded', this.onTracksChanged);\n ctx.hostEl.addEventListener('hp:adstart', this.onAd);\n ctx.hostEl.addEventListener('hp:adend', this.onAd);\n this.onTracksChanged();\n if (options.open) this.setOpen(true, false);\n }\n\n get isOpen(): boolean {\n return this.open;\n }\n\n setOpen(open: boolean, emit = true): void {\n if (open === this.open) return;\n this.open = open;\n this.panel.hidden = !open;\n this.button?.setAttribute('aria-pressed', String(open));\n this.ctx.overlayEl.toggleAttribute('data-transcript-open', open);\n if (open) {\n this.onTracksChanged();\n this.scrollToActive(true);\n }\n if (emit) this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:transcript', { detail: { state: open ? 'open' : 'close' } }));\n }\n\n /** Altyazı listesi / seçimi değişti — kaynak iz yeniden seçilir. */\n readonly onTracksChanged = (): void => {\n const tracks = this.ctx.getTracks();\n const prev = this.select.value;\n this.select.replaceChildren(\n ...tracks.map((t) => {\n const o = document.createElement('option');\n o.value = o.textContent = t.label;\n return o;\n })\n );\n this.select.hidden = tracks.length < 2;\n const want = this.options.track;\n const byOption = want ? tracks.find((t) => t.label === want || t.track.language === want) : undefined;\n const keep = this.sourceLabel ? tracks.find((t) => t.label === this.sourceLabel) : undefined;\n const active = this.ctx.activeLabel();\n const pick = keep ?? (active ? tracks.find((t) => t.label === active) : undefined) ?? byOption ?? tracks[0];\n if (pick) this.select.value = pick.label;\n if (pick?.track !== this.sourceTrack || prev !== this.select.value || this.cueCount < 0) this.load();\n else this.syncCues();\n };\n\n refreshLabels(): void {\n const i18n = this.ctx.i18n;\n this.titleEl.textContent = i18n.transcript;\n this.panel.setAttribute('aria-label', i18n.transcript);\n this.select.setAttribute('aria-label', i18n.transcriptTrack);\n this.closeBtn.setAttribute('aria-label', i18n.transcriptClose);\n if (this.search) {\n this.search.placeholder = i18n.transcriptSearch;\n this.search.setAttribute('aria-label', i18n.transcriptSearch);\n }\n this.button?.setAttribute('aria-label', i18n.transcript);\n this.updateStatus();\n }\n\n destroy(): void {\n const v = this.ctx.videoEl;\n v.removeEventListener('timeupdate', this.onTimeUpdate);\n v.removeEventListener('seeked', this.onTimeUpdate);\n v.removeEventListener('hp-internal:subtitle-loaded', this.onTracksChanged);\n this.ctx.hostEl.removeEventListener('hp:adstart', this.onAd);\n this.ctx.hostEl.removeEventListener('hp:adend', this.onAd);\n this.ctx.overlayEl.removeAttribute('data-transcript-open');\n this.panel.remove();\n this.button?.remove();\n }\n\n private readonly onAd = (e: Event): void => {\n this.panel.toggleAttribute('data-ad', e.type === 'hp:adstart');\n };\n\n /** Seçili izin cue'larını baştan kurar. */\n private load(): void {\n const label = this.select.value || null;\n this.sourceTrack = this.ctx.getTracks().find((t) => t.label === label)?.track ?? null;\n this.cueCount = -1;\n this.syncCues();\n }\n\n /** Cue sayısı değiştiyse (yayın izi parça parça dolar) satırları yeniden çizer. */\n private syncCues(): void {\n const cues = this.sourceTrack ? trackCues(this.sourceTrack) : null;\n const count = cues?.length ?? 0;\n if (count === this.cueCount) return;\n this.cueCount = count;\n const sorted = (cues ?? []).slice().sort((a, b) => a.start - b.start);\n const lines: Line[] = [];\n for (const c of sorted) {\n const text = cleanCueText(c.text);\n if (!text) continue;\n // Kayan (roll-up) altyazılarda aynı satır art arda tekrar eder — birleştir.\n const last = lines[lines.length - 1];\n if (last && last.text === text) {\n last.end = Math.max(last.end, c.end);\n continue;\n }\n lines.push(this.buildLine(c.start, c.end, text));\n }\n this.lines = lines;\n this.activeIndex = -1;\n this.list.replaceChildren(...lines.map((l) => l.row));\n this.applyFilter();\n this.onTimeUpdate();\n }\n\n private buildLine(start: number, end: number, text: string): Line {\n const row = document.createElement('li');\n row.className = 'hp-transcript-line';\n const btn = document.createElement('button');\n btn.type = 'button';\n const time = document.createElement('span');\n time.className = 'hp-transcript-time';\n time.textContent = formatTime(start);\n const textEl = document.createElement('span');\n textEl.className = 'hp-transcript-text';\n textEl.textContent = text;\n btn.append(time, textEl);\n btn.addEventListener('click', () => {\n const v = this.ctx.videoEl;\n v.currentTime = start;\n this.userScrollUntil = 0;\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:transcript', { detail: { state: 'seek', time: start } }));\n });\n row.appendChild(btn);\n return { start, end, text, row, textEl };\n }\n\n private readonly onTimeUpdate = (): void => {\n // Yayın izleri oynarken dolar — saniyede bir bakılır.\n const now = performance.now();\n if (this.sourceTrack && this.cueCount >= 0 && now - this.lastSync > 1000) {\n this.lastSync = now;\n this.syncCues();\n }\n const t = this.ctx.videoEl.currentTime;\n let index = -1;\n for (let i = 0; i < this.lines.length; i++) {\n if (this.lines[i]!.start > t) break;\n index = i;\n }\n // Satırlar arası boşlukta son satır vurgulu kalır; satırın bitişinden 3 sn sonra söner.\n if (index >= 0 && t > this.lines[index]!.end + 3) index = -1;\n if (index === this.activeIndex) return;\n if (this.activeIndex >= 0) {\n const prev = this.lines[this.activeIndex]?.row;\n prev?.removeAttribute('data-active');\n prev?.firstElementChild?.removeAttribute('aria-current');\n }\n this.activeIndex = index;\n const row = this.lines[index]?.row;\n row?.setAttribute('data-active', '');\n row?.firstElementChild?.setAttribute('aria-current', 'true');\n this.scrollToActive(false);\n };\n\n private scrollToActive(force: boolean): void {\n if (!this.open || (!force && (!this.autoScroll || performance.now() < this.userScrollUntil))) return;\n const row = this.lines[this.activeIndex]?.row;\n if (!row || row.hidden) return;\n // scrollIntoView sayfayı da kaydırır — yalnızca listeyi kaydır.\n const list = this.list;\n const top = row.offsetTop - list.offsetTop;\n if (force || top < list.scrollTop || top + row.offsetHeight > list.scrollTop + list.clientHeight) {\n list.scrollTop = Math.max(0, top - list.clientHeight / 3);\n }\n }\n\n /** Arama: eşleşmeyen satırlar gizlenir, eşleşen kısım <mark> ile vurgulanır. */\n private applyFilter(): void {\n const q = fold(this.query.trim());\n let shown = 0;\n for (const line of this.lines) {\n if (!q) {\n line.row.hidden = false;\n line.textEl.textContent = line.text;\n shown++;\n continue;\n }\n const at = fold(line.text).indexOf(q);\n line.row.hidden = at < 0;\n if (at < 0) continue;\n shown++;\n // fold() uzunluğu değiştirmeyen harflerde konum aynıdır; değiştiyse vurgusuz göster.\n if (fold(line.text).length !== line.text.length) {\n line.textEl.textContent = line.text;\n continue;\n }\n const mark = document.createElement('mark');\n mark.textContent = line.text.slice(at, at + q.length);\n line.textEl.replaceChildren(line.text.slice(0, at), mark, line.text.slice(at + q.length));\n }\n this.updateStatus(shown);\n }\n\n private updateStatus(shown = this.lines.filter((l) => !l.row.hidden).length): void {\n const i18n = this.ctx.i18n;\n let msg = '';\n if (!this.ctx.getTracks().length) msg = i18n.transcriptEmpty;\n else if (!this.lines.length) msg = i18n.transcriptWaiting;\n else if (!shown) msg = i18n.transcriptNoResults;\n this.status.textContent = msg;\n this.status.hidden = !msg;\n }\n}\n","import { Transcript, type TranscriptPlayerContext } from './Transcript';\nimport type { TranscriptOptions } from '../../types';\n\nexport function installTranscript(ctx: TranscriptPlayerContext, options: TranscriptOptions): Transcript {\n return new Transcript(ctx, options);\n}\n\nexport { Transcript };\nexport type { TranscriptPlayerContext };\n"],"names":["ENTITIES","cleanCueText","raw","m","fold","s","Transcript","ctx","options","__publicField","tracks","prev","t","o","want","byOption","keep","active","pick","e","now","index","i","_a","_b","row","_c","_d","adoptStyle","css","panel","head","createIcon","search","ev","btn","open","emit","i18n","v","label","cues","trackCues","count","sorted","a","b","lines","c","text","last","l","start","end","time","formatTime","textEl","force","list","top","q","shown","line","at","mark","msg","installTranscript"],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class ContextMenu {
14
14
  get isOpen(): boolean;
15
15
  /** `clientX/Y` ekran koordinatı — menü player'ın içinde kalacak şekilde kaydırılır. */
16
16
  show(clientX: number, clientY: number, items: ContextMenuItem[]): void;
17
+ private doc;
17
18
  readonly close: () => void;
18
19
  private readonly onOutside;
19
20
  private readonly onKeyDown;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/controls/ContextMenu.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,sGAAsG;AACtG,qBAAa,WAAW;IAIR,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAEQ,SAAS,EAAE,WAAW;IAUnD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,uFAAuF;IACvF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IA6CtE,QAAQ,CAAC,KAAK,QAAO,IAAI,CASvB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,IAAI,IAAI;CAIlB"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/controls/ContextMenu.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,sGAAsG;AACtG,qBAAa,WAAW;IAIR,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAEQ,SAAS,EAAE,WAAW;IAUnD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,uFAAuF;IACvF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAgDtE,OAAO,CAAC,GAAG,CAAsB;IAEjC,QAAQ,CAAC,KAAK,QAAO,IAAI,CAUvB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,IAAI,IAAI;CAIlB"}
@@ -20,6 +20,8 @@ export interface ControlBarCallbacks {
20
20
  interceptTogglePlay?(): boolean;
21
21
  /** Yükleme halkası (medya takılması ya da preroll beklemesi) açıldı / kapandı — kontroller bu sırada gizlenmesin. */
22
22
  onLoadingChange?(loading: boolean): void;
23
+ /** PiP butonu: true dönerse player işledi (Document PiP), yoksa normal PiP. */
24
+ onTogglePip?(): boolean;
23
25
  }
24
26
  /** Alt kontrol çubuğunu kurar; alt bileşenleri (SeekBar/VolumePanel/SettingsMenu) birleştirir. */
25
27
  export declare class ControlBar {
@@ -136,6 +138,10 @@ export declare class ControlBar {
136
138
  /** Plugin'lerin (live-wall-clock vb.) kontrol çubuğuna buton olmayan bir element (ör. saat göstergesi) eklemesi için. */
137
139
  addElement(el: HTMLElement): void;
138
140
  private togglePlay;
141
+ /** Document PiP kullanılabiliyor (normal PiP olmasa da buton görünsün) / açık (tam ekran butonu gizli). */
142
+ setDocPip(available: boolean, active: boolean): void;
143
+ private docPipAvailable;
144
+ private docPipActive;
139
145
  private togglePip;
140
146
  private toggleFullscreen;
141
147
  /** Preroll beklemesi: video duraklatılmış ama oynatma istendi — buton "duraklat" görünsün. */
@@ -1 +1 @@
1
- {"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAItG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA0CvD,MAAM,WAAW,mBAAmB;IAChC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,uGAAuG;IACvG,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,iHAAiH;IACjH,gBAAgB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,IAAI,OAAO,CAAC;IAChC,qHAAqH;IACrH,eAAe,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5C;AAED,kGAAkG;AAClG,qBAAa,UAAU;IACnB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;IAC5E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmD;IAC/E,qDAAqD;IACrD,OAAO,CAAC,WAAW,CAAkF;IACrG,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,YAAY,CAA8C;IAClE,wGAAwG;IACxG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,4GAA4G;IAC5G,OAAO,CAAC,WAAW,CAAS;IAC5B,gFAAgF;IAChF,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAAS;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,OAAO,CAAS;IACxB,yFAAyF;IACzF,OAAO,CAAC,WAAW,CAAS;IAC5B,6FAA6F;IAC7F,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAS;IAChC,oFAAoF;IACpF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,iBAAiB,CAAe;gBAE5B,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB;IAoJvH,mHAAmH;IACnH,OAAO,CAAC,YAAY;IAqBpB;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI;IAwBnE,2EAA2E;IAC3E,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAK/B,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAMnF;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAO7B,kBAAkB,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI;IAK/C,8HAA8H;IAC9H,gEAAgE;IAChE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKjE,yEAAyE;IACzE,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,IAAI;IAMZ,aAAa,IAAI,IAAI;IAYrB,oFAAoF;IACpF,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAgBhC;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI;IAYpF,6JAA6J;IAC7J,kBAAkB,IAAI,IAAI;IAI1B,YAAY,CAAC,OAAO,EAAE,qBAAqB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzE,WAAW,CAAC,OAAO,EAAE,qBAAqB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAIxE,gIAAgI;IAChI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE;IAO9G,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;IAEF,cAAc,IAAI,IAAI;IAKtB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAMrC,gBAAgB,IAAI,OAAO;IAI3B,6DAA6D;IAC7D,eAAe,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAKzE,yHAAyH;IACzH,UAAU,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIjC,OAAO,CAAC,UAAU;YAcJ,SAAS;IAYvB,OAAO,CAAC,gBAAgB;IAKxB,8FAA8F;IAC9F,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKtC,6GAA6G;IAC7G,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAM7C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEF,yJAAyJ;IACzJ,OAAO,CAAC,QAAQ;IAOhB,6EAA6E;IAC7E,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKnC,4DAA4D;IAC5D,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAwBzB;IAEF,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ7B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAM3B;IAEF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAQvB;IAEF,OAAO,IAAI,IAAI;CAiBlB"}
1
+ {"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"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"}
@@ -82,8 +82,11 @@ export declare class SeekBar {
82
82
  private readonly startLoop;
83
83
  private readonly stopLoop;
84
84
  private readonly render;
85
- /** 0–1 arası oranda, seek bar üzerine ince bir işaret çizgisi ekler (ör. loop A/B noktaları). */
86
- addMarker(ratio: number, extraClass?: string): HTMLDivElement;
85
+ /** 0–1 arası oranda, çizginin ortasına bir işaret noktası ekler (markers, etkileşimli öğeler, A-B döngü). */
86
+ addMarker(ratio: number, extraClass?: string, label?: string): HTMLDivElement;
87
+ /** İmlecin yakınındaki (±8 px) etiketli işaretin metni — önizleme balonları "Etiket · 0:42" gösterir. */
88
+ markerLabelAt(clientX: number): string | null;
89
+ private markerAt;
87
90
  clearMarkers(): void;
88
91
  refreshLabels(): void;
89
92
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SeekBar.d.ts","sourceRoot":"","sources":["../../src/controls/SeekBar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeekBar.d.ts","sourceRoot":"","sources":["../../src/controls/SeekBar.ts"],"names":[],"mappings":"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"}
@@ -131,7 +131,8 @@ export declare class SettingsMenu {
131
131
  /** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
132
132
  closeMenu(): void;
133
133
  private close;
134
- private readonly onDocumentClick;
134
+ /** PiP penceresi gibi ek bir belgede de dışarı tıklayınca kapansın. */
135
+ readonly onDocumentClick: (e: MouseEvent) => void;
135
136
  private row;
136
137
  private backRow;
137
138
  private render;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../src/controls/SettingsMenu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../src/controls/SettingsMenu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { HopeDrmOptions } from '../types';
2
+ export interface NativeEmeCallbacks {
3
+ onError(message: string, keySystem?: string): void;
4
+ onLicense?(keySystem: string): void;
5
+ }
6
+ export declare class NativeEme {
7
+ private readonly video;
8
+ private readonly drm;
9
+ private readonly cb;
10
+ private setup;
11
+ private readonly sessions;
12
+ /** Aynı initData için ikinci oturum açılmaz. */
13
+ private readonly seen;
14
+ private disposed;
15
+ constructor(video: HTMLVideoElement, drm: HopeDrmOptions, cb: NativeEmeCallbacks);
16
+ destroy(): void;
17
+ private readonly onEncrypted;
18
+ private handle;
19
+ private createKeys;
20
+ private license;
21
+ private fail;
22
+ }
23
+ //# sourceMappingURL=NativeEme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeEme.d.ts","sourceRoot":"","sources":["../../src/drm/NativeEme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/D,MAAM,WAAW,kBAAkB;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAKD,qBAAa,SAAS;IAQd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE;IATvB,OAAO,CAAC,KAAK,CAAuE;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAS;gBAGJ,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,kBAAkB;IAK3C,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,QAAQ,CAAC,WAAW,CAO1B;YAEY,MAAM;YAcN,UAAU;YA8BV,OAAO;IAarB,OAAO,CAAC,IAAI;CAIf"}
@@ -0,0 +1,18 @@
1
+ import type { HlsConfig } from 'hls.js';
2
+ import type { ProtectionDataSet } from 'dashjs';
3
+ import type { HopeDrmLicense, HopeDrmOptions } from '../types';
4
+ export declare const KEY_SYSTEMS: {
5
+ readonly widevine: "com.widevine.alpha";
6
+ readonly playready: "com.microsoft.playready";
7
+ readonly fairplay: "com.apple.fps";
8
+ readonly clearkey: "org.w3.clearkey";
9
+ };
10
+ export type DrmName = keyof typeof KEY_SYSTEMS;
11
+ /** Verilen sistemler, öncelik sırasıyla. */
12
+ export declare function drmEntries(drm: HopeDrmOptions | undefined): Array<[DrmName, HopeDrmLicense]>;
13
+ export declare function hasDrm(drm: HopeDrmOptions | undefined): boolean;
14
+ /** hls.js EME ayarları. */
15
+ export declare function hlsDrmConfig(drm: HopeDrmOptions, user: Partial<HlsConfig>): Partial<HlsConfig>;
16
+ /** dash.js koruma verisi (FairPlay DASH'te kullanılmaz). */
17
+ export declare function dashProtectionData(drm: HopeDrmOptions): ProtectionDataSet;
18
+ //# sourceMappingURL=keySystems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keySystems.d.ts","sourceRoot":"","sources":["../../src/drm/keySystems.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,WAAW,CAAC;AAE/C,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAI5F;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAE/D;AAID,2BAA2B;AAC3B,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAoC9F;AAgBD,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,CAYzE"}
@@ -1,4 +1,4 @@
1
- import type { HopeHlsOptions } from '../types';
1
+ import type { HopeCmcdOptions, HopeDashOptions, HopeDrmOptions, HopeHlsOptions, QualityLimitOptions } from '../types';
2
2
  /**
3
3
  * MP4: HTML5 video üzerinden doğrudan oynatılır.
4
4
  * M3U8: Safari/iOS'ta native HLS; diğer tarayıcılarda gerektiğinde hls.js.
@@ -10,10 +10,12 @@ export interface HlsQualityLevel {
10
10
  }
11
11
  type HlsModule = typeof import('hls.js');
12
12
  type HlsInstance = InstanceType<HlsModule['default']>;
13
- type MediaSourceType = 'hls' | 'mp4' | 'unknown';
13
+ type MediaSourceType = 'hls' | 'dash' | 'mp4' | 'unknown';
14
14
  /** Hangi yoldan oynatılıyor — `reason` native'e neden düşüldüğünü açıklar (ör. CORS). */
15
15
  export interface PlaybackEngineInfo {
16
- engine: 'native' | 'native-hls' | 'hls.js';
16
+ engine: 'native' | 'native-hls' | 'hls.js' | 'dash.js';
17
+ /** Şifreli içerikte kullanılan anahtar sistemi (ör. `com.widevine.alpha`). */
18
+ drm?: string;
17
19
  /** hls.js ile oynarken hangi paket (`options.hls.build`). */
18
20
  build?: 'full' | 'light';
19
21
  /** `option` = `options.hls.engine: 'native'` ile istendi. */
@@ -46,7 +48,7 @@ export interface SourceManagerCallbacks {
46
48
  onTextTracksFound(tracks: StreamTextTrack[]): void;
47
49
  onCues(trackId: string, cues: VTTCue[]): void;
48
50
  /** hls.js kurtarılamayan bir hata verdi (video.error oluşmaz) — `network` = yayın/segment indirilemiyor, `media` = çözümlenemiyor. */
49
- onFatalError(kind: 'network' | 'media'): void;
51
+ onFatalError(kind: 'network' | 'media' | 'drm' | 'unsupported'): void;
50
52
  /** hls.js'in her hatası (kurtarılanlar dahil) — hata ayıklama kaydı için. */
51
53
  onStreamError?(info: {
52
54
  type: string;
@@ -55,6 +57,7 @@ export interface SourceManagerCallbacks {
55
57
  url?: string;
56
58
  httpStatus?: number;
57
59
  reason?: string;
60
+ engine?: string;
58
61
  }): void;
59
62
  }
60
63
  export declare class SourceManager {
@@ -70,16 +73,39 @@ export declare class SourceManager {
70
73
  private streamTextTracks;
71
74
  /** Safari native HLS ses izi dinleyicilerini kaldırır. */
72
75
  private nativeAudioCleanup;
76
+ private dash;
77
+ private dashOptions;
78
+ private drm;
79
+ private nativeEme;
80
+ private qualityLimit;
81
+ private cmcd;
82
+ /** Her `load()`'da yenilenir. */
83
+ private sid;
73
84
  constructor(video: HTMLVideoElement, callbacks: SourceManagerCallbacks);
74
85
  /** `options.hls` — sonraki `load()`'da uygulanır. */
75
- configure(options: HopeHlsOptions | undefined): void;
86
+ configure(options: HopeHlsOptions | undefined, media?: {
87
+ dash?: HopeDashOptions;
88
+ drm?: HopeDrmOptions;
89
+ qualityLimit?: QualityLimitOptions;
90
+ cmcd?: HopeCmcdOptions | null;
91
+ }): void;
76
92
  /** Bu kaynak zaten yüklü ve hatasız mı — aynı kaynak için yeniden yükleme (başa sarma) gerekmez. */
77
93
  isLoaded(src: string, type?: string): boolean;
94
+ /** O anki oynatma oturumu (CMCD `sid`). */
95
+ get sessionId(): string;
78
96
  load(src: string, type?: string): Promise<void>;
79
97
  /** Şu anki oynatma yolu — docs demosu/entegratör teşhisi için (ör. CORS yüzünden native'e düşüldü mü). */
80
98
  get engine(): PlaybackEngineInfo;
81
99
  /** hls.js ile oynatılıyorsa instance (gelişmiş kullanım: olaylar, istatistik); değilse null. */
82
100
  get hlsInstance(): HlsInstance | null;
101
+ /** Native oynatmada şifreli içerik için EME işleyicisi (kaynak atanmadan önce). */
102
+ private prepareNativeDrm;
103
+ private attachDash;
104
+ /** O an oynayan kalite (ABR'de de gerçek seviye). */
105
+ currentLevel(): {
106
+ height: number;
107
+ bitrate: number | null;
108
+ } | null;
83
109
  private loadNativeHls;
84
110
  /** Native HLS denemesi sürüyor mu — ErrorScreen bu sırada gelen hatayı göstermez (hls.js'e geçilecek). */
85
111
  isRecovering(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../src/hls/SourceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../src/hls/SourceManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { HopeDashOptions, HopeDrmOptions } from '../types';
2
+ export interface DashLevel {
3
+ index: number;
4
+ height: number;
5
+ bitrate: number;
6
+ }
7
+ export interface DashTrack {
8
+ index: number;
9
+ label: string;
10
+ lang: string;
11
+ }
12
+ export interface DashTextTrack {
13
+ id: string;
14
+ kind: 'subtitles' | 'captions';
15
+ label: string;
16
+ lang: string;
17
+ }
18
+ export interface DashCallbacks {
19
+ /** Manifest altyazıları (boş = yok). */
20
+ onTextTracks?(tracks: DashTextTrack[]): void;
21
+ /** Seçili izin cue'ları (player'ın kendi katmanına kopyalanır). */
22
+ onCues?(trackId: string, cues: VTTCue[]): void;
23
+ onLevels(levels: DashLevel[], active: number): void;
24
+ onAudioTracks(tracks: DashTrack[], active: number): void;
25
+ onFatal(kind: 'network' | 'media' | 'drm' | 'unsupported'): void;
26
+ onError(info: {
27
+ code: number;
28
+ message: string;
29
+ fatal: boolean;
30
+ }): void;
31
+ /** Şifreli içerikte seçilen anahtar sistemi. */
32
+ onDrm?(keySystem: string): void;
33
+ }
34
+ export declare class DashEngine {
35
+ private readonly cb;
36
+ private readonly player;
37
+ private auto;
38
+ /** Dışarıdan gelen üst sınır (seviye sırası); -1 = yok. */
39
+ private extCap;
40
+ private fitPlayer;
41
+ private resize;
42
+ /** Seçili manifest altyazısı (dash.js sırası); -1 = yok. */
43
+ private textIndex;
44
+ /** Cue'lar dash.js dosyayı indirince eklenir — seçiliyken sayıyı izler. */
45
+ private cueTimer;
46
+ private copied;
47
+ private readonly video;
48
+ constructor(video: HTMLVideoElement, src: string, options: {
49
+ dash?: HopeDashOptions;
50
+ drm?: HopeDrmOptions;
51
+ autoplay: boolean;
52
+ fitPlayer?: boolean;
53
+ cmcd?: {
54
+ sessionId: string;
55
+ contentId?: string;
56
+ mode?: 'query' | 'header';
57
+ } | null;
58
+ }, cb: DashCallbacks);
59
+ private reps;
60
+ private reportLevels;
61
+ private reportAudio;
62
+ private textInfos;
63
+ private reportText;
64
+ /** Altyazı seç (`dash:<i>`); null = kapalı. */
65
+ selectText(id: string | null): void;
66
+ /** dash.js'in video üstündeki izi: kendi çizimini gizle, cue'ları player katmanına kopyala. */
67
+ private readonly syncCues;
68
+ /** dash.js'in oluşturduğu iz: adı manifestteki AdaptationSet kimliği. */
69
+ private isDashTrack;
70
+ /** -1 = otomatik. */
71
+ setLevel(index: number): void;
72
+ /** ABR üst sınırı; -1 = yok. */
73
+ setMaxLevel(index: number): void;
74
+ /** Üst sınır: dış sınır ve player boyutu (fitPlayer). Şu anki kalite üstündeyse tampon değiştirilerek hemen düşülür. */
75
+ private applyCap;
76
+ setAudioTrack(index: number): void;
77
+ /** O an oynayan video temsili. */
78
+ currentLevel(): {
79
+ height: number;
80
+ bitrate: number;
81
+ } | null;
82
+ get isLive(): boolean;
83
+ destroy(): void;
84
+ }
85
+ //# sourceMappingURL=dashEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashEngine.d.ts","sourceRoot":"","sources":["../../src/hls/dashEngine.ts"],"names":[],"mappings":"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"}