@editframe/elements 0.16.8-beta.0 → 0.18.3-beta.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 (267) hide show
  1. package/README.md +30 -0
  2. package/dist/DecoderResetFrequency.test.d.ts +1 -0
  3. package/dist/DecoderResetRecovery.test.d.ts +1 -0
  4. package/dist/DelayedLoadingState.d.ts +48 -0
  5. package/dist/DelayedLoadingState.integration.test.d.ts +1 -0
  6. package/dist/DelayedLoadingState.js +113 -0
  7. package/dist/DelayedLoadingState.test.d.ts +1 -0
  8. package/dist/EF_FRAMEGEN.d.ts +10 -1
  9. package/dist/EF_FRAMEGEN.js +199 -179
  10. package/dist/EF_INTERACTIVE.js +2 -6
  11. package/dist/EF_RENDERING.js +1 -3
  12. package/dist/LoadingDebounce.test.d.ts +1 -0
  13. package/dist/LoadingIndicator.browsertest.d.ts +0 -0
  14. package/dist/ManualScrubTest.test.d.ts +1 -0
  15. package/dist/ScrubResolvedFlashing.test.d.ts +1 -0
  16. package/dist/ScrubTrackManager.d.ts +96 -0
  17. package/dist/ScrubTrackManager.test.d.ts +1 -0
  18. package/dist/VideoSeekFlashing.browsertest.d.ts +0 -0
  19. package/dist/VideoStuckDiagnostic.test.d.ts +1 -0
  20. package/dist/elements/CrossUpdateController.js +13 -15
  21. package/dist/elements/EFAudio.browsertest.d.ts +0 -0
  22. package/dist/elements/EFAudio.d.ts +22 -3
  23. package/dist/elements/EFAudio.js +60 -43
  24. package/dist/elements/EFCaptions.js +337 -373
  25. package/dist/elements/EFImage.d.ts +1 -0
  26. package/dist/elements/EFImage.js +73 -91
  27. package/dist/elements/EFMedia/AssetIdMediaEngine.d.ts +18 -0
  28. package/dist/elements/EFMedia/AssetIdMediaEngine.js +41 -0
  29. package/dist/elements/EFMedia/AssetIdMediaEngine.test.d.ts +1 -0
  30. package/dist/elements/EFMedia/AssetMediaEngine.d.ts +47 -0
  31. package/dist/elements/EFMedia/AssetMediaEngine.js +116 -0
  32. package/dist/elements/EFMedia/BaseMediaEngine.d.ts +55 -0
  33. package/dist/elements/EFMedia/BaseMediaEngine.js +96 -0
  34. package/dist/elements/EFMedia/BaseMediaEngine.test.d.ts +1 -0
  35. package/dist/elements/EFMedia/BufferedSeekingInput.browsertest.d.ts +1 -0
  36. package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +43 -0
  37. package/dist/elements/EFMedia/BufferedSeekingInput.js +159 -0
  38. package/dist/elements/EFMedia/JitMediaEngine.browsertest.d.ts +0 -0
  39. package/dist/elements/EFMedia/JitMediaEngine.d.ts +31 -0
  40. package/dist/elements/EFMedia/JitMediaEngine.js +62 -0
  41. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.d.ts +9 -0
  42. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.d.ts +16 -0
  43. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +48 -0
  44. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.d.ts +3 -0
  45. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +138 -0
  46. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.d.ts +9 -0
  47. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.d.ts +4 -0
  48. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +16 -0
  49. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.d.ts +9 -0
  50. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.d.ts +3 -0
  51. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +22 -0
  52. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.d.ts +7 -0
  53. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +24 -0
  54. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.d.ts +4 -0
  55. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +18 -0
  56. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.d.ts +4 -0
  57. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +16 -0
  58. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.d.ts +3 -0
  59. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +104 -0
  60. package/dist/elements/EFMedia/services/AudioElementFactory.browsertest.d.ts +1 -0
  61. package/dist/elements/EFMedia/services/AudioElementFactory.d.ts +22 -0
  62. package/dist/elements/EFMedia/services/AudioElementFactory.js +72 -0
  63. package/dist/elements/EFMedia/services/MediaSourceService.browsertest.d.ts +1 -0
  64. package/dist/elements/EFMedia/services/MediaSourceService.d.ts +47 -0
  65. package/dist/elements/EFMedia/services/MediaSourceService.js +73 -0
  66. package/dist/elements/EFMedia/shared/AudioSpanUtils.d.ts +7 -0
  67. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +54 -0
  68. package/dist/elements/EFMedia/shared/BufferUtils.d.ts +70 -0
  69. package/dist/elements/EFMedia/shared/BufferUtils.js +89 -0
  70. package/dist/elements/EFMedia/shared/MediaTaskUtils.d.ts +23 -0
  71. package/dist/elements/EFMedia/shared/RenditionHelpers.browsertest.d.ts +1 -0
  72. package/dist/elements/EFMedia/shared/RenditionHelpers.d.ts +19 -0
  73. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.d.ts +1 -0
  74. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.d.ts +18 -0
  75. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +60 -0
  76. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.test.d.ts +1 -0
  77. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.browsertest.d.ts +9 -0
  78. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.d.ts +16 -0
  79. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +46 -0
  80. package/dist/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.browsertest.d.ts +9 -0
  81. package/dist/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.d.ts +4 -0
  82. package/dist/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.js +16 -0
  83. package/dist/elements/EFMedia/videoTasks/makeVideoInputTask.browsertest.d.ts +9 -0
  84. package/dist/elements/EFMedia/videoTasks/makeVideoInputTask.d.ts +3 -0
  85. package/dist/elements/EFMedia/videoTasks/makeVideoInputTask.js +27 -0
  86. package/dist/elements/EFMedia/videoTasks/makeVideoSeekTask.d.ts +7 -0
  87. package/dist/elements/EFMedia/videoTasks/makeVideoSeekTask.js +25 -0
  88. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.browsertest.d.ts +9 -0
  89. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.d.ts +4 -0
  90. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.js +18 -0
  91. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.browsertest.d.ts +9 -0
  92. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.d.ts +4 -0
  93. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.js +16 -0
  94. package/dist/elements/EFMedia.browsertest.d.ts +1 -0
  95. package/dist/elements/EFMedia.d.ts +95 -66
  96. package/dist/elements/EFMedia.js +204 -683
  97. package/dist/elements/EFSourceMixin.js +31 -48
  98. package/dist/elements/EFTemporal.d.ts +2 -1
  99. package/dist/elements/EFTemporal.js +266 -360
  100. package/dist/elements/EFTimegroup.d.ts +14 -1
  101. package/dist/elements/EFTimegroup.js +337 -323
  102. package/dist/elements/EFVideo.browsertest.d.ts +0 -0
  103. package/dist/elements/EFVideo.d.ts +123 -4
  104. package/dist/elements/EFVideo.js +308 -111
  105. package/dist/elements/EFWaveform.js +375 -411
  106. package/dist/elements/FetchMixin.js +14 -24
  107. package/dist/elements/MediaController.d.ts +30 -0
  108. package/dist/elements/SampleBuffer.d.ts +14 -0
  109. package/dist/elements/SampleBuffer.js +52 -0
  110. package/dist/elements/TargetController.js +130 -156
  111. package/dist/elements/TimegroupController.js +17 -19
  112. package/dist/elements/durationConverter.js +15 -4
  113. package/dist/elements/parseTimeToMs.js +4 -10
  114. package/dist/elements/printTaskStatus.d.ts +2 -0
  115. package/dist/elements/updateAnimations.js +39 -59
  116. package/dist/getRenderInfo.d.ts +2 -2
  117. package/dist/getRenderInfo.js +59 -67
  118. package/dist/gui/ContextMixin.js +150 -288
  119. package/dist/gui/EFConfiguration.js +27 -43
  120. package/dist/gui/EFFilmstrip.d.ts +3 -3
  121. package/dist/gui/EFFilmstrip.js +440 -620
  122. package/dist/gui/EFFitScale.d.ts +2 -2
  123. package/dist/gui/EFFitScale.js +112 -135
  124. package/dist/gui/EFFocusOverlay.js +45 -61
  125. package/dist/gui/EFPreview.js +30 -49
  126. package/dist/gui/EFScrubber.js +78 -99
  127. package/dist/gui/EFTimeDisplay.js +49 -70
  128. package/dist/gui/EFToggleLoop.js +17 -34
  129. package/dist/gui/EFTogglePlay.js +37 -58
  130. package/dist/gui/EFWorkbench.js +66 -88
  131. package/dist/gui/TWMixin.js +2 -48
  132. package/dist/gui/TWMixin2.js +31 -0
  133. package/dist/gui/efContext.js +2 -6
  134. package/dist/gui/fetchContext.js +1 -3
  135. package/dist/gui/focusContext.js +1 -3
  136. package/dist/gui/focusedElementContext.js +2 -6
  137. package/dist/gui/playingContext.js +1 -4
  138. package/dist/gui/services/ElementConnectionManager.browsertest.d.ts +1 -0
  139. package/dist/gui/services/ElementConnectionManager.d.ts +59 -0
  140. package/dist/gui/services/ElementConnectionManager.js +128 -0
  141. package/dist/gui/services/PlaybackController.browsertest.d.ts +1 -0
  142. package/dist/gui/services/PlaybackController.d.ts +103 -0
  143. package/dist/gui/services/PlaybackController.js +290 -0
  144. package/dist/index.js +5 -30
  145. package/dist/msToTimeCode.js +11 -13
  146. package/dist/services/MediaSourceManager.d.ts +62 -0
  147. package/dist/services/MediaSourceManager.js +211 -0
  148. package/dist/style.css +2 -1
  149. package/dist/transcoding/cache/CacheManager.d.ts +73 -0
  150. package/dist/transcoding/cache/RequestDeduplicator.d.ts +29 -0
  151. package/dist/transcoding/cache/RequestDeduplicator.js +53 -0
  152. package/dist/transcoding/cache/RequestDeduplicator.test.d.ts +1 -0
  153. package/dist/transcoding/types/index.d.ts +242 -0
  154. package/dist/transcoding/utils/MediaUtils.d.ts +9 -0
  155. package/dist/transcoding/utils/UrlGenerator.d.ts +26 -0
  156. package/dist/transcoding/utils/UrlGenerator.js +45 -0
  157. package/dist/transcoding/utils/constants.d.ts +27 -0
  158. package/dist/utils/LRUCache.d.ts +34 -0
  159. package/dist/utils/LRUCache.js +115 -0
  160. package/package.json +4 -3
  161. package/src/elements/EFAudio.browsertest.ts +709 -0
  162. package/src/elements/EFAudio.ts +59 -15
  163. package/src/elements/EFCaptions.browsertest.ts +0 -1
  164. package/src/elements/EFImage.browsertest.ts +42 -1
  165. package/src/elements/EFImage.ts +23 -3
  166. package/src/elements/EFMedia/AssetIdMediaEngine.test.ts +222 -0
  167. package/src/elements/EFMedia/AssetIdMediaEngine.ts +70 -0
  168. package/src/elements/EFMedia/AssetMediaEngine.ts +210 -0
  169. package/src/elements/EFMedia/BaseMediaEngine.test.ts +164 -0
  170. package/src/elements/EFMedia/BaseMediaEngine.ts +170 -0
  171. package/src/elements/EFMedia/BufferedSeekingInput.browsertest.ts +400 -0
  172. package/src/elements/EFMedia/BufferedSeekingInput.ts +267 -0
  173. package/src/elements/EFMedia/JitMediaEngine.browsertest.ts +165 -0
  174. package/src/elements/EFMedia/JitMediaEngine.ts +110 -0
  175. package/src/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.ts +554 -0
  176. package/src/elements/EFMedia/audioTasks/makeAudioBufferTask.ts +81 -0
  177. package/src/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.ts +241 -0
  178. package/src/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.ts +59 -0
  179. package/src/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.ts +23 -0
  180. package/src/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.ts +55 -0
  181. package/src/elements/EFMedia/audioTasks/makeAudioInputTask.ts +35 -0
  182. package/src/elements/EFMedia/audioTasks/makeAudioSeekTask.ts +42 -0
  183. package/src/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.ts +34 -0
  184. package/src/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.ts +23 -0
  185. package/src/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.ts +174 -0
  186. package/src/elements/EFMedia/services/AudioElementFactory.browsertest.ts +325 -0
  187. package/src/elements/EFMedia/services/AudioElementFactory.ts +119 -0
  188. package/src/elements/EFMedia/services/MediaSourceService.browsertest.ts +257 -0
  189. package/src/elements/EFMedia/services/MediaSourceService.ts +102 -0
  190. package/src/elements/EFMedia/shared/AudioSpanUtils.ts +128 -0
  191. package/src/elements/EFMedia/shared/BufferUtils.ts +310 -0
  192. package/src/elements/EFMedia/shared/MediaTaskUtils.ts +44 -0
  193. package/src/elements/EFMedia/shared/RenditionHelpers.browsertest.ts +247 -0
  194. package/src/elements/EFMedia/shared/RenditionHelpers.ts +79 -0
  195. package/src/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.ts +128 -0
  196. package/src/elements/EFMedia/tasks/makeMediaEngineTask.test.ts +233 -0
  197. package/src/elements/EFMedia/tasks/makeMediaEngineTask.ts +89 -0
  198. package/src/elements/EFMedia/videoTasks/makeVideoBufferTask.browsertest.ts +555 -0
  199. package/src/elements/EFMedia/videoTasks/makeVideoBufferTask.ts +79 -0
  200. package/src/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.browsertest.ts +59 -0
  201. package/src/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.ts +23 -0
  202. package/src/elements/EFMedia/videoTasks/makeVideoInputTask.browsertest.ts +55 -0
  203. package/src/elements/EFMedia/videoTasks/makeVideoInputTask.ts +45 -0
  204. package/src/elements/EFMedia/videoTasks/makeVideoSeekTask.ts +44 -0
  205. package/src/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.browsertest.ts +57 -0
  206. package/src/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.ts +32 -0
  207. package/src/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.browsertest.ts +56 -0
  208. package/src/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.ts +23 -0
  209. package/src/elements/EFMedia.browsertest.ts +696 -271
  210. package/src/elements/EFMedia.ts +218 -776
  211. package/src/elements/EFTemporal.browsertest.ts +0 -1
  212. package/src/elements/EFTemporal.ts +13 -3
  213. package/src/elements/EFTimegroup.browsertest.ts +6 -3
  214. package/src/elements/EFTimegroup.ts +221 -27
  215. package/src/elements/EFVideo.browsertest.ts +758 -0
  216. package/src/elements/EFVideo.ts +418 -68
  217. package/src/elements/EFWaveform.ts +5 -5
  218. package/src/elements/MediaController.ts +98 -0
  219. package/src/elements/SampleBuffer.ts +97 -0
  220. package/src/elements/printTaskStatus.ts +16 -0
  221. package/src/elements/updateAnimations.ts +6 -0
  222. package/src/gui/ContextMixin.ts +23 -104
  223. package/src/gui/TWMixin.ts +10 -3
  224. package/src/gui/services/ElementConnectionManager.browsertest.ts +263 -0
  225. package/src/gui/services/ElementConnectionManager.ts +224 -0
  226. package/src/gui/services/PlaybackController.browsertest.ts +437 -0
  227. package/src/gui/services/PlaybackController.ts +521 -0
  228. package/src/services/MediaSourceManager.ts +333 -0
  229. package/src/transcoding/cache/CacheManager.ts +208 -0
  230. package/src/transcoding/cache/RequestDeduplicator.test.ts +170 -0
  231. package/src/transcoding/cache/RequestDeduplicator.ts +65 -0
  232. package/src/transcoding/types/index.ts +265 -0
  233. package/src/transcoding/utils/MediaUtils.ts +63 -0
  234. package/src/transcoding/utils/UrlGenerator.ts +68 -0
  235. package/src/transcoding/utils/constants.ts +36 -0
  236. package/src/utils/LRUCache.ts +153 -0
  237. package/test/EFVideo.framegen.browsertest.ts +127 -0
  238. package/test/__cache__/GET__api_v1_transcode_audio_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__32da3954ba60c96ad732020c65a08ebc/data.bin +0 -0
  239. package/test/__cache__/GET__api_v1_transcode_audio_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__32da3954ba60c96ad732020c65a08ebc/metadata.json +21 -0
  240. package/test/__cache__/GET__api_v1_transcode_audio_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__b0b2b07efcf607de8ee0f650328c32f7/data.bin +0 -0
  241. package/test/__cache__/GET__api_v1_transcode_audio_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__b0b2b07efcf607de8ee0f650328c32f7/metadata.json +21 -0
  242. package/test/__cache__/GET__api_v1_transcode_audio_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a75c2252b542e0c152c780e9a8d7b154/data.bin +0 -0
  243. package/test/__cache__/GET__api_v1_transcode_audio_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a75c2252b542e0c152c780e9a8d7b154/metadata.json +21 -0
  244. package/test/__cache__/GET__api_v1_transcode_audio_4_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a64ff1cfb1b52cae14df4b5dfa1e222b/data.bin +0 -0
  245. package/test/__cache__/GET__api_v1_transcode_audio_4_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a64ff1cfb1b52cae14df4b5dfa1e222b/metadata.json +21 -0
  246. package/test/__cache__/GET__api_v1_transcode_audio_5_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__91e8a522f950809b9f09f4173113b4b0/data.bin +0 -0
  247. package/test/__cache__/GET__api_v1_transcode_audio_5_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__91e8a522f950809b9f09f4173113b4b0/metadata.json +21 -0
  248. package/test/__cache__/GET__api_v1_transcode_audio_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__e66d2c831d951e74ad0aeaa6489795d0/data.bin +0 -0
  249. package/test/__cache__/GET__api_v1_transcode_audio_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__e66d2c831d951e74ad0aeaa6489795d0/metadata.json +21 -0
  250. package/test/__cache__/GET__api_v1_transcode_high_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__26197f6f7c46cacb0a71134131c3f775/data.bin +0 -0
  251. package/test/__cache__/GET__api_v1_transcode_high_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__26197f6f7c46cacb0a71134131c3f775/metadata.json +21 -0
  252. package/test/__cache__/GET__api_v1_transcode_high_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__4cb6774cd3650ccf59c8f8dc6678c0b9/data.bin +0 -0
  253. package/test/__cache__/GET__api_v1_transcode_high_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__4cb6774cd3650ccf59c8f8dc6678c0b9/metadata.json +21 -0
  254. package/test/__cache__/GET__api_v1_transcode_high_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0b3b2b1c8933f7fcf8a9ecaa88d58b41/data.bin +0 -0
  255. package/test/__cache__/GET__api_v1_transcode_high_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0b3b2b1c8933f7fcf8a9ecaa88d58b41/metadata.json +21 -0
  256. package/test/__cache__/GET__api_v1_transcode_high_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0798c479b44aaeef850609a430f6e613/data.bin +0 -0
  257. package/test/__cache__/GET__api_v1_transcode_high_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0798c479b44aaeef850609a430f6e613/metadata.json +21 -0
  258. package/test/__cache__/GET__api_v1_transcode_manifest_json_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__3be92a0437de726b431ed5af2369158a/data.bin +1 -0
  259. package/test/__cache__/GET__api_v1_transcode_manifest_json_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__3be92a0437de726b431ed5af2369158a/metadata.json +19 -0
  260. package/test/createJitTestClips.ts +425 -0
  261. package/test/recordReplayProxyPlugin.js +302 -0
  262. package/test/useAssetMSW.ts +49 -0
  263. package/test/useMSW.ts +44 -0
  264. package/types.json +1 -1
  265. package/dist/gui/TWMixin.css.js +0 -4
  266. /package/dist/elements/{TargetController.test.d.ts → TargetController.browsertest.d.ts} +0 -0
  267. /package/src/elements/{TargetController.test.ts → TargetController.browsertest.ts} +0 -0
