@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,76 +0,0 @@
1
- import {LTPlayerController} from "../global/controllers/LTPlayerController";
2
-
3
- export class LTPlayerStatusFeedback {
4
-
5
- player: LTPlayerController
6
- element: HTMLElement
7
-
8
- constructor(player: LTPlayerController) {
9
- this.player = player;
10
- }
11
-
12
- private getElement(): HTMLElement {
13
- if (!this.element) {
14
- if (this.player.playerConfig) {
15
- this.element = this.player.playerConfig.getPlayerElementContainer()
16
- } else {
17
- console.error("Failed to get element from playerConfig")
18
- }
19
- }
20
- return this.element
21
- }
22
-
23
- private addClass(name: string) {
24
- const element = this.getElement()
25
- if (element && !element.classList.contains(name)) {
26
- element.classList.add(name)
27
- }
28
- }
29
-
30
- private removeClass(name: string) {
31
- const element = this.getElement()
32
- if (element && element.classList.contains(name)) {
33
- element.classList.remove(name)
34
- }
35
- }
36
-
37
- setLoading() {
38
- this.addClass("lt-state-loader-active")
39
- }
40
-
41
- setLoadingSeek() {
42
- this.addClass("lt-state-seeking")
43
- this.setLoading()
44
- }
45
-
46
- clearLoading() {
47
- this.removeClass("lt-state-loader-active")
48
- this.removeClass("lt-state-seeking")
49
- }
50
-
51
- setFullscreen() {
52
- this.addClass("lt-state-fullscreen")
53
- }
54
-
55
- clearFullscreen() {
56
- this.removeClass("lt-state-fullscreen")
57
- }
58
-
59
- setControlsVisible() {
60
- this.addClass("lt-state-controls-visible")
61
- }
62
-
63
- clearControlsVisible() {
64
- this.removeClass("lt-state-controls-visible")
65
- }
66
-
67
- setCaptionsEnabled() {
68
- this.addClass("lt-state-captions-enabled")
69
- }
70
-
71
- clearCaptionsEnabled() {
72
- this.removeClass("lt-state-captions-enabled")
73
- }
74
-
75
- }
76
-
@@ -1,58 +0,0 @@
1
- export class LTPlayerStorage {
2
-
3
- constructor() {
4
- if (!localStorage.getItem('lt-player')) {
5
- this.createStorage();
6
- }
7
- }
8
-
9
- createStorage() {
10
- const defaultSettings = {
11
- speed: 1,
12
- volume: 1,
13
- muted: false
14
- };
15
- localStorage.setItem('lt-player', JSON.stringify(defaultSettings));
16
- }
17
-
18
- setSettings(settings: object) {
19
- localStorage.setItem('lt-player', JSON.stringify(settings));
20
- }
21
-
22
- getSettings() {
23
- return JSON.parse(localStorage.getItem('lt-player'));
24
- }
25
-
26
- getSpeed() {
27
- const settings = JSON.parse(localStorage.getItem('lt-player'));
28
- return settings ? settings.speed : 1;
29
- }
30
-
31
- setSpeed(speed: number) {
32
- const settings = JSON.parse(localStorage.getItem('lt-player')) || {};
33
- settings.speed = speed;
34
- localStorage.setItem('lt-player', JSON.stringify(settings));
35
- }
36
-
37
- getVolume() {
38
- const settings = JSON.parse(localStorage.getItem('lt-player'));
39
- return settings ? settings.volume : 1;
40
- }
41
-
42
- setVolume(volume: number) {
43
- const settings = JSON.parse(localStorage.getItem('lt-player')) || {};
44
- settings.volume = volume;
45
- localStorage.setItem('lt-player', JSON.stringify(settings));
46
- }
47
-
48
- getMutedState() {
49
- const settings = JSON.parse(localStorage.getItem('lt-player'));
50
- return settings ? settings.muted : false;
51
- }
52
-
53
- setMutedState(state: boolean) {
54
- const settings = JSON.parse(localStorage.getItem('lt-player')) || {};
55
- settings.muted = state;
56
- localStorage.setItem('lt-player', JSON.stringify(settings));
57
- }
58
- }
@@ -1,371 +0,0 @@
1
- import {LTPlayerController} from "../global/controllers/LTPlayerController";
2
- import {TypeInterface} from "../global/interfaces/TypeInterface";
3
- import {defaultType, playerConfigType, plyr} from "../global/types/ModuleTypes";
4
- import {LTPlayerMini} from "./controls/LTPlayerMini";
5
- import {LTPlayerConfig} from "./config/LTPlayerConfig";
6
- import Plyr from "plyr";
7
- import {LTPlayerDevMethode} from "./LTPlayerDevMethode";
8
- import {LTPlayerEventsManager} from "./LTPlayerEventsManager";
9
- import {LTPLayerAddInfo} from "./addInfo/LTPlayerAddInfoManager";
10
- import {LTPlayerEvents} from "./events/LTPlayer";
11
- import {Helper} from "../services/Helper";
12
- import {LTPlayerHls} from "./LTPlayerHls";
13
- import {LTPlayerUpdate} from "./LTPlayerUpdate";
14
-
15
- export namespace LTPlayer {
16
-
17
- /**
18
- * Setup Portrait Type Player
19
- */
20
- export class PortraitType extends LTPlayerController implements TypeInterface {
21
-
22
- pausedPlayer: Plyr;
23
- updateManager: LTPlayerUpdate;
24
-
25
- /**
26
- * Create a new Player instance root element
27
- * @returns never
28
- * @param configData
29
- * @param additionalInfoService
30
- */
31
- setup(configData: playerConfigType, additionalInfoService: LTPLayerAddInfo.Controller | null ): boolean {
32
-
33
- if (!configData) {
34
- return false;
35
- }
36
- this.setMobileEvents();
37
- this.setDesktopEvents();
38
-
39
- if (process.env.DEBUG === "true") {
40
- console.info(`Finish add events`);
41
- }
42
-
43
- this.additionalInfoService = additionalInfoService;
44
- this.miniPlayer = new LTPlayerMini();
45
- this.setPlayerConfig(configData.body, configData.version);
46
- this.initPlayer();
47
-
48
- if (this.additionalInfoService) {
49
- this.additionalInfoService.init(this, this.playerConfig.getPlayerId(), this.iconService, this.templateService)
50
- }
51
-
52
- if (Helper.checkIsHls(this.playerConfig.getVideoUrl().videoUrl)){
53
- this.hls = new LTPlayerHls(this, undefined);
54
- }
55
-
56
- this.setEvents();
57
- this.updateManager = new LTPlayerUpdate(this);
58
-
59
- return true;
60
- }
61
-
62
-
63
- setEvents() {
64
- this.eventInstance = new LTPlayerEventsManager(this);
65
- }
66
- setDesktopEvents() {
67
- this.desktopEvents = new LTPlayerEvents.Desktop();
68
- }
69
-
70
- setMobileEvents() {
71
- this.mobileEvents = new LTPlayerEvents.Mobile();
72
- }
73
-
74
- /**
75
- * Set Player config Instance
76
- * @param configData
77
- * @param version
78
- * @private
79
- */
80
- private setPlayerConfig(configData: playerConfigType, version : string | number) {
81
- this.playerConfig = new LTPlayerConfig(version);
82
- this.playerConfig.mapConfigData(configData);
83
- }
84
-
85
- /**
86
- * Inner player template in parent dom element
87
- * @param config
88
- * @private
89
- */
90
- private innerPlayerTemplate(config: LTPlayerConfig) {
91
- const playerContainer: HTMLElement = this.playerConfig.getPlayerElementContainer();
92
- playerContainer.innerHTML = this.templateService.getTemplateByType(config);
93
- }
94
-
95
- /**
96
- * Get Controllers in HTML String Format
97
- * @return string
98
- * @private
99
- */
100
- private getPlayerControllers(): string {
101
- return this.playerControl.getControls(this.playerConfig, this.iconService)
102
- }
103
-
104
- /**
105
- * Start init player with config data
106
- * @private
107
- */
108
- private initPlayer() {
109
-
110
- this.innerPlayerTemplate(this.playerConfig);
111
-
112
- this.playerConfig.getPlayerElementContainer().classList.add(`lt-player-portrate--${this.playerConfig.getDevice()}`);
113
- this.playerConfig.getPlayerElementContainer().classList.add('lt-player-orientation--portrait');
114
-
115
- let playerSettings = {};
116
-
117
- const controls = this.getPlayerControllers();
118
-
119
- Object.assign(playerSettings, {controls});
120
-
121
- if (this.playerConfig.getVideoType() === 'embedded') {
122
- Object.assign(playerSettings, this.playerConfig.getEmbedOrigin())
123
- }
124
-
125
- Object.assign(playerSettings, this.playerConfig.getDefaultConfigItems());
126
-
127
- Object.assign(playerSettings, {ratio : '9:16'});
128
-
129
- if (this.playerConfig.getFullscreenMode()) {
130
- Object.assign(playerSettings, this.playerConfig.getFullscreenMode());
131
- this.playerConfig.getPlayerElementContainer().classList.add('fullscreen-disabled');
132
- }
133
-
134
- const element = this.playerConfig.getPlayerElementContainer().querySelector('.embed_player');
135
-
136
- this.plyr = new Plyr(element, playerSettings);
137
-
138
- this.playerConfig.setObjectFit(this.plyr, 'portrait').then(() => {
139
- this.videoService.init(this);
140
- });
141
-
142
- this.windowService.init(this);
143
-
144
- this.posterManager.init(this);
145
-
146
- const chapters = this.playerConfig.getChapters();
147
-
148
- if (chapters) {
149
- this.playerControl.initChapters(this.playerConfig.getChapters());
150
- }
151
-
152
- this.devMethodePlayer = new LTPlayerDevMethode.Player(this);
153
-
154
- if (this.playerConfig.getShareData()) {
155
- this.share.init(this);
156
- }
157
-
158
- if (this.playerConfig.getDevice() !== 'mobile') {
159
- this.miniPlayer.init(this.plyr, this.templateService, this.iconService, this.playerConfig.getPlayerType(), this);
160
- }
161
- }
162
-
163
- play(isFirst?: boolean) {
164
- this.devMethodePlayer.play(isFirst);
165
- }
166
-
167
- pause() {
168
- this.devMethodePlayer.pause();
169
- }
170
-
171
- stop() {
172
- this.devMethodePlayer.stop();
173
- }
174
-
175
- preload() {
176
- return this.devMethodePreload;
177
- }
178
-
179
- enterMiniPlayer() {
180
- return this.devMethodePlayer.enterMiniPlayer()
181
- }
182
- exitMiniPlayer() {
183
- return this.devMethodePlayer.exitMiniPlayer()
184
- }
185
-
186
- destruct() {
187
- let _this = this;
188
-
189
- return new Promise((resolve) => {
190
- _this.additionalInfoService.remove(this);
191
-
192
- _this.additionalInfoService = null;
193
-
194
- this.plyr.destroy(() => {
195
- _this = undefined;
196
- resolve(true);
197
- })
198
- })
199
- }
200
- }
201
-
202
-
203
- export class LandscapeType extends LTPlayerController implements TypeInterface {
204
-
205
- pausedPlayer: Plyr;
206
-
207
- /**
208
- * Create a new Video Player root element
209
- * @returns never
210
- * @param configData
211
- * @param additionalInfoService
212
- */
213
- setup(configData: playerConfigType, additionalInfoService: LTPLayerAddInfo.Controller | null): boolean {
214
-
215
- if (!configData) {
216
- return false;
217
- }
218
-
219
- if (additionalInfoService) {
220
- console.warn('Additional Info is not implemented for Landscape type!')
221
- }
222
-
223
- this.setDesktopEvents();
224
- this.setMobileEvents();
225
-
226
- if (process.env.DEBUG === "true") {
227
- console.info(`Finish add events`);
228
- }
229
-
230
- this.miniPlayer = new LTPlayerMini();
231
- this.setPlayerConfig(configData.body, configData.version);
232
- this.initPlayer();
233
-
234
-
235
- if (Helper.checkIsHls(this.playerConfig.getVideoUrl().videoUrl)){
236
- this.hls = new LTPlayerHls(this, undefined);
237
- }
238
-
239
-
240
- this.setEvents();
241
-
242
- if (this.playerConfig.getCaptionsEnabled() === true) {
243
- this.statusFeedbackService.setCaptionsEnabled()
244
- }
245
-
246
- return true;
247
- }
248
-
249
- setEvents() {
250
- this.eventInstance = new LTPlayerEventsManager(this);
251
- }
252
-
253
- private initPlayer() {
254
-
255
- this.innerPlayerTemplate(this.playerConfig);
256
-
257
- this.playerConfig.getPlayerElementContainer().classList.add(`lt-player-landscape--${this.playerConfig.getDevice()}`);
258
- this.playerConfig.getPlayerElementContainer().classList.add('lt-player-orientation--landscape');
259
-
260
- let playerSettings = {};
261
-
262
- const controls = this.getPlayerControllers();
263
-
264
- Object.assign(playerSettings, {controls});
265
-
266
- if (this.playerConfig.getVideoType() === 'embedded') {
267
- Object.assign(playerSettings, this.playerConfig.getEmbedOrigin())
268
- }
269
-
270
- Object.assign(playerSettings, this.playerConfig.getDefaultConfigItems());
271
-
272
- Object.assign(playerSettings, {ratio : '16:9'});
273
-
274
- if (this.playerConfig.getFullscreenMode()) {
275
- Object.assign(playerSettings, this.playerConfig.getFullscreenMode());
276
- }
277
-
278
- const element = this.playerConfig.getPlayerElementContainer().querySelector('.embed_player');
279
-
280
- this.plyr = new Plyr(element, playerSettings);
281
-
282
- this.playerConfig.setObjectFit(this.plyr, 'landscape').then(() => {
283
- this.videoService.init(this);
284
- });
285
-
286
- this.windowService.init(this);
287
-
288
- this.posterManager.init(this);
289
-
290
- const chapters = this.playerConfig.getChapters();
291
-
292
- if (chapters) {
293
- this.playerControl.initChapters(this.playerConfig.getChapters());
294
- }
295
-
296
- this.devMethodePlayer = new LTPlayerDevMethode.Player(this);
297
-
298
- if (this.playerConfig.getShareData()) {
299
- this.share.init(this);
300
- }
301
-
302
- if (this.playerConfig.getDevice() !== 'mobile') {
303
- this.miniPlayer.init(this.plyr, this.templateService, this.iconService, this.playerConfig.getPlayerType(), this);
304
- }
305
- }
306
-
307
- private getPlayerControllers(): string {
308
- return this.playerControl.getControls(this.playerConfig, this.iconService)
309
- }
310
-
311
- private innerPlayerTemplate(config: LTPlayerConfig) {
312
- const playerContainer: HTMLElement = this.playerConfig.getPlayerElementContainer();
313
- playerContainer.innerHTML = this.templateService.getTemplateByType(config);
314
- }
315
-
316
- private setPlayerConfig(configData: playerConfigType, version: string | number) {
317
- this.playerConfig = new LTPlayerConfig(version);
318
- this.playerConfig.mapConfigData(configData);
319
- }
320
-
321
- public getPlayer() {
322
- return this.plyr;
323
- }
324
-
325
- play() {
326
- this.devMethodePlayer.play();
327
- }
328
-
329
- pause() {
330
- this.devMethodePlayer.pause();
331
- }
332
-
333
- stop() {
334
- this.devMethodePlayer.stop();
335
- }
336
-
337
- preload() {
338
- return this.devMethodePreload;
339
- }
340
-
341
- enterMiniPlayer() {
342
- return this.devMethodePlayer.enterMiniPlayer()
343
- }
344
-
345
- exitMiniPlayer() {
346
- return this.devMethodePlayer.exitMiniPlayer()
347
- }
348
-
349
- destruct() {
350
- let _this = this;
351
-
352
- return new Promise((resolve) => {
353
- _this.additionalInfoService.remove(this);
354
-
355
- _this.additionalInfoService = null;
356
-
357
- this.plyr.destroy(() => {
358
- _this = undefined;
359
- resolve(true);
360
- })
361
- })
362
- }
363
- setDesktopEvents() {
364
- this.desktopEvents = new LTPlayerEvents.Desktop();
365
- }
366
-
367
- setMobileEvents() {
368
- this.mobileEvents = new LTPlayerEvents.Mobile();
369
- }
370
- }
371
- }
@@ -1,61 +0,0 @@
1
- import {LTPlayer} from "./LTPlayerType";
2
- import {defaultType} from "../global/types/ModuleTypes";
3
- import {LTPLayerAddInfo} from "./addInfo/LTPlayerAddInfoManager";
4
- import Hls from "hls.js";
5
-
6
- export class LTPlayerUpdate {
7
-
8
- player: LTPlayer.PortraitType;
9
-
10
- constructor(player: LTPlayer.PortraitType) {
11
- this.player = player;
12
- }
13
-
14
- updatePlayer(config: defaultType) {
15
- console.log(config)
16
- this.updateVideo(config.body.videoUrl, config.body.posterImage);
17
- this.updateTitle(config.body.videoParagraph);
18
- this.updateAuthor(config.body.videoTitle);
19
- this.updateSubtitles(config.body.defaultConfig?.captions.url ?? null);
20
- this.updateChapters(config);
21
- this.player.additionalInfoService.setConfig(config.body.additionalInfo);
22
- return;
23
- }
24
-
25
- updateChapters(config: defaultType) {
26
- this.player.playerControl.initChapters(config.body.chapters);
27
- }
28
-
29
- updateVideo(videoUrl: string, poster: string) {
30
- const video = document.querySelector('video');
31
- video.poster = poster;
32
- this.player.playerConfig.setPosterImage(poster);
33
- this.player.posterManager.poster.setImage();
34
- const coverImage = document.querySelector('.lt-player__poster__img--set-custom') as HTMLImageElement;
35
- coverImage.src = poster;
36
-
37
- if (Hls.isSupported()) {
38
- this.player.hls.hlsInstance.detachMedia();
39
- this.player.hls.hlsInstance.loadSource(videoUrl);
40
- this.player.hls.hlsInstance.attachMedia(video);
41
- } else {
42
- document.querySelector('video').src = videoUrl;
43
- }
44
- }
45
-
46
- updateTitle(title: string) {
47
- const titleHeader = document.querySelector('.poster-title');
48
- titleHeader.textContent = '';
49
- titleHeader.textContent = title;
50
- }
51
-
52
- updateAuthor(author: string) {
53
- const authorParagraph = document.querySelector('.poster-paragraph__content');
54
- authorParagraph.textContent = '';
55
- authorParagraph.textContent = author;
56
- }
57
-
58
- updateSubtitles(src: string|null) {
59
- this.player.captionsService.setCaptions(src)
60
- }
61
- }
@@ -1,15 +0,0 @@
1
- import {LTPlayer} from "../LTPlayerType";
2
-
3
- export class LTPLayerAddInfoResizeManager {
4
- device: string
5
- playerInstance: LTPlayer.LandscapeType | LTPlayer.PortraitType
6
-
7
- constructor(playerInstance: LTPlayer.LandscapeType | LTPlayer.PortraitType) {
8
- this.playerInstance = playerInstance;
9
- this.device = playerInstance.playerConfig.getDevice();
10
- }
11
-
12
- setContainer() {
13
-
14
- }
15
- }