@hopeplayer/core 1.3.1 → 1.5.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 (97) hide show
  1. package/README.md +4 -0
  2. package/dist/HopePlayerElement.d.ts +29 -4
  3. package/dist/HopePlayerElement.d.ts.map +1 -1
  4. package/dist/chunks/NativeEme-CXosVcw8.js +80 -0
  5. package/dist/chunks/NativeEme-CXosVcw8.js.map +1 -0
  6. package/dist/chunks/{accessibility-CehDBG3h.js → accessibility-DFx4CE0H.js} +45 -41
  7. package/dist/chunks/accessibility-DFx4CE0H.js.map +1 -0
  8. package/dist/chunks/{ads-BFmyld9u.js → ads-C4tDPsUs.js} +3 -3
  9. package/dist/chunks/ads-C4tDPsUs.js.map +1 -0
  10. package/dist/chunks/analytics-DEjTAJO9.js +281 -0
  11. package/dist/chunks/analytics-DEjTAJO9.js.map +1 -0
  12. package/dist/chunks/{cast-DJXOJLEZ.js → cast-Baxvu76A.js} +2 -2
  13. package/dist/chunks/{cast-DJXOJLEZ.js.map → cast-Baxvu76A.js.map} +1 -1
  14. package/dist/chunks/dash-CWjy-y7B.js +22 -0
  15. package/dist/chunks/dash-CWjy-y7B.js.map +1 -0
  16. package/dist/chunks/{history-YQ9A8HBv.js → history-CvydU0aN.js} +2 -2
  17. package/dist/chunks/{history-YQ9A8HBv.js.map → history-CvydU0aN.js.map} +1 -1
  18. package/dist/chunks/keySystems-CNzjRq6e.js +70 -0
  19. package/dist/chunks/keySystems-CNzjRq6e.js.map +1 -0
  20. package/dist/chunks/{markers-BmcD53SJ.js → markers-Dr4-CCxE.js} +2 -2
  21. package/dist/chunks/{markers-BmcD53SJ.js.map → markers-Dr4-CCxE.js.map} +1 -1
  22. package/dist/chunks/{player-BVkwkn4b.js → player-DV4Hf5Cw.js} +1320 -993
  23. package/dist/chunks/player-DV4Hf5Cw.js.map +1 -0
  24. package/dist/chunks/{playlist-jDbObKz3.js → playlist-DJsdK6xm.js} +29 -21
  25. package/dist/chunks/playlist-DJsdK6xm.js.map +1 -0
  26. package/dist/chunks/pluginHost-GxNfyP5E.js +566 -0
  27. package/dist/chunks/pluginHost-GxNfyP5E.js.map +1 -0
  28. package/dist/chunks/{redirectScreen-CFZKtEdv.js → redirectScreen-BT_26-5g.js} +2 -2
  29. package/dist/chunks/{redirectScreen-CFZKtEdv.js.map → redirectScreen-BT_26-5g.js.map} +1 -1
  30. package/dist/chunks/{rewardedUnlock-Cn4_68a3.js → rewardedUnlock-jFOdzfSq.js} +2 -2
  31. package/dist/chunks/{rewardedUnlock-Cn4_68a3.js.map → rewardedUnlock-jFOdzfSq.js.map} +1 -1
  32. package/dist/chunks/{segments-DXARAkpS.js → segments--hl_QVrI.js} +2 -2
  33. package/dist/chunks/{segments-DXARAkpS.js.map → segments--hl_QVrI.js.map} +1 -1
  34. package/dist/chunks/{skipSegments-U0aUwoDt.js → skipSegments-vJMhdiJn.js} +55 -42
  35. package/dist/chunks/{skipSegments-U0aUwoDt.js.map → skipSegments-vJMhdiJn.js.map} +1 -1
  36. package/dist/chunks/{spriteThumbnails-DLfTFsPU.js → spriteThumbnails-BoxVY--_.js} +76 -53
  37. package/dist/chunks/spriteThumbnails-BoxVY--_.js.map +1 -0
  38. package/dist/chunks/{statsPanel-DSClIwA3.js → statsPanel-D0DtoFgS.js} +2 -2
  39. package/dist/chunks/statsPanel-D0DtoFgS.js.map +1 -0
  40. package/dist/chunks/{story-Ce56rEaN.js → story-BRkhSDhR.js} +2 -2
  41. package/dist/chunks/{story-Ce56rEaN.js.map → story-BRkhSDhR.js.map} +1 -1
  42. package/dist/controls/ControlBar.d.ts +2 -0
  43. package/dist/controls/ControlBar.d.ts.map +1 -1
  44. package/dist/controls/SeekBar.d.ts.map +1 -1
  45. package/dist/controls/SettingsMenu.d.ts +5 -0
  46. package/dist/controls/SettingsMenu.d.ts.map +1 -1
  47. package/dist/drm/NativeEme.d.ts +23 -0
  48. package/dist/drm/NativeEme.d.ts.map +1 -0
  49. package/dist/drm/keySystems.d.ts +18 -0
  50. package/dist/drm/keySystems.d.ts.map +1 -0
  51. package/dist/hls/SourceManager.d.ts +31 -5
  52. package/dist/hls/SourceManager.d.ts.map +1 -1
  53. package/dist/hls/dashEngine.d.ts +85 -0
  54. package/dist/hls/dashEngine.d.ts.map +1 -0
  55. package/dist/hls/sourceGroups.d.ts.map +1 -1
  56. package/dist/hope-player.js +6 -3
  57. package/dist/i18n/locales/en.d.ts.map +1 -1
  58. package/dist/i18n/locales/tr.d.ts.map +1 -1
  59. package/dist/i18n/types.d.ts +3 -0
  60. package/dist/i18n/types.d.ts.map +1 -1
  61. package/dist/index.d.ts +4 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/keyboard/KeyboardController.d.ts +14 -0
  64. package/dist/keyboard/KeyboardController.d.ts.map +1 -1
  65. package/dist/plugin-api/PluginAds.d.ts +61 -0
  66. package/dist/plugin-api/PluginAds.d.ts.map +1 -0
  67. package/dist/plugin-api/PluginHost.d.ts +71 -0
  68. package/dist/plugin-api/PluginHost.d.ts.map +1 -0
  69. package/dist/plugin-api/registry.d.ts +10 -0
  70. package/dist/plugin-api/registry.d.ts.map +1 -0
  71. package/dist/plugin-api/types.d.ts +209 -0
  72. package/dist/plugin-api/types.d.ts.map +1 -0
  73. package/dist/plugins/accessibility/Accessibility.d.ts +5 -0
  74. package/dist/plugins/accessibility/Accessibility.d.ts.map +1 -1
  75. package/dist/plugins/ads/AdsController.d.ts +2 -0
  76. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  77. package/dist/plugins/analytics/QoeTracker.d.ts +71 -0
  78. package/dist/plugins/analytics/QoeTracker.d.ts.map +1 -0
  79. package/dist/plugins/analytics/index.d.ts +6 -0
  80. package/dist/plugins/analytics/index.d.ts.map +1 -0
  81. package/dist/plugins/playlist/PlaylistRunner.d.ts +2 -0
  82. package/dist/plugins/playlist/PlaylistRunner.d.ts.map +1 -1
  83. package/dist/plugins/skip-segments/index.d.ts +2 -0
  84. package/dist/plugins/skip-segments/index.d.ts.map +1 -1
  85. package/dist/plugins/sprite-thumbnails/SpriteThumbnails.d.ts +8 -0
  86. package/dist/plugins/sprite-thumbnails/SpriteThumbnails.d.ts.map +1 -1
  87. package/dist/screens/ErrorScreen.d.ts +1 -1
  88. package/dist/screens/ErrorScreen.d.ts.map +1 -1
  89. package/dist/types/index.d.ts +159 -4
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/package.json +2 -1
  92. package/dist/chunks/accessibility-CehDBG3h.js.map +0 -1
  93. package/dist/chunks/ads-BFmyld9u.js.map +0 -1
  94. package/dist/chunks/player-BVkwkn4b.js.map +0 -1
  95. package/dist/chunks/playlist-jDbObKz3.js.map +0 -1
  96. package/dist/chunks/spriteThumbnails-DLfTFsPU.js.map +0 -1
  97. package/dist/chunks/statsPanel-DSClIwA3.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"story-Ce56rEaN.js","sources":["../../src/plugins/story/HopeStory.ts","../../src/plugins/story/index.ts"],"sourcesContent":["import { createIcon } from '../../icons/Icon';\nimport type { PlayableItem, StoryOptions } from '../../types';\nimport type { HopeLocaleStrings } from '../../i18n/types';\n\nexport interface StoryPlayerContext {\n videoEl: HTMLVideoElement;\n hostEl: HTMLElement;\n /** .video-area — story aktifken 9:16'ya çevrilir (data-story attribute ile), destroy'da geri alınır. */\n videoAreaEl: HTMLElement;\n /** Gerçek player gövdesi (.media-layer + chrome + center-play-button) — orta pane'e taşınır, destroy'da geri alınır. */\n playerBodyEls: HTMLElement[];\n loadSource(src: string, type?: string): Promise<void>;\n setPoster(url: string): void;\n requestFreshAd(prerollTag?: string): void;\n i18n: HopeLocaleStrings;\n}\n\ntype Dir = 'next' | 'prev';\n\nconst DEFAULTS: Required<Omit<StoryOptions, 'items' | 'adTagPreroll' | 'gestures' | 'ui'>> = {\n startIndex: 0,\n loop: true,\n autoplayNext: true,\n preferHls: true,\n transitionMs: 380,\n adsOnItemChange: true,\n};\n\n/** Dikey video akışı (Shorts/Story): tek <video>, item değişiminde kaynak değişir. */\nexport class HopeStory {\n private readonly options: Required<Omit<StoryOptions, 'items' | 'adTagPreroll' | 'gestures' | 'ui'>>;\n private readonly gestureOpts: Required<NonNullable<StoryOptions['gestures']>>;\n private readonly uiOpts: Required<NonNullable<StoryOptions['ui']>>;\n private readonly items: PlayableItem[];\n\n private index: number;\n private destroyed = false;\n private switching = false;\n /** Geçiş sürerken gelen buton / klavye isteği — yok sayılmaz, geçiş bitince uygulanır (yalnızca sonuncusu). */\n private pendingNav: { dir: Dir; userInitiated: boolean } | null = null;\n private listOpen = false;\n private userHasStartedPlayback = false;\n private lastAdsIndex: number | null = null;\n private wheelAccum = 0;\n private lastNavAt = 0;\n private drag: { startY: number; startX: number; dy: number; active: boolean; id: number } | null = null;\n\n private readonly els: {\n viewport: HTMLElement;\n track: HTMLElement;\n panePrev: HTMLElement;\n paneCurrent: HTMLElement;\n paneNext: HTMLElement;\n overlay: HTMLElement;\n counter: HTMLElement;\n titleEl: HTMLElement;\n spotEl: HTMLElement;\n dots: HTMLElement;\n progressBar: HTMLElement;\n upBtn: HTMLButtonElement;\n downBtn: HTMLButtonElement;\n listBtn: HTMLButtonElement;\n panel: HTMLElement;\n grid: HTMLElement;\n };\n\n constructor(\n private readonly ctx: StoryPlayerContext,\n private readonly rawOptions: StoryOptions\n ) {\n this.options = { ...DEFAULTS, ...rawOptions };\n this.gestureOpts = {\n swipe: true,\n swipeThreshold: 0.12,\n wheel: true,\n wheelThreshold: 42,\n wheelCooldownMs: 620,\n keyboard: true,\n ...rawOptions.gestures,\n };\n this.uiOpts = { counter: true, title: true, spot: true, dots: true, progress: true, ...rawOptions.ui };\n this.items = Array.isArray(rawOptions.items) ? rawOptions.items : [];\n this.index = this.clamp(this.options.startIndex);\n\n this.els = this.buildDom();\n this.bindEvents();\n this.syncUi();\n this.preloadNeighbours();\n\n if (this.items.length) void this.loadItem(this.index, { isStart: true });\n }\n\n refreshLabels(): void {\n this.els.upBtn.setAttribute('aria-label', this.ctx.i18n.storyPrev);\n this.els.downBtn.setAttribute('aria-label', this.ctx.i18n.storyNext);\n this.els.listBtn.setAttribute('aria-label', this.ctx.i18n.storyAllVideos);\n this.renderList(this.els.grid);\n }\n\n destroy(): void {\n if (this.destroyed) return;\n this.destroyed = true;\n\n this.ctx.videoEl.removeEventListener('ended', this.onEnded);\n this.ctx.videoEl.removeEventListener('playing', this.onPlaying);\n this.ctx.videoEl.removeEventListener('play', this.onFirstPlay);\n this.ctx.videoEl.removeEventListener('timeupdate', this.onTimeUpdate);\n this.els.viewport.removeEventListener('wheel', this.onWheel);\n this.els.viewport.removeEventListener('pointerdown', this.onPointerDown);\n window.removeEventListener('pointermove', this.onPointerMove);\n window.removeEventListener('pointerup', this.onPointerUp);\n document.removeEventListener('keydown', this.onKeyDown);\n\n // player gövdesini .video-area'ya geri taşı, story DOM'unu kaldır.\n this.ctx.playerBodyEls.forEach((el) => this.ctx.videoAreaEl.appendChild(el));\n this.ctx.videoAreaEl.removeAttribute('data-story');\n this.els.viewport.remove();\n this.els.panel.remove();\n }\n\n // ── public api ──\n\n next(userInitiated = true): void {\n if (this.switching) {\n this.pendingNav = { dir: 'next', userInitiated };\n return;\n }\n const target = this.index + 1;\n if (target >= this.items.length) {\n if (!this.options.loop) return;\n void this.goTo(0, 'next', userInitiated);\n return;\n }\n void this.goTo(target, 'next', userInitiated);\n }\n\n prev(userInitiated = true): void {\n if (this.switching) {\n this.pendingNav = { dir: 'prev', userInitiated };\n return;\n }\n const target = this.index - 1;\n if (target < 0) {\n if (!this.options.loop) return;\n void this.goTo(this.items.length - 1, 'prev', userInitiated);\n return;\n }\n void this.goTo(target, 'prev', userInitiated);\n }\n\n async goTo(target: number, direction: Dir | null = null, userInitiated = true): Promise<void> {\n if (this.destroyed || this.switching) return;\n const i = this.clamp(target);\n if (i === this.index) return;\n\n const dir = direction || (i > this.index ? 'next' : 'prev');\n this.switching = true;\n try {\n this.fillPane(dir, this.items[i]);\n await this.animate(dir);\n this.index = i;\n this.syncUi();\n await this.loadItem(i, { userInitiated });\n this.preloadNeighbours();\n } finally {\n this.switching = false;\n }\n // Hızlı art arda dokunuş (ör. iki kez \"önceki\"): ikincisi kaybolmasın — hedef şimdiki konumdan hesaplanır.\n const pending = this.pendingNav;\n this.pendingNav = null;\n if (pending && !this.destroyed) pending.dir === 'next' ? this.next(pending.userInitiated) : this.prev(pending.userInitiated);\n }\n\n toggleList(force?: boolean): void {\n this.listOpen = typeof force === 'boolean' ? force : !this.listOpen;\n this.els.panel.setAttribute('aria-hidden', this.listOpen ? 'false' : 'true');\n this.els.listBtn.setAttribute('aria-expanded', this.listOpen ? 'true' : 'false');\n // translate-x/-y utility yerine inline transform: Shadow DOM'da tek eksenli Tailwind translate 'none' oluyor.\n this.els.panel.style.transform = this.listOpen ? 'translateX(0)' : 'translateX(100%)';\n }\n\n // ── dom ──\n\n private buildDom() {\n this.ctx.videoAreaEl.setAttribute('data-story', '1');\n\n const viewport = document.createElement('div');\n viewport.className = 'hp:absolute hp:inset-0 hp:overflow-hidden hp:touch-none';\n viewport.setAttribute('tabindex', '0');\n\n const track = document.createElement('div');\n track.className = 'hp:relative hp:w-full';\n track.style.height = '300%';\n track.style.transform = 'translate3d(0,-33.3333%,0)';\n track.style.transition = `transform ${this.options.transitionMs}ms ease`;\n\n const panePrev = this.createPane();\n const paneCurrent = document.createElement('div');\n paneCurrent.className = 'hp:absolute hp:inset-x-0 hp:h-1/3';\n paneCurrent.style.top = '33.3333%';\n const paneNext = this.createPane();\n paneNext.style.top = '66.6667%';\n\n // Gerçek player gövdesini orta pane'e taşı.\n this.ctx.playerBodyEls.forEach((el) => paneCurrent.appendChild(el));\n\n track.append(panePrev, paneCurrent, paneNext);\n viewport.appendChild(track);\n\n const overlay = document.createElement('div');\n overlay.className = 'hp:absolute hp:inset-0 hp:z-20 hp:pointer-events-none hp:flex hp:flex-col hp:justify-between hp:p-3';\n\n const progressBar = document.createElement('div');\n progressBar.className = 'hp:h-0.5 hp:bg-white/30 hp:rounded-full hp:overflow-hidden';\n const progressFill = document.createElement('div');\n progressFill.className = 'hp:h-full hp:bg-accent hp:w-0';\n progressBar.appendChild(progressFill);\n\n const meta = document.createElement('div');\n meta.className = 'hp:flex hp:flex-col hp:gap-0.5 hp:text-white hp:drop-shadow hp:mt-2 hp:pointer-events-auto';\n const counter = document.createElement('span');\n counter.setAttribute('part', 'story-counter');\n counter.className = 'hp:text-xs hp:opacity-80';\n const titleEl = document.createElement('strong');\n titleEl.className = 'hp:text-sm';\n const spotEl = document.createElement('span');\n spotEl.className = 'hp:text-xs hp:opacity-80';\n meta.append(counter, titleEl, spotEl);\n\n const dots = document.createElement('div');\n dots.className = 'hp:absolute hp:right-2 hp:top-1/2 hp-center-y hp:flex hp:flex-col hp:gap-1 hp:pointer-events-none';\n\n const navWrap = document.createElement('div');\n navWrap.className = 'hp:flex hp:flex-col hp:gap-2 hp:self-end hp:pointer-events-auto hp:mb-16';\n const upBtn = this.navBtn('chevron-left', this.ctx.i18n.storyPrev);\n upBtn.style.transform = 'rotate(90deg)';\n const downBtn = this.navBtn('chevron-left', this.ctx.i18n.storyNext);\n downBtn.style.transform = 'rotate(-90deg)';\n navWrap.append(upBtn, downBtn);\n\n const listBtn = document.createElement('button');\n listBtn.type = 'button';\n listBtn.setAttribute('aria-label', this.ctx.i18n.storyAllVideos);\n listBtn.setAttribute('aria-expanded', 'false');\n // Konum tailwind.css `.hp-story-list-btn` — dar (dikey) player'da üst bara (ayarlar/PiP) taşınan butonların altında.\n listBtn.className =\n 'hp-story-list-btn hp:absolute hp:flex hp:items-center hp:justify-center hp:w-9 hp:h-9 hp:rounded-full ' +\n 'hp:bg-black/40 hp:text-white hp:border-0 hp:cursor-pointer hp:pointer-events-auto';\n listBtn.setAttribute('part', 'story-list-button');\n listBtn.appendChild(createIcon('grid', 'hp:text-base'));\n\n overlay.append(progressBar, meta, dots, navWrap, listBtn);\n\n const panel = document.createElement('aside');\n panel.className =\n 'hp:absolute hp:inset-y-0 hp:right-0 hp:w-72 hp:max-w-[80%] hp:bg-surface-elev hp:z-30 hp:overflow-y-auto hp:p-3 ' +\n 'hp:transition-transform hp:duration-300';\n panel.style.transform = 'translateX(100%)';\n panel.setAttribute('aria-hidden', 'true');\n const grid = document.createElement('div');\n grid.className = 'hp:flex hp:flex-col hp:gap-2 hp:mt-8';\n panel.appendChild(grid);\n\n this.ctx.videoAreaEl.append(viewport, overlay, panel);\n\n this.renderList(grid);\n\n return {\n viewport, track, panePrev, paneCurrent, paneNext, overlay,\n counter, titleEl, spotEl, dots, progressBar: progressFill,\n upBtn, downBtn, listBtn, panel, grid,\n };\n }\n\n private createPane(): HTMLElement {\n const pane = document.createElement('div');\n pane.className = 'hp:absolute hp:inset-x-0 hp:h-1/3 hp:bg-cover hp:bg-center hp:bg-black';\n return pane;\n }\n\n private navBtn(iconName: string, label: string): HTMLButtonElement {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.setAttribute('aria-label', label);\n btn.className =\n 'hp:flex hp:items-center hp:justify-center hp:w-8 hp:h-8 hp:rounded-full hp:bg-black/40 hp:text-white hp:border-0 hp:cursor-pointer';\n btn.appendChild(createIcon(iconName, 'hp:text-sm'));\n return btn;\n }\n\n private fillPane(dir: Dir, item: PlayableItem | undefined): void {\n const pane = dir === 'next' ? this.els.paneNext : this.els.panePrev;\n const img = item?.image || '';\n pane.style.backgroundImage = img ? `url(\"${img}\")` : 'none';\n }\n\n private animate(dir: Dir): Promise<void> {\n const track = this.els.track;\n return new Promise((resolve) => {\n let done = false;\n const finish = () => {\n if (done) return;\n done = true;\n track.removeEventListener('transitionend', finish);\n clearTimeout(timer);\n track.style.transition = 'none';\n track.style.transform = 'translate3d(0,-33.3333%,0)';\n void track.offsetHeight;\n track.style.transition = `transform ${this.options.transitionMs}ms ease`;\n resolve();\n };\n track.addEventListener('transitionend', finish);\n const timer = setTimeout(finish, this.options.transitionMs + 120);\n track.style.transform = dir === 'next' ? 'translate3d(0,-66.6667%,0)' : 'translate3d(0,0,0)';\n });\n }\n\n // ── source / playback ──\n\n private async loadItem(i: number, opts: { userInitiated?: boolean; isStart?: boolean } = {}): Promise<void> {\n const item = this.items[i];\n if (!item) return;\n\n const mode = this.resolveMode(item);\n const payload = this.buildPayload(item, mode);\n if (!payload) return;\n\n this.ctx.videoEl.pause();\n if (item.image) this.ctx.setPoster(item.image);\n await this.ctx.loadSource(payload.src, payload.type);\n\n if (this.options.adsOnItemChange && this.lastAdsIndex !== i) {\n this.lastAdsIndex = i;\n this.ctx.requestFreshAd(item.adTagPreroll || this.rawOptions.adTagPreroll);\n }\n\n if (this.shouldAutoPlay(opts)) {\n try {\n await this.ctx.videoEl.play();\n } catch {\n /* autoplay engellendi */\n }\n }\n }\n\n private shouldAutoPlay({ userInitiated, isStart }: { userInitiated?: boolean; isStart?: boolean }): boolean {\n if (isStart) return !!this.ctx.videoEl.autoplay;\n if (userInitiated) return true;\n return this.options.autoplayNext && this.userHasStartedPlayback;\n }\n\n private resolveMode(item: PlayableItem): 'hls' | 'mp4' {\n const hasHls = this.hasMode(item, 'hls');\n const hasMp4 = this.hasMode(item, 'mp4');\n if (this.options.preferHls) return hasHls ? 'hls' : hasMp4 ? 'mp4' : 'hls';\n return hasMp4 ? 'mp4' : hasHls ? 'hls' : 'mp4';\n }\n\n private hasMode(item: PlayableItem, mode: 'hls' | 'mp4'): boolean {\n return Array.isArray(item[mode]) && item[mode]!.some((v) => v?.src);\n }\n\n private buildPayload(item: PlayableItem, mode: 'hls' | 'mp4'): { src: string; type?: string } | null {\n const list = (item[mode] || []).filter((v) => v?.src);\n if (!list.length) return null;\n const src = mode === 'mp4' ? list.find((v) => v.selected) || list[0] : list[0];\n return { src: src!.src, type: src!.type || (mode === 'hls' ? 'application/x-mpegURL' : 'video/mp4') };\n }\n\n // ── preload ──\n\n private preloadNeighbours(): void {\n const nav = navigator as Navigator & { connection?: { saveData?: boolean } };\n if (nav.connection?.saveData) return;\n\n [this.wrapIndex(this.index + 1), this.wrapIndex(this.index - 1)].forEach((i) => {\n if (i === this.index) return;\n const item = this.items[i];\n if (item?.image) {\n const img = new Image();\n img.decoding = 'async';\n img.src = item.image;\n }\n });\n }\n\n // ── ui sync ──\n\n private syncUi(): void {\n const item = this.items[this.index];\n const total = this.items.length;\n\n if (this.uiOpts.counter) this.els.counter.textContent = `${this.index + 1} / ${total}`;\n if (this.uiOpts.title) this.els.titleEl.textContent = item?.title || '';\n if (this.uiOpts.spot) this.els.spotEl.textContent = item?.spot || '';\n\n this.fillPane('prev', this.items[this.wrapIndex(this.index - 1)]);\n this.fillPane('next', this.items[this.wrapIndex(this.index + 1)]);\n\n const atStart = !this.options.loop && this.index === 0;\n const atEnd = !this.options.loop && this.index === total - 1;\n this.els.upBtn.disabled = atStart;\n this.els.downBtn.disabled = atEnd;\n\n if (this.uiOpts.dots) {\n if (this.els.dots.children.length !== total) {\n this.els.dots.innerHTML = '';\n for (let i = 0; i < total; i++) {\n const dot = document.createElement('i');\n dot.className = 'hp:block hp:w-1 hp:h-1 hp:rounded-full hp:bg-white/40';\n this.els.dots.appendChild(dot);\n }\n }\n Array.from(this.els.dots.children).forEach((el, i) => {\n (el as HTMLElement).className = `hp:block hp:w-1 hp:h-1 hp:rounded-full ${i === this.index ? 'hp:bg-white' : 'hp:bg-white/40'}`;\n });\n }\n\n this.setActiveThumb();\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:itemchange', { detail: { index: this.index, source: 'story' } }));\n }\n\n private renderList(grid: HTMLElement): void {\n grid.innerHTML = '';\n this.items.forEach((item, i) => {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.className = 'hp:flex hp:items-center hp:gap-2 hp:w-full hp:p-1.5 hp:rounded hp:text-left hp:text-on-surface hp:bg-transparent hp:border-0 hp:cursor-pointer hp:hover:bg-on-surface/5';\n btn.dataset.index = String(i);\n if (item.image) {\n const img = document.createElement('img');\n img.src = item.image;\n img.loading = 'lazy';\n img.className = 'hp:w-14 hp:aspect-[9/16] hp:object-cover hp:rounded hp:shrink-0';\n btn.appendChild(img);\n }\n const title = document.createElement('span');\n title.className = 'hp:text-xs hp:truncate';\n title.textContent = item.title || this.ctx.i18n.videoFallbackTitle(i);\n btn.appendChild(title);\n btn.addEventListener('click', () => {\n this.toggleList(false);\n void this.goTo(i);\n });\n grid.appendChild(btn);\n });\n }\n\n private setActiveThumb(): void {\n Array.from(this.els.grid.children).forEach((el, i) => {\n el.classList.toggle('hp:bg-accent/15', i === this.index);\n });\n }\n\n // ── events ──\n\n private bindEvents(): void {\n this.ctx.videoEl.addEventListener('ended', this.onEnded);\n this.ctx.videoEl.addEventListener('playing', this.onPlaying);\n this.ctx.videoEl.addEventListener('play', this.onFirstPlay);\n if (this.uiOpts.progress) this.ctx.videoEl.addEventListener('timeupdate', this.onTimeUpdate);\n\n this.els.upBtn.addEventListener('click', () => this.prev());\n this.els.downBtn.addEventListener('click', () => this.next());\n this.els.listBtn.addEventListener('click', () => this.toggleList());\n\n this.els.grid.parentElement?.addEventListener('keydown', (e) => {\n if ((e as KeyboardEvent).key === 'Escape') this.toggleList(false);\n });\n\n if (this.gestureOpts.wheel) this.els.viewport.addEventListener('wheel', this.onWheel, { passive: false });\n if (this.gestureOpts.swipe) {\n this.els.viewport.addEventListener('pointerdown', this.onPointerDown);\n window.addEventListener('pointermove', this.onPointerMove, { passive: false });\n window.addEventListener('pointerup', this.onPointerUp);\n }\n if (this.gestureOpts.keyboard) document.addEventListener('keydown', this.onKeyDown);\n }\n\n private readonly onEnded = (): void => {\n if (!this.options.autoplayNext) return;\n if (!this.options.loop && this.index === this.items.length - 1) return;\n this.next(false);\n };\n\n private readonly onPlaying = (): void => {};\n\n private readonly onFirstPlay = (): void => {\n this.userHasStartedPlayback = true;\n };\n\n private readonly onTimeUpdate = (): void => {\n const dur = this.ctx.videoEl.duration || 0;\n const cur = this.ctx.videoEl.currentTime || 0;\n this.els.progressBar.style.width = dur > 0 ? `${Math.min(100, (cur / dur) * 100)}%` : '0%';\n };\n\n private readonly onWheel = (e: WheelEvent): void => {\n if (this.switching) {\n e.preventDefault();\n return;\n }\n const dir: Dir = e.deltaY > 0 ? 'next' : 'prev';\n if (!this.canGo(dir)) return;\n e.preventDefault();\n\n const now = Date.now();\n if (now - this.lastNavAt < this.gestureOpts.wheelCooldownMs) return;\n this.wheelAccum += e.deltaY;\n if (Math.abs(this.wheelAccum) < this.gestureOpts.wheelThreshold) return;\n this.wheelAccum = 0;\n this.lastNavAt = now;\n dir === 'next' ? this.next() : this.prev();\n };\n\n private readonly onPointerDown = (e: PointerEvent): void => {\n if (this.switching || this.listOpen) return;\n if (e.pointerType === 'mouse' && e.button !== 0) return;\n this.drag = { startY: e.clientY, startX: e.clientX, dy: 0, active: false, id: e.pointerId };\n };\n\n private readonly onPointerMove = (e: PointerEvent): void => {\n const drag = this.drag;\n if (!drag || e.pointerId !== drag.id) return;\n const dy = e.clientY - drag.startY;\n const dx = e.clientX - drag.startX;\n\n if (!drag.active) {\n if (Math.abs(dy) < 10 || Math.abs(dy) < Math.abs(dx)) return;\n drag.active = true;\n this.els.track.style.transition = 'none';\n }\n e.preventDefault();\n\n const h = this.els.viewport.clientHeight || 1;\n const resisted = this.canGo(dy < 0 ? 'next' : 'prev') ? dy : dy * 0.25;\n drag.dy = resisted;\n\n const pct = -33.3333 + (resisted / h) * 33.3333;\n this.els.track.style.transform = `translate3d(0, ${pct}%, 0)`;\n };\n\n private readonly onPointerUp = (): void => {\n const drag = this.drag;\n this.drag = null;\n if (!drag?.active) return;\n\n const h = this.els.viewport.clientHeight || 1;\n const ratio = Math.abs(drag.dy) / h;\n const dir: Dir = drag.dy < 0 ? 'next' : 'prev';\n\n this.els.track.style.transition = `transform ${this.options.transitionMs}ms ease`;\n if (ratio >= this.gestureOpts.swipeThreshold && this.canGo(dir)) {\n this.els.track.style.transform = 'translate3d(0,-33.3333%,0)';\n dir === 'next' ? this.next() : this.prev();\n } else {\n this.els.track.style.transform = 'translate3d(0,-33.3333%,0)';\n }\n };\n\n private readonly onKeyDown = (e: KeyboardEvent): void => {\n if (this.destroyed) return;\n if (e.key === 'Escape' && this.listOpen) {\n this.toggleList(false);\n return;\n }\n const tag = document.activeElement?.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA') return;\n if (!this.isInViewport()) return;\n\n if (e.key === 'ArrowDown' || e.key === 'PageDown' || e.key === 'j') {\n e.preventDefault();\n this.next();\n } else if (e.key === 'ArrowUp' || e.key === 'PageUp' || e.key === 'k') {\n e.preventDefault();\n this.prev();\n }\n };\n\n // ── helpers ──\n\n private canGo(dir: Dir): boolean {\n if (this.options.loop) return this.items.length > 1;\n return dir === 'next' ? this.index < this.items.length - 1 : this.index > 0;\n }\n\n private isInViewport(): boolean {\n const r = this.ctx.hostEl.getBoundingClientRect();\n return r.bottom > 0 && r.top < (window.innerHeight || 0);\n }\n\n private clamp(i: number): number {\n if (!Number.isFinite(i) || !this.items.length) return 0;\n return Math.max(0, Math.min(this.items.length - 1, Math.trunc(i)));\n }\n\n private wrapIndex(i: number): number {\n const n = this.items.length;\n if (!n) return 0;\n if (this.options.loop) return ((i % n) + n) % n;\n return this.clamp(i);\n }\n}\n","import { HopeStory, type StoryPlayerContext } from './HopeStory';\nimport type { StoryOptions } from '../../types';\n\nexport function installStory(ctx: StoryPlayerContext, options: StoryOptions): HopeStory {\n return new HopeStory(ctx, options);\n}\n\nexport { HopeStory };\nexport type { StoryPlayerContext };\n"],"names":["DEFAULTS","HopeStory","ctx","rawOptions","__publicField","dur","cur","e","dir","now","drag","dy","dx","h","resisted","pct","ratio","tag","_a","el","userInitiated","target","direction","pending","force","viewport","track","panePrev","paneCurrent","paneNext","overlay","progressBar","progressFill","meta","counter","titleEl","spotEl","dots","navWrap","upBtn","downBtn","listBtn","createIcon","panel","grid","pane","iconName","label","btn","item","img","resolve","done","finish","timer","i","opts","mode","payload","isStart","hasHls","hasMp4","v","list","src","total","atStart","atEnd","dot","title","r","n","installStory","options"],"mappings":"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"}