@@ -1,72 +1,64 @@
1
1
  import { z } from "zod";
2
2
  const RenderInfo = z.object({
3
- width: z.number().positive(),
4
- height: z.number().positive(),
5
- fps: z.number().positive(),
6
- durationMs: z.number().positive(),
7
- assets: z.object({
8
- efMedia: z.record(z.any()),
9
- efCaptions: z.array(z.string()),
10
- efImage: z.array(z.string())
11
- })
3
+ width: z.number().positive(),
4
+ height: z.number().positive(),
5
+ fps: z.number().positive(),
6
+ durationMs: z.number().positive(),
7
+ assets: z.object({
8
+ efMedia: z.record(z.any()),
9
+ efCaptions: z.array(z.string()),
10
+ efImage: z.array(z.string())
11
+ })
12
12
  });
13
13
  const getRenderInfo = async () => {
14
- const rootTimeGroup = document.querySelector("ef-timegroup");
15
- if (!rootTimeGroup) {
16
- throw new Error("No ef-timegroup found");
17
- }
18
- console.error("Waiting for media durations", rootTimeGroup);
19
- await rootTimeGroup.waitForMediaDurations();
20
- const width = rootTimeGroup.clientWidth;
21
- const height = rootTimeGroup.clientHeight;
22
- const fps = 30;
23
- const durationMs = Math.round(rootTimeGroup.durationMs);
24
- const elements = document.querySelectorAll(
25
- "ef-audio, ef-video, ef-image, ef-captions"
26
- );
27
- const assets = {
28
- efMedia: {},
29
- efCaptions: /* @__PURE__ */ new Set(),
30
- efImage: /* @__PURE__ */ new Set()
31
- };
32
- for (const element of elements) {
33
- switch (element.tagName) {
34
- case "EF-AUDIO":
35
- case "EF-VIDEO": {
36
- const src = element.src;
37
- console.error("Processing element", element.tagName, src);
38
- assets.efMedia[src] = element.trackFragmentIndexLoader.value;
39
- break;
40
- }
41
- case "EF-IMAGE": {
42
- const src = element.src;
43
- console.error("Processing element", element.tagName, src);
44
- assets.efImage.add(src);
45
- break;
46
- }
47
- case "EF-CAPTIONS": {
48
- const src = element.targetElement?.src;
49
- console.error("Processing element", element.tagName, src);
50
- assets.efCaptions.add(src);
51
- break;
52
- }
53
- }
54
- }
55
- const renderInfo = {
56
- width,
57
- height,
58
- fps,
59
- durationMs,
60
- assets: {
61
- efMedia: assets.efMedia,
62
- efCaptions: Array.from(assets.efCaptions),
63
- efImage: Array.from(assets.efImage)
64
- }
65
- };
66
- console.error("Render info", renderInfo);
67
- return renderInfo;
68
- };
69
- export {
70
- RenderInfo,
71
- getRenderInfo
14
+ const rootTimeGroup = document.querySelector("ef-timegroup");
15
+ if (!rootTimeGroup) throw new Error("No ef-timegroup found");
16
+ console.error("Waiting for media durations", rootTimeGroup);
17
+ await rootTimeGroup.waitForMediaDurations();
18
+ const width = rootTimeGroup.clientWidth;
19
+ const height = rootTimeGroup.clientHeight;
20
+ const fps = 30;
21
+ const durationMs = Math.round(rootTimeGroup.durationMs);
22
+ const elements = document.querySelectorAll("ef-audio, ef-video, ef-image, ef-captions");
23
+ const assets = {
24
+ efMedia: {},
25
+ efCaptions: /* @__PURE__ */ new Set(),
26
+ efImage: /* @__PURE__ */ new Set()
27
+ };
28
+ for (const element of elements) switch (element.tagName) {
29
+ case "EF-AUDIO":
30
+ case "EF-VIDEO": {
31
+ const src = element.src;
32
+ console.error("Processing element", element.tagName, src);
33
+ const mediaEngine = element.mediaEngineTask.value;
34
+ if (mediaEngine && "data" in mediaEngine) assets.efMedia[src] = mediaEngine.data;
35
+ break;
36
+ }
37
+ case "EF-IMAGE": {
38
+ const src = element.src;
39
+ console.error("Processing element", element.tagName, src);
40
+ assets.efImage.add(src);
41
+ break;
42
+ }
43
+ case "EF-CAPTIONS": {
44
+ const src = element.targetElement?.src;
45
+ console.error("Processing element", element.tagName, src);
46
+ assets.efCaptions.add(src);
47
+ break;
48
+ }
49
+ }
50
+ const renderInfo = {
51
+ width,
52
+ height,
53
+ fps,
54
+ durationMs,
55
+ assets: {
56
+ efMedia: assets.efMedia,
57
+ efCaptions: Array.from(assets.efCaptions),
58
+ efImage: Array.from(assets.efImage)
59
+ }
60
+ };
61
+ console.error("Render info", renderInfo);
62
+ return renderInfo;
72
63
  };
