@latest-thinking/lt-player 1.0.7-b → 1.0.7-d

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latest-thinking/lt-player",
3
- "version": "1.0.7-b",
3
+ "version": "1.0.7-d",
4
4
  "description": "LT player.",
5
5
  "main": "dist/js/lt-player-main.js",
6
6
  "module": "dist/js/lt-player-main.js",
@@ -180,6 +180,13 @@ export class LTPlayerSetup {
180
180
  const processVideo = () => {
181
181
  let videoTag = document.createElement('video');
182
182
  videoTag.src = url;
183
+
184
+ if (url.includes('.m3u8')) {
185
+ return new Promise((resolve) => {
186
+ resolve('portrait')
187
+ })
188
+ }
189
+
183
190
  return new Promise((resolve) => {
184
191
  videoTag.addEventListener( "loadedmetadata", function (e) {
185
192
  if (this.videoWidth > this.videoHeight) {
@@ -2,7 +2,7 @@ import {LTPLayerAddInfo} from "./LTPlayerAddInfoManager";
2
2
  import {additionalInformation} from "../../global/types/ModuleTypes";
3
3
 
4
4
  export class LTPlayerAddInfoDesktop {
5
- set(controller: LTPLayerAddInfo.Controller) {
5
+ set(controller: LTPLayerAddInfo.Controller, type: string) {
6
6
 
7
7
  const playerContainer = controller.plyr.elements.container;
8
8
  const playerControlsContainer = controller.plyr.elements.controls;
@@ -10,7 +10,6 @@ export class LTPlayerAddInfoDesktop {
10
10
  let additionalInfoBodyIn: Element = playerControlsContainer.querySelector('.lt-player__additional-info');
11
11
  let instance = controller;
12
12
 
13
-
14
13
  const getInfoButtons = (selector: Element): NodeList => {
15
14
 
16
15
  if (!selector) {
@@ -24,7 +23,7 @@ export class LTPlayerAddInfoDesktop {
24
23
  const infoButtonsOut: NodeList = getInfoButtons(additionalInfoBodyOut);
25
24
  const infoButtonsIn: NodeList = getInfoButtons(additionalInfoBodyIn);
26
25
 
27
- if (!infoButtonsOut) {
26
+ if (type == 'in') {
28
27
  buttons = infoButtonsIn;
29
28
  } else {
30
29
  buttons = infoButtonsOut;
@@ -607,7 +607,6 @@ export namespace LTPlayerControlsEvents {
607
607
  }
608
608
  }, 4000);
609
609
  }
610
- console.log('hide;')
611
610
  eventsInstance.common.subtitlesShow(instance);
612
611
  }
613
612
  }
@@ -65,7 +65,7 @@ export class LTPlayerDesktop extends LTPlayerCommon implements EventsInterfaces
65
65
  }
66
66
  eventManager.onReadyPlayer();
67
67
  eventManager.modal(instance);
68
- instance.posterManager.desktopEvents.buttons(instance);
68
+ instance.posterManager.desktopEvents.posterBody(instance);
69
69
 
70
70
  if (instance.playerConfig.getPreload()) {
71
71
  eventManager.preloadPoster.ready(instance);
@@ -118,7 +118,7 @@ export class LTPlayerDesktop extends LTPlayerCommon implements EventsInterfaces
118
118
  plyr.embed.ready().then (function LTPlayerEmbedReady() {
119
119
  eventManager.modal(instance);
120
120
  eventManager.onReadyPlayer();
121
- instance.posterManager.desktopEvents.buttons(instance);
121
+ instance.posterManager.desktopEvents.posterBody(instance);
122
122
  if (instance.playerConfig.getPreload()) {
123
123
  eventManager.preloadPoster.ready(instance);
124
124
  }
@@ -61,7 +61,7 @@ export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
61
61
  }
62
62
 
63
63
  eventManager.onReadyPlayer();
64
- instance.posterManager.mobileEvents.buttons(instance);
64
+ instance.posterManager.mobileEvents.posterBody(instance);
65
65
 
66
66
  instance.playerControl.mobileEvents.seekBar(instance);
67
67
 
@@ -102,11 +102,11 @@ export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
102
102
  let plyr: Plyr = this.plyr;
103
103
 
104
104
  if (plyr.isEmbed) {
105
- plyr.on('ready', function LTPLayerMobileReadyEmbed() {
106
- plyr.embed.ready().then(function LTPlayerEmbedReady() {
105
+ plyr.on('ready', function LTPLayerMobileReadyEmbed(): void {
106
+ plyr.embed.ready().then(function LTPlayerEmbedReady():void {
107
107
  eventManager.onReadyPlayer();
108
108
  instance.playerControl.mobileEvents.seekBar(instance);
109
- instance.posterManager.mobileEvents.buttons(instance);
109
+ instance.posterManager.mobileEvents.posterBody(instance);
110
110
  if (instance.playerConfig.getPreload()) {
111
111
  eventManager.preloadPoster.ready(instance);
112
112
  }
@@ -78,50 +78,65 @@ export namespace LTPlayerPosterEvents {
78
78
 
79
79
  export class Desktop {
80
80
  /**
81
- * Add play event on poster buttons
81
+ * Add play event on poster
82
82
  */
83
- buttons(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
83
+ posterBody(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
84
84
 
85
- const common = new LTPlayerPosterEvents.Common();
85
+ const common: Common = new LTPlayerPosterEvents.Common();
86
86
 
87
- common.poster.getButtons(instance)?.forEach(button => {
88
- button.addEventListener('click', function LTPlayerPosterButtons(event) {
87
+ const playerContainer: HTMLElement = instance.plyr.elements.container;
88
+ const posterBody: HTMLElement = playerContainer.querySelector('.lt-player__poster__body');
89
+
90
+
91
+ if (posterBody) {
92
+ posterBody.addEventListener('click', function LTPlayerPosterButtons(event) {
89
93
  event.preventDefault();
94
+
95
+ if((event.target as HTMLInputElement).classList.contains('poster-lt-player-share') ||
96
+ (event.target as HTMLInputElement).classList.contains('filter')
97
+ ) {
98
+ return;
99
+ }
100
+
90
101
  instance.playerControl.desktopEvents.titleLineBreak(instance);
91
102
  instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
92
103
  common.poster.reset(instance);
104
+
93
105
  })
94
- });
106
+ }
95
107
  }
96
108
  }
97
109
 
98
110
  export class Mobile {
99
111
  /**
100
- * Add play event on poster buttons mobile
112
+ * Add play event on poster mobile
101
113
  */
102
- buttons(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
114
+ posterBody(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
103
115
 
104
- const playerControlsContainer = instance.plyr.elements.controls;
105
- const playerContainer = instance.plyr.elements.container;
106
- const common = new LTPlayerPosterEvents.Common();
116
+ const playerContainer: HTMLElement = instance.plyr.elements.container;
117
+ const playerPoster: Element = playerContainer.querySelector('.plyr__poster');
118
+ const playerBody: Element = playerContainer.querySelector('.lt-player__poster__body');
119
+ const common: Common = new LTPlayerPosterEvents.Common();
107
120
 
108
- common.poster.getButtons(instance)?.forEach(button => {
109
- let mobileEvent: HammerManager = instance.eventInstance.mobileEvents.setMobileEvent(button);
121
+ let mobileEvent: HammerManager = instance.eventInstance.mobileEvents.setMobileEvent(playerBody);
122
+
123
+ if (mobileEvent) {
124
+ mobileEvent.on('singletap', function LTPlayerMobilePosterPlay() {
110
125
 
111
- if (mobileEvent) {
112
- mobileEvent.on('singletap', function LTPlayerMobilePosterButtons() {
126
+ if (playerPoster.classList.contains('d-none')) {
127
+ return;
128
+ }
113
129
 
114
- instance.playerControl.desktopEvents.titleLineBreak(instance);
130
+ instance.playerControl.desktopEvents.titleLineBreak(instance);
115
131
 
116
- instance.playerControl.mobileEvents.playPauseIcon(instance, 'timeupdate');
117
- common.poster.reset(instance);
132
+ instance.playerControl.mobileEvents.playPauseIcon(instance, 'timeupdate');
133
+ common.poster.reset(instance);
118
134
 
119
- playerContainer.classList.remove('plyr__poster-enabled');
135
+ playerContainer.classList.remove('plyr__poster-enabled');
120
136
 
121
- instance.playerControl.mobileEvents.showControls(instance);
122
- });
123
- }
124
- });
137
+ instance.playerControl.mobileEvents.showControls(instance);
138
+ });
139
+ }
125
140
  }
126
141
 
127
142
  /**
@@ -138,9 +153,9 @@ export namespace LTPlayerPosterEvents {
138
153
  }
139
154
 
140
155
  showControls(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
141
- const playerContainer = instance.plyr.elements.container;
142
- const playerControlsContainer = instance.plyr.elements.controls;
143
- const playerPoster = playerContainer.querySelector('.plyr__poster');
156
+ const playerContainer: HTMLElement = instance.plyr.elements.container;
157
+ const playerControlsContainer: HTMLElement = instance.plyr.elements.controls;
158
+ const playerPoster: Element = playerContainer.querySelector('.plyr__poster');
144
159
 
145
160
 
146
161
  let mobileEvent: HammerManager = instance.eventInstance.mobileEvents.setMobileEvent(playerPoster);
@@ -153,7 +168,5 @@ export namespace LTPlayerPosterEvents {
153
168
  });
154
169
  }
155
170
  }
156
-
157
-
158
171
  }
159
172
  }
@@ -148,9 +148,7 @@ export class ResizeService {
148
148
  this.playerInstance.plyr.elements.container.insertAdjacentHTML("afterend", buttonsTemplate);
149
149
  let inserted = this.playerInstance.playerConfig.getPlayerElementContainer().querySelector('.lt-player__additional-info');
150
150
  inserted.classList.add('lt-player__additional-info__is_set_out-side');
151
- this.playerInstance.plyr.on('ready', () => {
152
- deskEvent.set(controller);
153
- })
151
+ deskEvent.set(controller, 'out');
154
152
  }
155
153
 
156
154
  const createAddInfoButtonsInSide = () => {
@@ -166,7 +164,7 @@ export class ResizeService {
166
164
  let inserted = this.playerInstance.playerConfig.getPlayerElementContainer().querySelector('.lt-player__additional-info');
167
165
  inserted.classList.add('lt-player__additional-info__is_set_in-side');
168
166
 
169
- deskEvent.set(controller);
167
+ deskEvent.set(controller, 'in');
170
168
  } else {
171
169
  this.playerInstance.plyr.on('ready', () => {
172
170
 
@@ -176,43 +174,39 @@ export class ResizeService {
176
174
  let inserted = this.playerInstance.playerConfig.getPlayerElementContainer().querySelector('.lt-player__additional-info');
177
175
  inserted.classList.add('lt-player__additional-info__is_set_in-side');
178
176
 
179
- deskEvent.set(controller);
177
+ deskEvent.set(controller, 'in');
180
178
  })
181
179
  }
182
-
183
-
184
-
185
180
  }
186
181
 
187
- if (containerWidth >= 380) {
188
-
189
- if (this.addInfoInSide && containerWidth + 70 <= 380) {
190
- return;
191
- }
182
+ if (containerWidth >= 380) {
192
183
 
193
- if (this.addInfoOutSide) {
194
- return;
195
- }
184
+ if (this.addInfoInSide && (containerWidth + 70 <= 380)) {
185
+ return;
186
+ }
196
187
 
197
- this.addInfoOutSide = true;
198
- this.addInfoInSide = false;
188
+ if (this.addInfoOutSide) {
189
+ return;
190
+ }
199
191
 
200
- createAddInfoButtonsOutSide();
201
- } else {
192
+ this.addInfoOutSide = true;
193
+ this.addInfoInSide = false;
202
194
 
203
- if (this.addInfoOutSide && containerWidth + 70 >= 380) {
204
- return;
205
- }
195
+ createAddInfoButtonsOutSide();
196
+ } else {
206
197
 
207
- if (this.addInfoInSide) {
208
- return;
209
- }
198
+ if (this.addInfoOutSide && (containerWidth + 70 >= 380)) {
199
+ return;
200
+ }
210
201
 
211
- this.addInfoInSide = true;
212
- this.addInfoOutSide = false;
213
- createAddInfoButtonsInSide();
214
- }
202
+ if (this.addInfoInSide) {
203
+ return;
204
+ }
215
205
 
206
+ this.addInfoInSide = true;
207
+ this.addInfoOutSide = false;
208
+ createAddInfoButtonsInSide();
209
+ }
216
210
  }
217
211
 
218
212
  protected setDimensions(containerWidth: number, containerHeight: number, defaultData: defaultType) {