@latest-thinking/lt-player 1.2.0 → 2.0.0-a

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 (205) hide show
  1. package/.editorconfig +1 -1
  2. package/.node-version +1 -0
  3. package/.nvmrc +1 -0
  4. package/README.md +162 -0
  5. package/dist/main.js +24375 -0
  6. package/package.json +31 -67
  7. package/tsconfig.json +2 -1
  8. package/vite-dev.config.mts +35 -0
  9. package/vite.config.mts +40 -0
  10. package/ README.md +0 -270
  11. package/.babelrc +0 -11
  12. package/.eslintrc.js +0 -6
  13. package/dist/css/lt-player-main.css +0 -3
  14. package/dist/css/lt-player-main.css.map +0 -1
  15. package/dist/fonts/0574e80a2483be7b033e.otf +0 -0
  16. package/dist/fonts/34274fbfb2f270b8d53b.otf +0 -0
  17. package/dist/fonts/80acced0ba3630ee652b.otf +0 -0
  18. package/dist/fonts/8ccea4947561e7008d19.otf +0 -0
  19. package/dist/fonts/d355445ed7d61b887e58.otf +0 -0
  20. package/dist/js/lt-player-main.js +0 -3
  21. package/dist/js/lt-player-main.js.LICENSE.txt +0 -9
  22. package/dist/js/lt-player-main.js.map +0 -1
  23. package/examples/basic.html +0 -35
  24. package/examples/lt-page-with-player.html +0 -3529
  25. package/examples/lt-page-with-player_files/Weiskopf_Coverphoto.jpg +0 -0
  26. package/examples/lt-page-with-player_files/ajax-progress.module.css +0 -49
  27. package/examples/lt-page-with-player_files/align.module.css +0 -32
  28. package/examples/lt-page-with-player_files/announce.js +0 -49
  29. package/examples/lt-page-with-player_files/autocomplete-loading.module.css +0 -22
  30. package/examples/lt-page-with-player_files/autocomplete.css +0 -16
  31. package/examples/lt-page-with-player_files/bootstrap.css +0 -22691
  32. package/examples/lt-page-with-player_files/clearfix.module.css +0 -15
  33. package/examples/lt-page-with-player_files/container-inline.module.css +0 -16
  34. package/examples/lt-page-with-player_files/cookiesjsr.min.css +0 -10
  35. package/examples/lt-page-with-player_files/core.css +0 -97
  36. package/examples/lt-page-with-player_files/details.module.css +0 -10
  37. package/examples/lt-page-with-player_files/fieldgroup.module.css +0 -9
  38. package/examples/lt-page-with-player_files/hidden.module.css +0 -53
  39. package/examples/lt-page-with-player_files/himme-alexander-beyond_0.jpg +0 -0
  40. package/examples/lt-page-with-player_files/item-list.module.css +0 -19
  41. package/examples/lt-page-with-player_files/js.module.css +0 -22
  42. package/examples/lt-page-with-player_files/latest_thinking.style.css +0 -6496
  43. package/examples/lt-page-with-player_files/logo-small.png +0 -0
  44. package/examples/lt-page-with-player_files/menu.css +0 -64
  45. package/examples/lt-page-with-player_files/nowrap.module.css +0 -8
  46. package/examples/lt-page-with-player_files/paragraphs.unpublished.css +0 -3
  47. package/examples/lt-page-with-player_files/position-container.module.css +0 -8
  48. package/examples/lt-page-with-player_files/progress.module.css +0 -51
  49. package/examples/lt-page-with-player_files/radix.style.css +0 -1
  50. package/examples/lt-page-with-player_files/reset-appearance.module.css +0 -15
  51. package/examples/lt-page-with-player_files/resize.module.css +0 -21
  52. package/examples/lt-page-with-player_files/search_api_autocomplete.css +0 -41
  53. package/examples/lt-page-with-player_files/sticky-header.module.css +0 -13
  54. package/examples/lt-page-with-player_files/system-status-counter.css +0 -30
  55. package/examples/lt-page-with-player_files/system-status-report-counters.css +0 -27
  56. package/examples/lt-page-with-player_files/system-status-report-general-info.css +0 -14
  57. package/examples/lt-page-with-player_files/tabledrag.module.css +0 -98
  58. package/examples/lt-page-with-player_files/tablesort.module.css +0 -19
  59. package/examples/lt-page-with-player_files/theme.css +0 -446
  60. package/examples/lt-page-with-player_files/thumbnail_MPI_CBS_Eingangsbereich.jpg +0 -0
  61. package/examples/lt-page-with-player_files/tree-child.module.css +0 -18
  62. package/examples/lt-page-with-player_files/widget-min.js +0 -10
  63. package/examples/lt-website.html +0 -76
  64. package/examples/portrait-with-subtitles.html +0 -81
  65. package/examples/samples/vtt/Pahl-Kerstin-Maria-MAIN-20230320.vtt +0 -765
  66. package/examples/samples/vtt/Sobolev-Anton-Subtitles-20230518_0.vtt +0 -352
  67. package/examples/samples/vtt/demo.vtt +0 -7
  68. package/src/assets/css/sample.css +0 -12
  69. package/src/assets/fonts/museo/MuseoSans-100.otf +0 -0
  70. package/src/assets/fonts/museo/MuseoSans-300.otf +0 -0
  71. package/src/assets/fonts/museo/MuseoSans-500.otf +0 -0
  72. package/src/assets/fonts/museo/MuseoSans-700.otf +0 -0
  73. package/src/assets/fonts/museo/MuseoSans-900.otf +0 -0
  74. package/src/assets/icons/arrow-down.svg +0 -8
  75. package/src/assets/icons/arrow-left.svg +0 -8
  76. package/src/assets/icons/chevron-down-full.svg +0 -7
  77. package/src/assets/icons/chevron-down.svg +0 -7
  78. package/src/assets/icons/chevron-up-full.svg +0 -7
  79. package/src/assets/icons/chevron-up.svg +0 -7
  80. package/src/assets/icons/close.svg +0 -8
  81. package/src/assets/icons/compass.svg +0 -8
  82. package/src/assets/icons/external-link.svg +0 -9
  83. package/src/assets/icons/facebook.svg +0 -7
  84. package/src/assets/icons/fast-backward.svg +0 -8
  85. package/src/assets/icons/fast-forward.svg +0 -8
  86. package/src/assets/icons/file-text.svg +0 -11
  87. package/src/assets/icons/home.svg +0 -8
  88. package/src/assets/icons/logo-big.png +0 -0
  89. package/src/assets/icons/logo.png +0 -0
  90. package/src/assets/icons/maximize.svg +0 -7
  91. package/src/assets/icons/mini-player.svg +0 -8
  92. package/src/assets/icons/minimize.svg +0 -7
  93. package/src/assets/icons/more-vertical.svg +0 -9
  94. package/src/assets/icons/mute.svg +0 -9
  95. package/src/assets/icons/pause.svg +0 -8
  96. package/src/assets/icons/play.svg +0 -8
  97. package/src/assets/icons/search.svg +0 -8
  98. package/src/assets/icons/settings.svg +0 -8
  99. package/src/assets/icons/share.svg +0 -11
  100. package/src/assets/icons/skip-backward.svg +0 -8
  101. package/src/assets/icons/skip-forward.svg +0 -8
  102. package/src/assets/icons/speed-1-5.svg +0 -7
  103. package/src/assets/icons/speed-1.svg +0 -7
  104. package/src/assets/icons/speed-2.svg +0 -7
  105. package/src/assets/icons/subtitles.svg +0 -7
  106. package/src/assets/icons/twitter.svg +0 -7
  107. package/src/assets/icons/university.svg +0 -9
  108. package/src/assets/icons/user.svg +0 -8
  109. package/src/assets/icons/volume-1.svg +0 -15
  110. package/src/assets/icons/volume-2.svg +0 -15
  111. package/src/assets/icons/volume-3.svg +0 -15
  112. package/src/assets/sass/abstracts/_mixins.scss +0 -145
  113. package/src/assets/sass/abstracts/_placeholders.scss +0 -112
  114. package/src/assets/sass/abstracts/_variables.scss +0 -68
  115. package/src/assets/sass/abstracts/all.scss +0 -4
  116. package/src/assets/sass/app.scss +0 -99
  117. package/src/assets/sass/components/_all.scss +0 -6
  118. package/src/assets/sass/components/_buttons.scss +0 -1
  119. package/src/assets/sass/components/_images.scss +0 -4
  120. package/src/assets/sass/components/_loader.scss +0 -187
  121. package/src/assets/sass/components/_modal.scss +0 -365
  122. package/src/assets/sass/components/_range.scss +0 -33
  123. package/src/assets/sass/core/_all.scss +0 -13
  124. package/src/assets/sass/core/_fonts.scss +0 -55
  125. package/src/assets/sass/core/_player.scss +0 -71
  126. package/src/assets/sass/core/_typography.scss +0 -13
  127. package/src/assets/sass/layout/_all.scss +0 -3
  128. package/src/assets/sass/layout/_grid.scss +0 -0
  129. package/src/assets/sass/sections/_additional-info.scss +0 -90
  130. package/src/assets/sass/sections/_all.scss +0 -6
  131. package/src/assets/sass/sections/_control.scss +0 -122
  132. package/src/assets/sass/sections/_poster.scss +0 -319
  133. package/src/assets/sass/sections/_settings.scss +0 -504
  134. package/src/assets/sass/sections/_share.scss +0 -250
  135. package/src/assets/sass/sections/_subtitles.scss +0 -85
  136. package/src/assets/sass/sections/controllers/_all.scss +0 -4
  137. package/src/assets/sass/sections/controllers/_botom.scss +0 -522
  138. package/src/assets/sass/sections/controllers/_mini-player.scss +0 -169
  139. package/src/assets/sass/sections/controllers/_notification-rewind-forward.scss +0 -260
  140. package/src/assets/sass/sections/controllers/_top.scss +0 -169
  141. package/src/components/LTPlayerDevMethode.ts +0 -192
  142. package/src/components/LTPlayerEventsManager.ts +0 -31
  143. package/src/components/LTPlayerHls.ts +0 -38
  144. package/src/components/LTPlayerManager.ts +0 -266
  145. package/src/components/LTPlayerSettingsManager.ts +0 -117
  146. package/src/components/LTPlayerSetup.ts +0 -286
  147. package/src/components/LTPlayerStatusFeedback.ts +0 -76
  148. package/src/components/LTPlayerStorage.ts +0 -58
  149. package/src/components/LTPlayerType.ts +0 -371
  150. package/src/components/LTPlayerUpdate.ts +0 -61
  151. package/src/components/addInfo/LTPLayerAddInfoResizeManager.ts +0 -15
  152. package/src/components/addInfo/LTPlayerAddInfoDesktop.ts +0 -127
  153. package/src/components/addInfo/LTPlayerAddInfoManager.ts +0 -230
  154. package/src/components/addInfo/LTPlayerAddInfoMobile.ts +0 -113
  155. package/src/components/captions/LTPlayerCaptions.ts +0 -80
  156. package/src/components/config/LTPlayerConfig.ts +0 -280
  157. package/src/components/config/LTPlayerConfigProcessor.ts +0 -604
  158. package/src/components/controls/LTPlayerChapters.ts +0 -285
  159. package/src/components/controls/LTPlayerControls.ts +0 -57
  160. package/src/components/controls/LTPlayerControlsEvents.ts +0 -946
  161. package/src/components/controls/LTPlayerMini.ts +0 -285
  162. package/src/components/controls/LTPlayerSettingsControlsManager.ts +0 -60
  163. package/src/components/controls/settings/LTPlayerCommonSettingsControllers.ts +0 -71
  164. package/src/components/controls/settings/LTPlayerDesktopSettingsControllers.ts +0 -135
  165. package/src/components/controls/settings/LTPlayerMobileSettingsControllers.ts +0 -211
  166. package/src/components/events/LTPlayer.ts +0 -194
  167. package/src/components/events/LTPlayerCommon.ts +0 -252
  168. package/src/components/events/LTPlayerDesktop.ts +0 -222
  169. package/src/components/events/LTPlayerMobile.ts +0 -243
  170. package/src/components/poster/LTPlayerPoster.ts +0 -78
  171. package/src/components/poster/LTPlayerPosterEvents.ts +0 -172
  172. package/src/components/poster/LTPlayerPosterManager.ts +0 -46
  173. package/src/components/poster/LTPlayerPosterPreload.ts +0 -51
  174. package/src/components/poster/LTPlayerPosterPreloadEvents.ts +0 -152
  175. package/src/components/share/LTPlayerShareDesktop.ts +0 -131
  176. package/src/components/share/LTPlayerShareEvents.ts +0 -64
  177. package/src/components/share/LTPlayerShareManager.ts +0 -58
  178. package/src/components/share/LTPlayerShareMobile.ts +0 -154
  179. package/src/components/video/LTPlayerVideo.ts +0 -49
  180. package/src/global/controllers/LTPlayerController.ts +0 -58
  181. package/src/global/interfaces/EventsInterfaces.ts +0 -11
  182. package/src/global/interfaces/SettingsControlsInterfaces.ts +0 -3
  183. package/src/global/interfaces/TypeInterface.ts +0 -9
  184. package/src/global/types/ModuleTypes.d.ts +0 -35
  185. package/src/global/types/ModuleViews.d.ts +0 -13
  186. package/src/global/types/ModuleWindow.d.ts +0 -12
  187. package/src/global/types/Modules.d.ts +0 -44
  188. package/src/index.ts +0 -10
  189. package/src/json-schema/player-config.json +0 -16
  190. package/src/services/Helper.ts +0 -147
  191. package/src/services/IconsService.ts +0 -124
  192. package/src/services/LTPlayerRotateDeviceService.ts +0 -15
  193. package/src/services/LoaderService.ts +0 -21
  194. package/src/services/ResizeService.ts +0 -352
  195. package/src/services/TemplateService.ts +0 -136
  196. package/src/services/ValidatorService.ts +0 -31
  197. package/src/views/additionalInfo.handlebars +0 -103
  198. package/src/views/background.handlebars +0 -5
  199. package/src/views/controls.handlebars +0 -390
  200. package/src/views/onloadPoster.handlebars +0 -1
  201. package/src/views/poster.handlebars +0 -69
  202. package/src/views/settings.handlebars +0 -31
  203. package/src/views/settings.mobile.handlebars +0 -22
  204. package/src/views/share.handlebars +0 -101
  205. package/src/views/template.handlebars +0 -15