64
+ export { RenderInfo, getRenderInfo };
@@ -1,298 +1,160 @@
1
- import { createContext, consume, provide } from "@lit/context";
2
- import { state, property } from "lit/decorators.js";
3
1
  import { efConfigurationContext } from "./EFConfiguration.js";
4
2
  import { efContext } from "./efContext.js";
5
3
  import { fetchContext } from "./fetchContext.js";
6
4
  import { focusContext } from "./focusContext.js";
7
5
  import { focusedElementContext } from "./focusedElementContext.js";
8
- import { playingContext, loopContext } from "./playingContext.js";
9
- var __defProp = Object.defineProperty;
10
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
- var __decorateClass = (decorators, target, key, kind) => {
12
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
14
- if (decorator = decorators[i])
15
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
16
- if (kind && result) __defProp(target, key, result);
17
- return result;
18
- };
19
- const targetTimegroupContext = createContext(
20
- "target-timegroup"
21
- );
6
+ import { loopContext, playingContext } from "./playingContext.js";
7
+ import { ElementConnectionManager } from "./services/ElementConnectionManager.js";
8
+ import { PlaybackController } from "./services/PlaybackController.js";
9
+ import { consume, createContext, provide } from "@lit/context";
10
+ import { property, state } from "lit/decorators.js";
11
+ import _decorate from "@oxc-project/runtime/helpers/decorate";
12
+ const targetTimegroupContext = createContext("target-timegroup");
22
13
  const contextMixinSymbol = Symbol("contextMixin");