1
+ {"version":3,"file":"story-BRkhSDhR.js","sources":["../../src/plugins/story/HopeStory.ts","../../src/plugins/story/index.ts"],"sourcesContent":["import { createIcon } from '../../icons/Icon';\nimport type { PlayableItem, StoryOptions } from '../../types';\nimport type { HopeLocaleStrings } from '../../i18n/types';\n\nexport interface StoryPlayerContext {\n videoEl: HTMLVideoElement;\n hostEl: HTMLElement;\n /** .video-area — story aktifken 9:16'ya çevrilir (data-story attribute ile), destroy'da geri alınır. */\n videoAreaEl: HTMLElement;\n /** Gerçek player gövdesi (.media-layer + chrome + center-play-button) — orta pane'e taşınır, destroy'da geri alınır. */\n playerBodyEls: HTMLElement[];\n loadSource(src: string, type?: string): Promise<void>;\n setPoster(url: string): void;\n requestFreshAd(prerollTag?: string): void;\n i18n: HopeLocaleStrings;\n}\n\ntype Dir = 'next' | 'prev';\n\nconst DEFAULTS: Required<Omit<StoryOptions, 'items' | 'adTagPreroll' | 'gestures' | 'ui'>> = {\n startIndex: 0,\n loop: true,\n autoplayNext: true,\n preferHls: true,\n transitionMs: 380,\n adsOnItemChange: true,\n};\n\n/** Dikey video akışı (Shorts/Story): tek <video>, item değişiminde kaynak değişir. */\nexport class HopeStory {\n private readonly options: Required<Omit<StoryOptions, 'items' | 'adTagPreroll' | 'gestures' | 'ui'>>;\n private readonly gestureOpts: Required<NonNullable<StoryOptions['gestures']>>;\n private readonly uiOpts: Required<NonNullable<StoryOptions['ui']>>;\n private readonly items: PlayableItem[];\n\n private index: number;\n private destroyed = false;\n private switching = false;\n /** Geçiş sürerken gelen buton / klavye isteği — yok sayılmaz, geçiş bitince uygulanır (yalnızca sonuncusu). */\n private pendingNav: { dir: Dir; userInitiated: boolean } | null = null;\n private listOpen = false;\n private userHasStartedPlayback = false;\n private lastAdsIndex: number | null = null;\n private wheelAccum = 0;\n private lastNavAt = 0;\n private drag: { startY: number; startX: number; dy: number; active: boolean; id: number } | null = null;\n\n private readonly els: {\n viewport: HTMLElement;\n track: HTMLElement;\n panePrev: HTMLElement;\n paneCurrent: HTMLElement;\n paneNext: HTMLElement;\n overlay: HTMLElement;\n counter: HTMLElement;\n titleEl: HTMLElement;\n spotEl: HTMLElement;\n dots: HTMLElement;\n progressBar: HTMLElement;\n upBtn: HTMLButtonElement;\n downBtn: HTMLButtonElement;\n listBtn: HTMLButtonElement;\n panel: HTMLElement;\n grid: HTMLElement;\n };\n\n constructor(\n private readonly ctx: StoryPlayerContext,\n private readonly rawOptions: StoryOptions\n ) {\n this.options = { ...DEFAULTS, ...rawOptions };\n this.gestureOpts = {\n swipe: true,\n swipeThreshold: 0.12,\n wheel: true,\n wheelThreshold: 42,\n wheelCooldownMs: 620,\n keyboard: true,\n ...rawOptions.gestures,\n };\n this.uiOpts = { counter: true, title: true, spot: true, dots: true, progress: true, ...rawOptions.ui };\n this.items = Array.isArray(rawOptions.items) ? rawOptions.items : [];\n this.index = this.clamp(this.options.startIndex);\n\n this.els = this.buildDom();\n this.bindEvents();\n this.syncUi();\n this.preloadNeighbours();\n\n if (this.items.length) void this.loadItem(this.index, { isStart: true });\n }\n\n refreshLabels(): void {\n this.els.upBtn.setAttribute('aria-label', this.ctx.i18n.storyPrev);\n this.els.downBtn.setAttribute('aria-label', this.ctx.i18n.storyNext);\n this.els.listBtn.setAttribute('aria-label', this.ctx.i18n.storyAllVideos);\n this.renderList(this.els.grid);\n }\n\n destroy(): void {\n if (this.destroyed) return;\n this.destroyed = true;\n\n this.ctx.videoEl.removeEventListener('ended', this.onEnded);\n this.ctx.videoEl.removeEventListener('playing', this.onPlaying);\n this.ctx.videoEl.removeEventListener('play', this.onFirstPlay);\n this.ctx.videoEl.removeEventListener('timeupdate', this.onTimeUpdate);\n this.els.viewport.removeEventListener('wheel', this.onWheel);\n this.els.viewport.removeEventListener('pointerdown', this.onPointerDown);\n window.removeEventListener('pointermove', this.onPointerMove);\n window.removeEventListener('pointerup', this.onPointerUp);\n document.removeEventListener('keydown', this.onKeyDown);\n\n // player gövdesini .video-area'ya geri taşı, story DOM'unu kaldır.\n this.ctx.playerBodyEls.forEach((el) => this.ctx.videoAreaEl.appendChild(el));\n this.ctx.videoAreaEl.removeAttribute('data-story');\n this.els.viewport.remove();\n this.els.panel.remove();\n }\n\n // ── public api ──\n\n next(userInitiated = true): void {\n if (this.switching) {\n this.pendingNav = { dir: 'next', userInitiated };\n return;\n }\n const target = this.index + 1;\n if (target >= this.items.length) {\n if (!this.options.loop) return;\n void this.goTo(0, 'next', userInitiated);\n return;\n }\n void this.goTo(target, 'next', userInitiated);\n }\n\n prev(userInitiated = true): void {\n if (this.switching) {\n this.pendingNav = { dir: 'prev', userInitiated };\n return;\n }\n const target = this.index - 1;\n if (target < 0) {\n if (!this.options.loop) return;\n void this.goTo(this.items.length - 1, 'prev', userInitiated);\n return;\n }\n void this.goTo(target, 'prev', userInitiated);\n }\n\n async goTo(target: number, direction: Dir | null = null, userInitiated = true): Promise<void> {\n if (this.destroyed || this.switching) return;\n const i = this.clamp(target);\n if (i === this.index) return;\n\n const dir = direction || (i > this.index ? 'next' : 'prev');\n this.switching = true;\n try {\n this.fillPane(dir, this.items[i]);\n await this.animate(dir);\n this.index = i;\n this.syncUi();\n await this.loadItem(i, { userInitiated });\n this.preloadNeighbours();\n } finally {\n this.switching = false;\n }\n // Hızlı art arda dokunuş (ör. iki kez \"önceki\"): ikincisi kaybolmasın — hedef şimdiki konumdan hesaplanır.\n const pending = this.pendingNav;\n this.pendingNav = null;\n if (pending && !this.destroyed) pending.dir === 'next' ? this.next(pending.userInitiated) : this.prev(pending.userInitiated);\n }\n\n toggleList(force?: boolean): void {\n this.listOpen = typeof force === 'boolean' ? force : !this.listOpen;\n this.els.panel.setAttribute('aria-hidden', this.listOpen ? 'false' : 'true');\n this.els.listBtn.setAttribute('aria-expanded', this.listOpen ? 'true' : 'false');\n // translate-x/-y utility yerine inline transform: Shadow DOM'da tek eksenli Tailwind translate 'none' oluyor.\n this.els.panel.style.transform = this.listOpen ? 'translateX(0)' : 'translateX(100%)';\n }\n\n // ── dom ──\n\n private buildDom() {\n this.ctx.videoAreaEl.setAttribute('data-story', '1');\n\n const viewport = document.createElement('div');\n viewport.className = 'hp:absolute hp:inset-0 hp:overflow-hidden hp:touch-none';\n viewport.setAttribute('tabindex', '0');\n\n const track = document.createElement('div');\n track.className = 'hp:relative hp:w-full';\n track.style.height = '300%';\n track.style.transform = 'translate3d(0,-33.3333%,0)';\n track.style.transition = `transform ${this.options.transitionMs}ms ease`;\n\n const panePrev = this.createPane();\n const paneCurrent = document.createElement('div');\n paneCurrent.className = 'hp:absolute hp:inset-x-0 hp:h-1/3';\n paneCurrent.style.top = '33.3333%';\n const paneNext = this.createPane();\n paneNext.style.top = '66.6667%';\n\n // Gerçek player gövdesini orta pane'e taşı.\n this.ctx.playerBodyEls.forEach((el) => paneCurrent.appendChild(el));\n\n track.append(panePrev, paneCurrent, paneNext);\n viewport.appendChild(track);\n\n const overlay = document.createElement('div');\n overlay.className = 'hp:absolute hp:inset-0 hp:z-20 hp:pointer-events-none hp:flex hp:flex-col hp:justify-between hp:p-3';\n\n const progressBar = document.createElement('div');\n progressBar.className = 'hp:h-0.5 hp:bg-white/30 hp:rounded-full hp:overflow-hidden';\n const progressFill = document.createElement('div');\n progressFill.className = 'hp:h-full hp:bg-accent hp:w-0';\n progressBar.appendChild(progressFill);\n\n const meta = document.createElement('div');\n meta.className = 'hp:flex hp:flex-col hp:gap-0.5 hp:text-white hp:drop-shadow hp:mt-2 hp:pointer-events-auto';\n const counter = document.createElement('span');\n counter.setAttribute('part', 'story-counter');\n counter.className = 'hp:text-xs hp:opacity-80';\n const titleEl = document.createElement('strong');\n titleEl.className = 'hp:text-sm';\n const spotEl = document.createElement('span');\n spotEl.className = 'hp:text-xs hp:opacity-80';\n meta.append(counter, titleEl, spotEl);\n\n const dots = document.createElement('div');\n dots.className = 'hp:absolute hp:right-2 hp:top-1/2 hp-center-y hp:flex hp:flex-col hp:gap-1 hp:pointer-events-none';\n\n const navWrap = document.createElement('div');\n navWrap.className = 'hp:flex hp:flex-col hp:gap-2 hp:self-end hp:pointer-events-auto hp:mb-16';\n const upBtn = this.navBtn('chevron-left', this.ctx.i18n.storyPrev);\n upBtn.style.transform = 'rotate(90deg)';\n const downBtn = this.navBtn('chevron-left', this.ctx.i18n.storyNext);\n downBtn.style.transform = 'rotate(-90deg)';\n navWrap.append(upBtn, downBtn);\n\n const listBtn = document.createElement('button');\n listBtn.type = 'button';\n listBtn.setAttribute('aria-label', this.ctx.i18n.storyAllVideos);\n listBtn.setAttribute('aria-expanded', 'false');\n // Konum tailwind.css `.hp-story-list-btn` — dar (dikey) player'da üst bara (ayarlar/PiP) taşınan butonların altında.\n listBtn.className =\n 'hp-story-list-btn hp:absolute hp:flex hp:items-center hp:justify-center hp:w-9 hp:h-9 hp:rounded-full ' +\n 'hp:bg-black/40 hp:text-white hp:border-0 hp:cursor-pointer hp:pointer-events-auto';\n listBtn.setAttribute('part', 'story-list-button');\n listBtn.appendChild(createIcon('grid', 'hp:text-base'));\n\n overlay.append(progressBar, meta, dots, navWrap, listBtn);\n\n const panel = document.createElement('aside');\n panel.className =\n 'hp:absolute hp:inset-y-0 hp:right-0 hp:w-72 hp:max-w-[80%] hp:bg-surface-elev hp:z-30 hp:overflow-y-auto hp:p-3 ' +\n 'hp:transition-transform hp:duration-300';\n panel.style.transform = 'translateX(100%)';\n panel.setAttribute('aria-hidden', 'true');\n const grid = document.createElement('div');\n grid.className = 'hp:flex hp:flex-col hp:gap-2 hp:mt-8';\n panel.appendChild(grid);\n\n this.ctx.videoAreaEl.append(viewport, overlay, panel);\n\n this.renderList(grid);\n\n return {\n viewport, track, panePrev, paneCurrent, paneNext, overlay,\n counter, titleEl, spotEl, dots, progressBar: progressFill,\n upBtn, downBtn, listBtn, panel, grid,\n };\n }\n\n private createPane(): HTMLElement {\n const pane = document.createElement('div');\n pane.className = 'hp:absolute hp:inset-x-0 hp:h-1/3 hp:bg-cover hp:bg-center hp:bg-black';\n return pane;\n }\n\n private navBtn(iconName: string, label: string): HTMLButtonElement {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.setAttribute('aria-label', label);\n btn.className =\n 'hp:flex hp:items-center hp:justify-center hp:w-8 hp:h-8 hp:rounded-full hp:bg-black/40 hp:text-white hp:border-0 hp:cursor-pointer';\n btn.appendChild(createIcon(iconName, 'hp:text-sm'));\n return btn;\n }\n\n private fillPane(dir: Dir, item: PlayableItem | undefined): void {\n const pane = dir === 'next' ? this.els.paneNext : this.els.panePrev;\n const img = item?.image || '';\n pane.style.backgroundImage = img ? `url(\"${img}\")` : 'none';\n }\n\n private animate(dir: Dir): Promise<void> {\n const track = this.els.track;\n return new Promise((resolve) => {\n let done = false;\n const finish = () => {\n if (done) return;\n done = true;\n track.removeEventListener('transitionend', finish);\n clearTimeout(timer);\n track.style.transition = 'none';\n track.style.transform = 'translate3d(0,-33.3333%,0)';\n void track.offsetHeight;\n track.style.transition = `transform ${this.options.transitionMs}ms ease`;\n resolve();\n };\n track.addEventListener('transitionend', finish);\n const timer = setTimeout(finish, this.options.transitionMs + 120);\n track.style.transform = dir === 'next' ? 'translate3d(0,-66.6667%,0)' : 'translate3d(0,0,0)';\n });\n }\n\n // ── source / playback ──\n\n private async loadItem(i: number, opts: { userInitiated?: boolean; isStart?: boolean } = {}): Promise<void> {\n const item = this.items[i];\n if (!item) return;\n\n const mode = this.resolveMode(item);\n const payload = this.buildPayload(item, mode);\n if (!payload) return;\n\n this.ctx.videoEl.pause();\n if (item.image) this.ctx.setPoster(item.image);\n await this.ctx.loadSource(payload.src, payload.type);\n\n if (this.options.adsOnItemChange && this.lastAdsIndex !== i) {\n this.lastAdsIndex = i;\n this.ctx.requestFreshAd(item.adTagPreroll || this.rawOptions.adTagPreroll);\n }\n\n if (this.shouldAutoPlay(opts)) {\n try {\n await this.ctx.videoEl.play();\n } catch {\n /* autoplay engellendi */\n }\n }\n }\n\n private shouldAutoPlay({ userInitiated, isStart }: { userInitiated?: boolean; isStart?: boolean }): boolean {\n if (isStart) return !!this.ctx.videoEl.autoplay;\n if (userInitiated) return true;\n return this.options.autoplayNext && this.userHasStartedPlayback;\n }\n\n private resolveMode(item: PlayableItem): 'hls' | 'mp4' {\n const hasHls = this.hasMode(item, 'hls');\n const hasMp4 = this.hasMode(item, 'mp4');\n if (this.options.preferHls) return hasHls ? 'hls' : hasMp4 ? 'mp4' : 'hls';\n return hasMp4 ? 'mp4' : hasHls ? 'hls' : 'mp4';\n }\n\n private hasMode(item: PlayableItem, mode: 'hls' | 'mp4'): boolean {\n return Array.isArray(item[mode]) && item[mode]!.some((v) => v?.src);\n }\n\n private buildPayload(item: PlayableItem, mode: 'hls' | 'mp4'): { src: string; type?: string } | null {\n const list = (item[mode] || []).filter((v) => v?.src);\n if (!list.length) return null;\n const src = mode === 'mp4' ? list.find((v) => v.selected) || list[0] : list[0];\n return { src: src!.src, type: src!.type || (mode === 'hls' ? 'application/x-mpegURL' : 'video/mp4') };\n }\n\n // ── preload ──\n\n private preloadNeighbours(): void {\n const nav = navigator as Navigator & { connection?: { saveData?: boolean } };\n if (nav.connection?.saveData) return;\n\n [this.wrapIndex(this.index + 1), this.wrapIndex(this.index - 1)].forEach((i) => {\n if (i === this.index) return;\n const item = this.items[i];\n if (item?.image) {\n const img = new Image();\n img.decoding = 'async';\n img.src = item.image;\n }\n });\n }\n\n // ── ui sync ──\n\n private syncUi(): void {\n const item = this.items[this.index];\n const total = this.items.length;\n\n if (this.uiOpts.counter) this.els.counter.textContent = `${this.index + 1} / ${total}`;\n if (this.uiOpts.title) this.els.titleEl.textContent = item?.title || '';\n if (this.uiOpts.spot) this.els.spotEl.textContent = item?.spot || '';\n\n this.fillPane('prev', this.items[this.wrapIndex(this.index - 1)]);\n this.fillPane('next', this.items[this.wrapIndex(this.index + 1)]);\n\n const atStart = !this.options.loop && this.index === 0;\n const atEnd = !this.options.loop && this.index === total - 1;\n this.els.upBtn.disabled = atStart;\n this.els.downBtn.disabled = atEnd;\n\n if (this.uiOpts.dots) {\n if (this.els.dots.children.length !== total) {\n this.els.dots.innerHTML = '';\n for (let i = 0; i < total; i++) {\n const dot = document.createElement('i');\n dot.className = 'hp:block hp:w-1 hp:h-1 hp:rounded-full hp:bg-white/40';\n this.els.dots.appendChild(dot);\n }\n }\n Array.from(this.els.dots.children).forEach((el, i) => {\n (el as HTMLElement).className = `hp:block hp:w-1 hp:h-1 hp:rounded-full ${i === this.index ? 'hp:bg-white' : 'hp:bg-white/40'}`;\n });\n }\n\n this.setActiveThumb();\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:itemchange', { detail: { index: this.index, source: 'story' } }));\n }\n\n private renderList(grid: HTMLElement): void {\n grid.innerHTML = '';\n this.items.forEach((item, i) => {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.className = 'hp:flex hp:items-center hp:gap-2 hp:w-full hp:p-1.5 hp:rounded hp:text-left hp:text-on-surface hp:bg-transparent hp:border-0 hp:cursor-pointer hp:hover:bg-on-surface/5';\n btn.dataset.index = String(i);\n if (item.image) {\n const img = document.createElement('img');\n img.src = item.image;\n img.loading = 'lazy';\n img.className = 'hp:w-14 hp:aspect-[9/16] hp:object-cover hp:rounded hp:shrink-0';\n btn.appendChild(img);\n }\n const title = document.createElement('span');\n title.className = 'hp:text-xs hp:truncate';\n title.textContent = item.title || this.ctx.i18n.videoFallbackTitle(i);\n btn.appendChild(title);\n btn.addEventListener('click', () => {\n this.toggleList(false);\n void this.goTo(i);\n });\n grid.appendChild(btn);\n });\n }\n\n private setActiveThumb(): void {\n Array.from(this.els.grid.children).forEach((el, i) => {\n el.classList.toggle('hp:bg-accent/15', i === this.index);\n });\n }\n\n // ── events ──\n\n private bindEvents(): void {\n this.ctx.videoEl.addEventListener('ended', this.onEnded);\n this.ctx.videoEl.addEventListener('playing', this.onPlaying);\n this.ctx.videoEl.addEventListener('play', this.onFirstPlay);\n if (this.uiOpts.progress) this.ctx.videoEl.addEventListener('timeupdate', this.onTimeUpdate);\n\n this.els.upBtn.addEventListener('click', () => this.prev());\n this.els.downBtn.addEventListener('click', () => this.next());\n this.els.listBtn.addEventListener('click', () => this.toggleList());\n\n this.els.grid.parentElement?.addEventListener('keydown', (e) => {\n if ((e as KeyboardEvent).key === 'Escape') this.toggleList(false);\n });\n\n if (this.gestureOpts.wheel) this.els.viewport.addEventListener('wheel', this.onWheel, { passive: false });\n if (this.gestureOpts.swipe) {\n this.els.viewport.addEventListener('pointerdown', this.onPointerDown);\n window.addEventListener('pointermove', this.onPointerMove, { passive: false });\n window.addEventListener('pointerup', this.onPointerUp);\n }\n if (this.gestureOpts.keyboard) document.addEventListener('keydown', this.onKeyDown);\n }\n\n private readonly onEnded = (): void => {\n if (!this.options.autoplayNext) return;\n if (!this.options.loop && this.index === this.items.length - 1) return;\n this.next(false);\n };\n\n private readonly onPlaying = (): void => {};\n\n private readonly onFirstPlay = (): void => {\n this.userHasStartedPlayback = true;\n };\n\n private readonly onTimeUpdate = (): void => {\n const dur = this.ctx.videoEl.duration || 0;\n const cur = this.ctx.videoEl.currentTime || 0;\n this.els.progressBar.style.width = dur > 0 ? `${Math.min(100, (cur / dur) * 100)}%` : '0%';\n };\n\n private readonly onWheel = (e: WheelEvent): void => {\n if (this.switching) {\n e.preventDefault();\n return;\n }\n const dir: Dir = e.deltaY > 0 ? 'next' : 'prev';\n if (!this.canGo(dir)) return;\n e.preventDefault();\n\n const now = Date.now();\n if (now - this.lastNavAt < this.gestureOpts.wheelCooldownMs) return;\n this.wheelAccum += e.deltaY;\n if (Math.abs(this.wheelAccum) < this.gestureOpts.wheelThreshold) return;\n this.wheelAccum = 0;\n this.lastNavAt = now;\n dir === 'next' ? this.next() : this.prev();\n };\n\n private readonly onPointerDown = (e: PointerEvent): void => {\n if (this.switching || this.listOpen) return;\n if (e.pointerType === 'mouse' && e.button !== 0) return;\n this.drag = { startY: e.clientY, startX: e.clientX, dy: 0, active: false, id: e.pointerId };\n };\n\n private readonly onPointerMove = (e: PointerEvent): void => {\n const drag = this.drag;\n if (!drag || e.pointerId !== drag.id) return;\n const dy = e.clientY - drag.startY;\n const dx = e.clientX - drag.startX;\n\n if (!drag.active) {\n if (Math.abs(dy) < 10 || Math.abs(dy) < Math.abs(dx)) return;\n drag.active = true;\n this.els.track.style.transition = 'none';\n }\n e.preventDefault();\n\n const h = this.els.viewport.clientHeight || 1;\n const resisted = this.canGo(dy < 0 ? 'next' : 'prev') ? dy : dy * 0.25;\n drag.dy = resisted;\n\n const pct = -33.3333 + (resisted / h) * 33.3333;\n this.els.track.style.transform = `translate3d(0, ${pct}%, 0)`;\n };\n\n private readonly onPointerUp = (): void => {\n const drag = this.drag;\n this.drag = null;\n if (!drag?.active) return;\n\n const h = this.els.viewport.clientHeight || 1;\n const ratio = Math.abs(drag.dy) / h;\n const dir: Dir = drag.dy < 0 ? 'next' : 'prev';\n\n this.els.track.style.transition = `transform ${this.options.transitionMs}ms ease`;\n if (ratio >= this.gestureOpts.swipeThreshold && this.canGo(dir)) {\n this.els.track.style.transform = 'translate3d(0,-33.3333%,0)';\n dir === 'next' ? this.next() : this.prev();\n } else {\n this.els.track.style.transform = 'translate3d(0,-33.3333%,0)';\n }\n };\n\n private readonly onKeyDown = (e: KeyboardEvent): void => {\n if (this.destroyed) return;\n if (e.key === 'Escape' && this.listOpen) {\n this.toggleList(false);\n return;\n }\n const tag = document.activeElement?.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA') return;\n if (!this.isInViewport()) return;\n\n if (e.key === 'ArrowDown' || e.key === 'PageDown' || e.key === 'j') {\n e.preventDefault();\n this.next();\n } else if (e.key === 'ArrowUp' || e.key === 'PageUp' || e.key === 'k') {\n e.preventDefault();\n this.prev();\n }\n };\n\n // ── helpers ──\n\n private canGo(dir: Dir): boolean {\n if (this.options.loop) return this.items.length > 1;\n return dir === 'next' ? this.index < this.items.length - 1 : this.index > 0;\n }\n\n private isInViewport(): boolean {\n const r = this.ctx.hostEl.getBoundingClientRect();\n return r.bottom > 0 && r.top < (window.innerHeight || 0);\n }\n\n private clamp(i: number): number {\n if (!Number.isFinite(i) || !this.items.length) return 0;\n return Math.max(0, Math.min(this.items.length - 1, Math.trunc(i)));\n }\n\n private wrapIndex(i: number): number {\n const n = this.items.length;\n if (!n) return 0;\n if (this.options.loop) return ((i % n) + n) % n;\n return this.clamp(i);\n }\n}\n","import { HopeStory, type StoryPlayerContext } from './HopeStory';\nimport type { StoryOptions } from '../../types';\n\nexport function installStory(ctx: StoryPlayerContext, options: StoryOptions): HopeStory {\n return new HopeStory(ctx, options);\n}\n\nexport { HopeStory };\nexport type { StoryPlayerContext };\n"],"names":["DEFAULTS","HopeStory","ctx","rawOptions","__publicField","dur","cur","e","dir","now","drag","dy","dx","h","resisted","pct","ratio","tag","_a","el","userInitiated","target","direction","pending","force","viewport","track","panePrev","paneCurrent","paneNext","overlay","progressBar","progressFill","meta","counter","titleEl","spotEl","dots","navWrap","upBtn","downBtn","listBtn","createIcon","panel","grid","pane","iconName","label","btn","item","img","resolve","done","finish","timer","i","opts","mode","payload","isStart","hasHls","hasMp4","v","list","src","total","atStart","atEnd","dot","title","r","n","installStory","options"],"mappings":"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"}
@@ -131,6 +131,8 @@ export declare class ControlBar {
131
131
  toggleTimeMode(): void;
132
132
  setShowRemaining(show: boolean): void;
133
133
  getShowRemaining(): boolean;
134
+ /** Eklenti butonu: sol grubun sonu ya da ayarlardan önce. */
135
+ addPluginButton(btn: HTMLButtonElement, position: 'left' | 'right'): void;
134
136
  /** Plugin'lerin (live-wall-clock vb.) kontrol çubuğuna buton olmayan bir element (ör. saat göstergesi) eklemesi için. */
135
137
  addElement(el: HTMLElement): void;
136
138
  private togglePlay;
@@ -1 +1 @@
1
- {"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"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"}
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 +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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"}
@@ -79,6 +79,8 @@ export declare class SettingsMenu {
79
79
  private readonly panelObserver;
80
80
  private currentPanel;
81
81
  private submenus;
82
+ /** Eklenti aç / kapa satırları. */
83
+ private readonly toggles;
82
84
  constructor(video: HTMLVideoElement, playbackRates: number[], labels: HopeLocaleStrings);
83
85
  /**
84
86
  * Ayarlar butonunun sağına hızlı erişim butonu ekler; `def` verilen alt menüyü doğrudan açar (aynı butona tekrar
@@ -111,6 +113,9 @@ export declare class SettingsMenu {
111
113
  setQrResumeToggle(toggle: SettingsToggleRow | null): void;
112
114
  /** Plugin'lerin (ör. dubbing) ana menüye kendi satır + alt menüsünü eklemesi için. */
113
115
  registerSubmenu(def: SettingsSubmenuDef): void;
116
+ /** Aç / kapa satırı ekler (aynı anahtar yerine geçer). */
117
+ registerToggle(key: string, row: SettingsToggleRow): void;
118
+ unregisterToggle(key: string): void;
114
119
  unregisterSubmenu(key: string): void;
115
120
  private toggle;
116
121
  private openMenu;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sourceGroups.d.ts","sourceRoot":"","sources":["../../src/hls/sourceGroups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGnE,wGAAwG;AACxG,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAgBD,2HAA2H;AAC3H,wBAAgB,YAAY,CAAC,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAUlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAe/G;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAQ/E"}
1
+ {"version":3,"file":"sourceGroups.d.ts","sourceRoot":"","sources":["../../src/hls/sourceGroups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGnE,wGAAwG;AACxG,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAgBD,2HAA2H;AAC3H,wBAAgB,YAAY,CAAC,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAUlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAe/G;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAY/E"}
@@ -1,6 +1,9 @@
1
- import { H as E, a as o } from "./chunks/player-BVkwkn4b.js";
1
+ import { H as a, a as r, P as s, d as E, r as i } from "./chunks/player-DV4Hf5Cw.js";
2
2
  export {
3
- E as HOPE_PLAYER_VERSION,
4
- o as HopePlayerElement
3
+ a as HOPE_PLAYER_VERSION,
4
+ r as HopePlayerElement,
5
+ s as PLUGIN_API_VERSION,
6
+ E as definePlugin,
7
+ i as registerPlugin
5
8
  };
6
9
  //# sourceMappingURL=hope-player.js.map
@@ -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,iBA0JhB,CAAC"}
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,iBA4JhB,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,iBA0JhB,CAAC"}
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,iBA4JhB,CAAC"}
@@ -84,6 +84,8 @@ export interface HopeLocaleStrings {
84
84
  errorNetwork: string;
85
85
  errorDecode: string;
86
86
  errorSrcNotSupported: string;
87
+ /** Lisans alınamadı / şifreli içerik bu cihazda oynatılamıyor (kod 5). */
88
+ errorDrm: string;
87
89
  errorGeneric: string;
88
90
  /** Hata ekranındaki kod satırının öneki (ör. "Hata kodu 4"). */
89
91
  errorCode: string;
@@ -130,6 +132,7 @@ export interface HopeLocaleStrings {
130
132
  a11yKeyVolume: string;
131
133
  a11yKeyMute: string;
132
134
  a11yKeyFullscreen: string;
135
+ a11yKeyFrame: string;
133
136
  a11yKeyZoom: string;
134
137
  a11yKeyPan: string;
135
138
  a11yKeyShortcuts: string;
@@ -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,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,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,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,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,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,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,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,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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"}