@@ -1,222 +0,0 @@
1
- import {LTPlayer} from "../LTPlayerType";
2
- import {LTPlayerSettingsControlsManager} from "../controls/LTPlayerSettingsControlsManager";
3
- import Plyr from "plyr";
4
- import {plyr} from "../../global/types/ModuleTypes";
5
- import {LTPlayerEventsManager} from "../LTPlayerEventsManager";
6
- import {LTPlayerCommon} from "./LTPlayerCommon";
7
- import {EventsInterfaces} from "../../global/interfaces/EventsInterfaces";
8
- import {LoaderService} from "../../services/LoaderService";
9
-
10
- export class LTPlayerDesktop extends LTPlayerCommon implements EventsInterfaces {
11
- setup(eventManager: LTPlayerEventsManager) {
12
- this.player = eventManager.player;
13
- this.plyr = eventManager.plyr;
14
-
15
- //init common events
16
- this.removeDesktopPlyrEvents();
17
-
18
- //init desktop events
19
- this.plyrOnReady();
20
- this.plyrEmbedOnReady();
21
- this.plyrEndVideo();
22
- this.plyrFullScreen();
23
- this.plyrTimeUpdate();
24
- this.plyrOnPlay();
25
- this.plyrOnPause();
26
- this.plyrOnSeek();
27
- this.plyrOnCueChange();
28
-
29
- this.setupCommon()
30
- }
31
-
32
- plyrOnSeek():void {
33
- let eventManager = this;
34
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
35
- let plyr: Plyr = this.plyr;
36
-
37
- plyr.on('seeked', function LTPlayerSeek(){
38
- if (plyr.stopped === true) {
39
- eventManager.endVideo()
40
- }
41
-
42
- if (plyr.isEmbed) {
43
- if (plyr.paused) {
44
- return;
45
- }
46
- let playerContainer = instance.plyr.elements.container;
47
- playerContainer.querySelector(`.lt-player__poster`).insertAdjacentHTML('afterend', LoaderService.getSpinner());
48
- }
49
- })
50
- }
51
-
52
- plyrOnReady(): void {
53
- let eventManager = this;
54
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
55
- let plyr: Plyr = this.plyr;
56
-
57
- plyr.on('ready', function LTPLayerDeskTopReady() {
58
- // set player id
59
- if (!instance.playerConfig.getPlayerId()) {
60
- instance.playerConfig.setPlayerId((instance.plyr as plyr).id);
61
- instance.playerId = instance.playerConfig.getPlayerId();
62
- }
63
-
64
-
65
- eventManager.setDefaultSettingsConfig();
66
-
67
- if (instance.plyr.isHTML5) {
68
-
69
- if (instance.hls) {
70
- instance.hls.init();
71
- }
72
- eventManager.onReadyPlayer();
73
- eventManager.modal(instance);
74
- instance.posterManager.desktopEvents.posterBody(instance);
75
-
76
- if (instance.playerConfig.getPreload()) {
77
- eventManager.preloadPoster.ready(instance);
78
- }
79
- }
80
-
81
- //set show/hide controls
82
- instance.playerControl.desktopEvents.showHide(instance)
83
-
84
- //set fullscreen button
85
- instance.playerControl.desktopEvents.fullScreenButtons(instance);
86
-
87
- //set play/pause icon
88
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'ready');
89
-
90
- //set rewind/forward
91
- instance.playerControl.desktopEvents.backwardForward(instance);
92
-
93
- instance.playerControl.desktopEvents.backwardForwardSeconds(instance);
94
-
95
- //set volume controller
96
- instance.playerControl.desktopEvents.volume(instance);
97
-
98
- //set settings controller
99
- instance.playerControl.settingsControlsManager.init(instance);
100
-
101
- //set chapters buttons
102
- if (instance.playerControl.chaptersService) {
103
- instance.playerControl.chaptersService.setButtonsEvents(instance);
104
- }
105
- })
106
- }
107
-
108
- modal(instance: LTPlayer.LandscapeType | LTPlayer.PortraitType) {
109
- window.addEventListener('click', function LTPLayerWindowClick(event: MouseEvent) {
110
-
111
- if (instance.additionalInfoService) {
112
- instance.additionalInfoService.desktopEvents.windowDesktopEvents(event, instance);
113
- }
114
- LTPlayerSettingsControlsManager.closeSettingsEvent(event);
115
- })
116
- }
117
- plyrEmbedOnReady(): void {
118
- let eventManager = this;
119
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
120
- let plyr: Plyr = this.plyr;
121
-
122
- if (plyr.isEmbed) {
123
- plyr.on('ready', function LTPLayerDesktopReadyEmbed() {
124
- plyr.embed.ready().then (function LTPlayerEmbedReady() {
125
- eventManager.modal(instance);
126
- eventManager.onReadyPlayer();
127
- instance.posterManager.desktopEvents.posterBody(instance);
128
- if (instance.playerConfig.getPreload()) {
129
- eventManager.preloadPoster.ready(instance);
130
- }
131
- })
132
- })
133
- }
134
- }
135
-
136
- plyrEndVideo() {
137
- let eventManager = this;
138
- let plyr: Plyr = this.plyr;
139
-
140
- plyr.on('ended', function LTPlayerDesktopEndVideo() {
141
- eventManager.endVideo();
142
- })
143
- }
144
-
145
- plyrFullScreen() {
146
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
147
- let plyr: Plyr = this.plyr;
148
-
149
- plyr.on('enterfullscreen', function LTPlayerDesktopEnterFullScreen(event) {
150
- //remove mini player on fullscreen
151
-
152
- instance.statusFeedbackService.setFullscreen()
153
- instance.miniPlayer.event.removeMiniPLOnFullScreen(instance, 'enterfullscreen');
154
-
155
- //fullscreen icon
156
- instance.playerControl.desktopEvents.fullscreenIcon(instance, 'enterfullscreen');
157
-
158
- instance.videoService.removeObjectFit();
159
-
160
- });
161
-
162
- plyr.on('exitfullscreen', function LTPlayerDesktopExitFullScreen(event) {
163
- //add mini player on exit fullscreen
164
-
165
- instance.statusFeedbackService.clearFullscreen()
166
- instance.miniPlayer.event.removeMiniPLOnFullScreen(instance, 'exitfullscreen');
167
-
168
- //fullscreen icon
169
- instance.playerControl.desktopEvents.fullscreenIcon(instance, 'exitfullscreen');
170
-
171
- instance.videoService.appendObjectFit();
172
- })
173
- }
174
-
175
-
176
- plyrTimeUpdate(): void {
177
- let common = this;
178
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
179
- let plyr: Plyr = this.plyr;
180
-
181
- plyr.on('timeupdate', function LTPlayerDesktopTimeUpdate(event) {
182
- common.timeUpdate(event);
183
- if (instance.playerConfig.getPreload().isActive) {
184
- common.preloadPoster.timeUpdate(instance, 'event');
185
- }
186
- LoaderService.removeSpinner(plyr.elements.container)
187
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
188
- })
189
- }
190
-
191
- plyrOnPlay() {
192
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
193
- let plyr: Plyr = this.plyr;
194
- plyr.on('play', function LTPlayerDesktopTimeUpdate(event) {
195
- instance.statusFeedbackService.setLoading()
196
- LoaderService.removeSpinner(plyr.elements.container)
197
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
198
- })
199
- }
200
-
201
- plyrOnPause() {
202
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
203
- let plyr: Plyr = this.plyr;
204
-
205
- plyr.on('pause', function LTPlayerDesktopTimeUpdate(event) {
206
- LoaderService.removeSpinner(plyr.elements.container)
207
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
208
- })
209
- }
210
-
211
- plyrOnCueChange() {
212
- let common = this;
213
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
214
- let plyr: Plyr = this.plyr;
215
-
216
- plyr.on('cuechange', function LTPlayerDesktopTimeUpdate(event) {
217
- if (instance.playerConfig.getCaptionsEnabled() && plyr.currentTrack >= 0) {
218
- common.setCustomSubtitles(plyr.elements.controls, event)
219
- }
220
- })
221
- }
222
- }
@@ -1,243 +0,0 @@
1
- import {LTPlayerEventsManager} from "../LTPlayerEventsManager";
2
- import {LTPlayerCommon} from "./LTPlayerCommon";
3
- import {EventsInterfaces} from "../../global/interfaces/EventsInterfaces";
4
- import {LTPlayer} from "../LTPlayerType";
5
- import Plyr from "plyr";
6
- import {plyr} from "../../global/types/ModuleTypes";
7
- import {LoaderService} from "../../services/LoaderService";
8
-
9
- export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
10
-
11
- setup(eventManager: LTPlayerEventsManager) {
12
- this.player = eventManager.player;
13
- this.plyr = eventManager.plyr;
14
-
15
- //init common events
16
- this.removeMobilePlyrEvents();
17
-
18
- //init mobile events
19
- this.plyrOnReady();
20
- this.plyrEmbedOnReady();
21
- this.plyrEndVideo();
22
- this.plyrFullScreen();
23
- this.plyrTimeUpdate();
24
- this.plyrOnPlay();
25
- this.plyrOnPause();
26
- this.plyrOnSeek();
27
- this.plyrOnCueChange()
28
-
29
- this.setupCommon()
30
- }
31
-
32
- plyrOnSeek():void {
33
- let eventManager = this;
34
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
35
- let plyr: Plyr = this.plyr;
36
-
37
- plyr.on('seeked', function LTPlayerSeek(){
38
- if (plyr.stopped === true) {
39
- eventManager.endVideo()
40
- }
41
-
42
- if (plyr.isEmbed) {
43
- if (plyr.paused) {
44
- return;
45
- }
46
- let playerContainer = instance.plyr.elements.container;
47
- playerContainer.querySelector(`.lt-player__poster`).insertAdjacentHTML('afterend', LoaderService.getSpinner());
48
- }
49
- })
50
- }
51
- plyrOnReady(): void {
52
- let eventManager = this;
53
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
54
- let plyr: Plyr = this.plyr;
55
-
56
- plyr.on('ready', function LTPLayerMobileReady() {
57
-
58
- if (!instance.playerConfig.getPlayerId()) {
59
- instance.playerConfig.setPlayerId((instance.plyr as plyr).id);
60
- instance.playerId = instance.playerConfig.getPlayerId();
61
- }
62
-
63
- eventManager.setDefaultSettingsConfig();
64
-
65
- if (instance.plyr.isHTML5) {
66
-
67
- if (instance.hls) {
68
- instance.hls.init();
69
- }
70
-
71
- eventManager.onReadyPlayer();
72
- instance.posterManager.mobileEvents.posterBody(instance);
73
-
74
- instance.playerControl.mobileEvents.seekBar(instance);
75
-
76
- if (instance.playerConfig.getPreload()) {
77
- eventManager.preloadPoster.ready(instance);
78
- }
79
- }
80
-
81
- instance.posterManager.mobileEvents.showControls(instance);
82
-
83
- instance.playerControl.mobileEvents.controlsTimeShow(instance);
84
-
85
- instance.playerControl.mobileEvents.fullScreenButtons(instance);
86
-
87
- //set play/pause icon
88
- instance.playerControl.mobileEvents.playPauseIcon(instance, 'ready');
89
-
90
- //set rewind/forward
91
- instance.playerControl.mobileEvents.backwardForward(instance);
92
- instance.playerControl.mobileEvents.backwardForwardSeconds(instance);
93
-
94
- //remove volume controller
95
- instance.playerControl.mobileEvents.volume(instance);
96
-
97
- //set settings controller
98
- instance.playerControl.settingsControlsManager.init(instance);
99
-
100
- //set chapters buttons
101
- if (instance.playerControl.chaptersService) {
102
- instance.playerControl.chaptersService.setMobileButtonEvents(instance);
103
- }
104
- })
105
- }
106
-
107
- plyrEmbedOnReady(): void {
108
- let eventManager = this;
109
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
110
- let plyr: Plyr = this.plyr;
111
-
112
- if (plyr.isEmbed) {
113
- plyr.on('ready', function LTPLayerMobileReadyEmbed(): void {
114
- plyr.embed.ready().then(function LTPlayerEmbedReady():void {
115
- eventManager.onReadyPlayer();
116
- instance.playerControl.mobileEvents.seekBar(instance);
117
- instance.posterManager.mobileEvents.posterBody(instance);
118
- if (instance.playerConfig.getPreload()) {
119
- eventManager.preloadPoster.ready(instance);
120
- }
121
- })
122
- });
123
- }
124
- }
125
-
126
- plyrEndVideo() {
127
- let eventManager = this;
128
- let plyr: Plyr = this.plyr;
129
-
130
- plyr.on('ended', function LTPlayerMobileEndVideo() {
131
- eventManager.endVideo();
132
- })
133
- }
134
-
135
- plyrFullScreen(): void {
136
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
137
- let plyr: Plyr = this.plyr;
138
-
139
- plyr.on('enterfullscreen', function LTPlayerDesktopEnterFullScreen(event) {
140
- instance.statusFeedbackService.setFullscreen()
141
- instance.miniPlayer.event.removeMiniPLOnFullScreen(instance, 'enterfullscreen');
142
- //fullscreen icon
143
- instance.playerControl.desktopEvents.fullscreenIcon(instance, 'enterfullscreen');
144
-
145
- instance.videoService.removeObjectFit();
146
- });
147
-
148
- plyr.on('exitfullscreen', function LTPlayerDesktopExitFullScreen(event) {
149
- instance.statusFeedbackService.clearFullscreen()
150
- instance.miniPlayer.event.removeMiniPLOnFullScreen(instance, 'exitfullscreen');
151
- //fullscreen icon
152
- instance.playerControl.desktopEvents.fullscreenIcon(instance, 'exitfullscreen');
153
- instance.videoService.appendObjectFit();
154
- })
155
- }
156
-
157
- plyrTimeUpdate(): void {
158
- let eventManager = this;
159
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
160
- let plyr: Plyr = this.plyr;
161
-
162
- plyr.on('timeupdate', function LTPlayerMobileTimeUpdate(event) {
163
-
164
- if (instance.playerConfig.getPreload().isActive) {
165
- eventManager.preloadPoster.timeUpdate(instance, 'event');
166
- }
167
- LoaderService.removeSpinner(plyr.elements.container)
168
-
169
- eventManager.timeUpdate(event);
170
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
171
- instance.playerControl.mobileEvents.removePlyrControlsClass(instance);
172
- })
173
- }
174
-
175
- plyrOnPlay() {
176
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
177
- let plyr: Plyr = this.plyr;
178
-
179
- plyr.on('play', function LTPlayerDesktopTimeUpdate(event) {
180
- instance.statusFeedbackService.setLoading()
181
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
182
- })
183
- }
184
-
185
- plyrOnPause() {
186
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
187
- let plyr: Plyr = this.plyr;
188
-
189
- plyr.on('pause', function LTPlayerDesktopTimeUpdate(event) {
190
- LoaderService.removeSpinner(plyr.elements.container)
191
- instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
192
- })
193
- }
194
-
195
- setMobileEvent = (selector: Element): undefined | HammerManager => {
196
- let instance = this;
197
-
198
- //check if getDevice is mobile or desktop
199
- if (instance.player.playerConfig.getDevice() === 'mobile') {
200
- const manager = new Hammer.Manager(selector);
201
- manager.add(new Hammer.Pan({
202
- direction : 30
203
- }))
204
-
205
- manager.add(new Hammer.Tap({
206
- event : 'tripletap',
207
- taps : 3
208
- }));
209
-
210
- manager.add(new Hammer.Tap({
211
- event : 'doubletap',
212
- taps : 2
213
- }));
214
-
215
- manager.add( new Hammer.Tap({
216
- event : 'singletap'
217
- }));
218
-
219
- manager.get('doubletap').recognizeWith('singletap');
220
- manager.get('singletap').requireFailure('doubletap');
221
- manager.get('tripletap').recognizeWith('doubletap');
222
- manager.get('doubletap').requireFailure('tripletap');
223
- manager.get('pan').set({direction: Hammer.DIRECTION_DOWN});
224
-
225
- return manager;
226
- }
227
-
228
- return undefined;
229
- }
230
-
231
- plyrOnCueChange() {
232
- let common = this;
233
- let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
234
- let plyr: Plyr = this.plyr;
235
-
236
- plyr.on('cuechange', function LTPlayerDesktopTimeUpdate(event) {
237
- if (instance.playerConfig.getCaptionsEnabled() && plyr.currentTrack >= 0) {
238
- common.setCustomSubtitles(plyr.elements.controls, event)
239
- }
240
- })
241
- }
242
-
243
- }
@@ -1,78 +0,0 @@
1
- import {TemplateService} from "../../services/TemplateService";
2
- import {LTPlayerConfig} from "../config/LTPlayerConfig";
3
- import {IconsService} from "../../services/IconsService";
4
- import Plyr from "plyr";
5
- import {Helper} from "../../services/Helper";
6
-
7
- export class LTPlayerPoster {
8
- custom_selector: string = 'lt-player__poster';
9
- config: LTPlayerConfig;
10
- iconService: IconsService;
11
- templateService: TemplateService;
12
- plyr: Plyr
13
- constructor(player: Plyr, templateService: TemplateService, config: LTPlayerConfig, iconService: IconsService) {
14
- this.plyr = player;
15
- this.iconService = iconService;
16
- this.templateService = templateService;
17
- this.config = config;
18
- }
19
-
20
- setTemplate() {
21
-
22
- Object.assign(this.config, this.iconService.getIconsByComponent('poster'));
23
-
24
- const logo: string = this.iconService.getLogo();
25
-
26
- const playerTypeString = Helper.getPlayerStringType(this.config.getPlayerType());
27
-
28
- let templateData = {[playerTypeString]: true, config:this.config, logoBig: logo, isShare : !!(this.config.isShareData())}
29
-
30
- const posterTemplate = this.templateService.getPoster(templateData);
31
-
32
- const container = this.plyr.elements.wrapper;
33
-
34
- container.insertAdjacentHTML("afterend", posterTemplate);
35
- }
36
-
37
-
38
- setImage() {
39
- const customImageSelector = this.plyr.elements.container.querySelector('.lt-player__poster__img--set-custom');
40
- const defaultImageSelector = this.plyr.elements.container.querySelector('.lt-player__poster__img__set-default');
41
-
42
- const checkImage = (imageUrl: string, callback: (arg0: boolean) => void) => {
43
- let img = new Image();
44
-
45
- img.onerror = function() {
46
- callback(false);
47
- };
48
-
49
- img.onload = function() {
50
- callback(true);
51
- };
52
-
53
- img.src = imageUrl;
54
- }
55
-
56
-
57
- const setDefault = () => {
58
- if (defaultImageSelector) {
59
- defaultImageSelector.classList.remove('d-none');
60
- }
61
- }
62
-
63
-
64
- if (this.config.getPosterImage()) {
65
- if (customImageSelector) {
66
- checkImage(this.config.getPosterImage(), function (exist) {
67
- if (!exist) {
68
- setDefault();
69
- } else {
70
- customImageSelector.classList.remove('d-none');
71
- }
72
- })
73
- }
74
- } else {
75
- setDefault()
76
- }
77
- }
78
- }