23
14
  function isContextMixin(value) {
24
- return typeof value === "object" && value !== null && contextMixinSymbol in value.constructor;
15
+ return typeof value === "object" && value !== null && contextMixinSymbol in value.constructor;
25
16
  }
26
17
  function ContextMixin(superClass) {
27
- var _a, _b;
28
- class ContextElement extends (_b = superClass, _a = contextMixinSymbol, _b) {
29
- constructor() {
30
- super(...arguments);
31
- this.efConfiguration = null;
32
- this.focusContext = this;
33
- this.efContext = this;
34
- this.targetTimegroup = null;
35
- this.fetch = async (url, init = {}) => {
36
- init.headers ||= {};
37
- Object.assign(init.headers, {
38
- "Content-Type": "application/json"
39
- });
40
- if (this.signingURL) {
41
- if (!this.#URLTokens[url]) {
42
- this.#URLTokens[url] = fetch(this.signingURL, {
43
- method: "POST",
44
- body: JSON.stringify({ url })
45
- }).then(async (response) => {
46
- if (response.ok) {
47
- return (await response.json()).token;
48
- }
49
- throw new Error(
50
- `Failed to sign URL: ${url}. SigningURL: ${this.signingURL} ${response.status} ${response.statusText}`
51
- );
52
- });
53
- }
54
- const urlToken = await this.#URLTokens[url];
55
- Object.assign(init.headers, {
56
- authorization: `Bearer ${urlToken}`
57
- });
58
- } else {
59
- init.credentials = "include";
60
- }
61
- return fetch(url, init);
62
- };
63
- this.#URLTokens = {};
64
- this.playing = false;
65
- this.loop = false;
66
- this.rendering = false;
67
- this.currentTimeMs = 0;
68
- this.#FPS = 30;
69
- this.#MS_PER_FRAME = 1e3 / this.#FPS;
70
- this.#timegroupObserver = new MutationObserver((mutations) => {
71
- for (const mutation of mutations) {
72
- if (mutation.type === "childList") {
73
- const newTimegroup = this.querySelector("ef-timegroup");
74
- if (newTimegroup !== this.targetTimegroup) {
75
- this.targetTimegroup = newTimegroup;
76
- }
77
- }
78
- }
79
- });
80
- this.#playbackAudioContext = null;
81
- this.#playbackAnimationFrameRequest = null;
82
- this.#AUDIO_PLAYBACK_SLICE_MS = 1e3;
83
- }
84
- static {
85
- this[_a] = true;
86
- }
87
- #apiHost;
88
- get apiHost() {
89
- return this.#apiHost ?? this.efConfiguration?.apiHost ?? "";
90
- }
91
- set apiHost(value) {
92
- this.#apiHost = value;
93
- }
94
- #URLTokens;
95
- #signingURL;
96
- get signingURL() {
97
- return this.#signingURL ?? this.efConfiguration?.signingURL ?? "";
98
- }
99
- set signingURL(value) {
100
- this.#signingURL = value;
101
- }
102
- #FPS;
103
- #MS_PER_FRAME;
104
- #timegroupObserver;
105
- connectedCallback() {
106
- super.connectedCallback();
107
- this.targetTimegroup = this.querySelector("ef-timegroup");
108
- this.#timegroupObserver.observe(this, {
109
- childList: true,
110
- subtree: true,
111
- attributes: true
112
- });
113
- if (this.playing) {
114
- this.startPlayback();
115
- }
116
- }
117
- disconnectedCallback() {
118
- super.disconnectedCallback();
119
- this.#timegroupObserver.disconnect();
120
- this.stopPlayback();
121
- }
122
- update(changedProperties) {
123
- if (changedProperties.has("playing")) {
124
- if (this.playing) {
125
- this.startPlayback();
126
- } else {
127
- this.stopPlayback();
128
- }
129
- }
130
- if (changedProperties.has("currentTimeMs") && this.targetTimegroup) {
131
- if (this.targetTimegroup.currentTimeMs !== this.currentTimeMs) {
132
- this.targetTimegroup.currentTimeMs = this.currentTimeMs;
133
- if (this.isConnected) {
134
- this.dispatchEvent(
135
- new CustomEvent("timeupdate", {
136
- detail: {
137
- currentTimeMs: this.currentTimeMs,
138
- progress: this.currentTimeMs / this.targetTimegroup.durationMs
139
- }
140
- })
141
- );
142
- }
143
- }
144
- }
145
- super.update(changedProperties);
146
- }
147
- play() {
148
- this.playing = true;
149
- }
150
- pause() {
151
- this.playing = false;
152
- }
153
- #playbackAudioContext;
154
- #playbackAnimationFrameRequest;
155
- #AUDIO_PLAYBACK_SLICE_MS;
156
- #syncPlayheadToAudioContext(target, startMs) {
157
- const rawTimeMs = startMs + (this.#playbackAudioContext?.currentTime ?? 0) * 1e3;
158
- const nextTimeMs = Math.round(rawTimeMs / this.#MS_PER_FRAME) * this.#MS_PER_FRAME;
159
- if (nextTimeMs !== this.currentTimeMs) {
160
- this.currentTimeMs = nextTimeMs;
161
- }
162
- this.#playbackAnimationFrameRequest = requestAnimationFrame(() => {
163
- this.#syncPlayheadToAudioContext(target, startMs);
164
- });
165
- }
166
- async stopPlayback() {
167
- if (this.#playbackAudioContext) {
168
- if (this.#playbackAudioContext.state !== "closed") {
169
- await this.#playbackAudioContext.close();
170
- }
171
- }
172
- if (this.#playbackAnimationFrameRequest) {
173
- cancelAnimationFrame(this.#playbackAnimationFrameRequest);
174
- }
175
- this.#playbackAudioContext = null;
176
- }
177
- async startPlayback() {
178
- await this.stopPlayback();
179
- const timegroup = this.targetTimegroup;
180
- if (!timegroup) {
181
- return;
182
- }
183
- await timegroup.waitForMediaDurations();
184
- let currentMs = timegroup.currentTimeMs;
185
- const fromMs = currentMs;
186
- const toMs = timegroup.endTimeMs;
187
- if (fromMs >= toMs) {
188
- this.pause();
189
- return;
190
- }
191
- let bufferCount = 0;
192
- this.#playbackAudioContext = new AudioContext({
193
- latencyHint: "playback"
194
- });
195
- if (this.#playbackAnimationFrameRequest) {
196
- cancelAnimationFrame(this.#playbackAnimationFrameRequest);
197
- }
198
- this.#syncPlayheadToAudioContext(timegroup, currentMs);
199
- const playbackContext = this.#playbackAudioContext;
200
- if (playbackContext.state === "suspended") {
201
- console.warn(
202
- "AudioContext is suspended, media playback will not work until user has interacted with page."
203
- );
204
- this.playing = false;
205
- return;
206
- }
207
- await playbackContext.suspend();
208
- const fillBuffer = async () => {
209
- if (bufferCount > 1) {
210
- return;
211
- }
212
- const canFillBuffer = await queueBufferSource();
213
- if (canFillBuffer) {
214
- fillBuffer();
215
- }
216
- };
217
- const queueBufferSource = async () => {
218
- if (currentMs >= toMs) {
219
- return false;
220
- }
221
- const startMs = currentMs;
222
- const endMs = currentMs + this.#AUDIO_PLAYBACK_SLICE_MS;
223
- currentMs += this.#AUDIO_PLAYBACK_SLICE_MS;
224
- const audioBuffer = await timegroup.renderAudio(startMs, endMs);
225
- bufferCount++;
226
- const source = playbackContext.createBufferSource();
227
- source.buffer = audioBuffer;
228
- source.connect(playbackContext.destination);
229
- source.start((startMs - fromMs) / 1e3);
230
- source.onended = () => {
231
- bufferCount--;
232
- if (endMs >= toMs) {
233
- this.pause();
234
- if (this.loop) {
235
- this.updateComplete.then(() => {
236
- this.currentTimeMs = 0;
237
- this.updateComplete.then(() => {
238
- this.play();
239
- });
240
- });
241
- }
242
- } else {
243
- fillBuffer();
244
- }
245
- };
246
- return true;
247
- };
248
- await fillBuffer();
249
- await playbackContext.resume();
250
- }
251
- }
252
- __decorateClass([
253
- consume({ context: efConfigurationContext, subscribe: true })
254
- ], ContextElement.prototype, "efConfiguration", 2);
255
- __decorateClass([
256
- provide({ context: focusContext })
257
- ], ContextElement.prototype, "focusContext", 2);
258
- __decorateClass([
259
- provide({ context: focusedElementContext }),
260
- state()
261
- ], ContextElement.prototype, "focusedElement", 2);
262
- __decorateClass([
263
- property({ type: String, attribute: "api-host" })
264
- ], ContextElement.prototype, "apiHost", 1);
265
- __decorateClass([
266
- provide({ context: efContext })
267
- ], ContextElement.prototype, "efContext", 2);
268
- __decorateClass([
269
- provide({ context: targetTimegroupContext }),
270
- state()
271
- ], ContextElement.prototype, "targetTimegroup", 2);
272
- __decorateClass([
273
- provide({ context: fetchContext })
274
- ], ContextElement.prototype, "fetch", 2);
275
- __decorateClass([
276
- property({ type: String, attribute: "signing-url" })
277
- ], ContextElement.prototype, "signingURL", 1);
278
- __decorateClass([
279
- provide({ context: playingContext }),
280
- property({ type: Boolean, reflect: true })
281
- ], ContextElement.prototype, "playing", 2);
282
- __decorateClass([
283
- provide({ context: loopContext }),
284
- property({ type: Boolean, reflect: true })
285
- ], ContextElement.prototype, "loop", 2);
286
- __decorateClass([
287
- property({ type: Boolean })
288
- ], ContextElement.prototype, "rendering", 2);
289
- __decorateClass([
290
- state()
291
- ], ContextElement.prototype, "currentTimeMs", 2);
292
- return ContextElement;
18
+ class ContextElement extends superClass {
19
+ constructor(..._args) {
20
+ super(..._args);
21
+ this.efConfiguration = null;
22
+ this.focusContext = this;
23
+ this.efContext = this;
24
+ this.targetTimegroup = null;
25
+ this.fetch = async (url, init = {}) => {
26
+ init.headers ||= {};
27
+ Object.assign(init.headers, { "Content-Type": "application/json" });
28
+ if (this.signingURL) {
29
+ if (!this.#URLTokens[url]) this.#URLTokens[url] = fetch(this.signingURL, {
30
+ method: "POST",
31
+ body: JSON.stringify({ url })
32
+ }).then(async (response) => {
33
+ if (response.ok) return (await response.json()).token;
34
+ throw new Error(`Failed to sign URL: ${url}. SigningURL: ${this.signingURL} ${response.status} ${response.statusText}`);
35
+ });
36
+ const urlToken = await this.#URLTokens[url];
37
+ Object.assign(init.headers, { authorization: `Bearer ${urlToken}` });
38
+ } else init.credentials = "include";
39
+ return fetch(url, init);
40
+ };
41
+ this.playing = false;
42
+ this.loop = false;
43
+ this.rendering = false;
44
+ this.currentTimeMs = 0;
45
+ this._elementConnectionManager = new ElementConnectionManager(3e3);
46
+ this.playbackController = new PlaybackController({
47
+ fps: 30,
48
+ onTimeUpdate: (timeMs) => {
49
+ this.currentTimeMs = timeMs;
50
+ },
51
+ onPlayStateChange: (playing) => {
52
+ this.playing = playing;
53
+ },
54
+ onError: (error) => {
55
+ console.error("🎵 [PLAYBACK_ERROR]:", error);
56
+ }
57
+ });
58
+ }
59
+ static {
60
+ this[contextMixinSymbol] = true;
61
+ }
62
+ #apiHost;
63
+ get apiHost() {
64
+ return this.#apiHost ?? this.efConfiguration?.apiHost ?? "";
65
+ }
66
+ set apiHost(value) {
67
+ this.#apiHost = value;
68
+ }
69
+ #URLTokens = {};
70
+ #signingURL;
71
+ /**
72
+ * A URL that will be used to generated signed tokens for accessing media files from the
73
+ * editframe API. This is used to authenticate media requests per-user.
74
+ */
75
+ get signingURL() {
76
+ return this.#signingURL ?? this.efConfiguration?.signingURL ?? "";
77
+ }
78
+ set signingURL(value) {
79
+ this.#signingURL = value;
80
+ }
81
+ #timegroupObserver = new MutationObserver((mutations) => {
82
+ for (const mutation of mutations) if (mutation.type === "childList") {
83
+ const newTimegroup = this.querySelector("ef-timegroup");
84
+ if (newTimegroup !== this.targetTimegroup) this.targetTimegroup = newTimegroup;
85
+ }
86
+ });
87
+ connectedCallback() {
88
+ super.connectedCallback();
89
+ this.targetTimegroup = this.querySelector("ef-timegroup");
90
+ this.#timegroupObserver.observe(this, {
91
+ childList: true,
92
+ subtree: true,
93
+ attributes: true
94
+ });
95
+ if (this.playing) this.startPlayback();
96
+ }
97
+ disconnectedCallback() {
98
+ super.disconnectedCallback();
99
+ this.#timegroupObserver.disconnect();
100
+ this.stopPlayback();
101
+ }
102
+ update(changedProperties) {
103
+ if (changedProperties.has("playing")) if (this.playing) this.startPlayback();
104
+ else this.stopPlayback();
105
+ if (changedProperties.has("currentTimeMs") && this.targetTimegroup) {
106
+ if (this.targetTimegroup.currentTimeMs !== this.currentTimeMs) {
107
+ this.targetTimegroup.currentTimeMs = this.currentTimeMs;
108
+ if (this.isConnected) this.dispatchEvent(new CustomEvent("timeupdate", { detail: {
109
+ currentTimeMs: this.currentTimeMs,
110
+ progress: this.currentTimeMs / this.targetTimegroup.durationMs
111
+ } }));
112
+ }
113
+ }
114
+ super.update(changedProperties);
115
+ }
116
+ play() {
117
+ this.playing = true;
118
+ }
119
+ pause() {
120
+ this.playing = false;
121
+ }
122
+ async stopPlayback() {
123
+ await this.playbackController.stopPlayback();
124
+ }
125
+ async startPlayback() {
126
+ const timegroup = this.targetTimegroup;
127
+ if (!timegroup) return;
128
+ await this.playbackController.startPlayback(timegroup, timegroup.currentTimeMs);
129
+ }
130
+ }
131
+ _decorate([consume({
132
+ context: efConfigurationContext,
133
+ subscribe: true
134
+ })], ContextElement.prototype, "efConfiguration", void 0);
135
+ _decorate([provide({ context: focusContext })], ContextElement.prototype, "focusContext", void 0);
136
+ _decorate([provide({ context: focusedElementContext }), state()], ContextElement.prototype, "focusedElement", void 0);
137
+ _decorate([property({
138
+ type: String,
139
+ attribute: "api-host"
140
+ })], ContextElement.prototype, "apiHost", null);
141
+ _decorate([provide({ context: efContext })], ContextElement.prototype, "efContext", void 0);
142
+ _decorate([provide({ context: targetTimegroupContext }), state()], ContextElement.prototype, "targetTimegroup", void 0);
143
+ _decorate([provide({ context: fetchContext })], ContextElement.prototype, "fetch", void 0);
144
+ _decorate([property({
145
+ type: String,
146
+ attribute: "signing-url"
147
+ })], ContextElement.prototype, "signingURL", null);
148
+ _decorate([provide({ context: playingContext }), property({
149
+ type: Boolean,
150
+ reflect: true
151
+ })], ContextElement.prototype, "playing", void 0);
152
+ _decorate([provide({ context: loopContext }), property({
153
+ type: Boolean,
154
+ reflect: true
155
+ })], ContextElement.prototype, "loop", void 0);
156
+ _decorate([property({ type: Boolean })], ContextElement.prototype, "rendering", void 0);
157
+ _decorate([state()], ContextElement.prototype, "currentTimeMs", void 0);
158
+ return ContextElement;
293
159
  }
294
- export {
295
- ContextMixin,
296
- isContextMixin,
297
- targetTimegroupContext
298
- };
160
+ export { ContextMixin, isContextMixin, targetTimegroupContext };
@@ -1,48 +1,32 @@
1
1
  import { createContext, provide } from "@lit/context";
2
- import { css, LitElement, html } from "lit";
3
- import { property, customElement } from "lit/decorators.js";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __decorateClass = (decorators, target, key, kind) => {
7
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
8
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
- if (decorator = decorators[i])
10
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11
- if (kind && result) __defProp(target, key, result);
12
- return result;
13
- };
14
- const efConfigurationContext = createContext(
15
- Symbol("efConfigurationContext")
16
- );
17
- let EFConfiguration = class extends LitElement {
18
- constructor() {
19
- super(...arguments);
20
- this.efConfiguration = this;
21
- }
22
- render() {
23
- return html`<slot></slot>`;
24
- }
25
- };
26
- EFConfiguration.styles = [
27
- css`
2
+ import { LitElement, css, html } from "lit";
3
+ import { customElement, property } from "lit/decorators.js";
4
+ import _decorate from "@oxc-project/runtime/helpers/decorate";
5
+ const efConfigurationContext = createContext(Symbol("efConfigurationContext"));
6
+ let EFConfiguration = class EFConfiguration$1 extends LitElement {
7
+ constructor(..._args) {
8
+ super(..._args);
9
+ this.efConfiguration = this;
10
+ }
11
+ static {
12
+ this.styles = [css`
28
13
  :host {
29
14
  display: contents;
30
15
  }
31
- `
32
- ];
33
- __decorateClass([
34
- provide({ context: efConfigurationContext })
35
- ], EFConfiguration.prototype, "efConfiguration", 2);
36
- __decorateClass([
37
- property({ type: String, attribute: "api-host" })
38
- ], EFConfiguration.prototype, "apiHost", 2);
39
- __decorateClass([
40
- property({ type: String, attribute: "signing-url" })
41
- ], EFConfiguration.prototype, "signingURL", 2);
42
- EFConfiguration = __decorateClass([
43
- customElement("ef-configuration")
44
- ], EFConfiguration);
45
- export {
46
- EFConfiguration,
47
- efConfigurationContext
16
+ `];
17
+ }
18
+ render() {
19
+ return html`<slot></slot>`;
20
+ }
48
21
  };
22
+ _decorate([provide({ context: efConfigurationContext })], EFConfiguration.prototype, "efConfiguration", void 0);
23
+ _decorate([property({
24
+ type: String,
25
+ attribute: "api-host"
26
+ })], EFConfiguration.prototype, "apiHost", void 0);
27
+ _decorate([property({
28
+ type: String,
29
+ attribute: "signing-url"
30
+ })], EFConfiguration.prototype, "signingURL", void 0);
31
+ EFConfiguration = _decorate([customElement("ef-configuration")], EFConfiguration);
32
+ export { EFConfiguration, efConfigurationContext };