@latest-thinking/lt-player 1.0.4 → 1.0.5-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.
- package/dist/css/lt-player-main.css +1 -3
- package/dist/css/lt-player-main.css.map +1 -1
- package/dist/js/lt-player-main.js +1 -1
- package/dist/js/lt-player-main.js.map +1 -1
- package/package.json +10 -8
- package/src/assets/sass/app.scss +2 -2
- package/src/assets/sass/core/_fonts.scss +5 -5
- package/src/assets/sass/sections/_control.scss +35 -0
- package/src/assets/sass/sections/_poster.scss +3 -0
- package/src/assets/sass/sections/_settings.scss +1 -1
- package/src/assets/sass/sections/_subtitles.scss +4 -0
- package/src/assets/sass/sections/controllers/_botom.scss +15 -5
- package/src/assets/sass/sections/controllers/_mini-player.scss +36 -2
- package/src/assets/sass/sections/controllers/_notification-rewind-forward.scss +70 -11
- package/src/components/LTPlayerDevMethode.ts +23 -3
- package/src/components/LTPlayerManager.ts +12 -5
- package/src/components/LTPlayerSetup.ts +31 -7
- package/src/components/LTPlayerType.ts +58 -11
- package/src/components/addInfo/LTPlayerAdditionalInfoEvents.ts +6 -2
- package/src/components/config/LTPlayerConfig.ts +200 -0
- package/src/components/config/LTPlayerConfigProcessor.ts +546 -0
- package/src/components/controls/LTPlayerChapters.ts +8 -4
- package/src/components/controls/LTPlayerControls.ts +1 -1
- package/src/components/controls/LTPlayerControlsEvents.ts +225 -71
- package/src/components/controls/LTPlayerMini.ts +45 -3
- package/src/components/controls/settings/LTPlayerDesktopSettingsControllers.ts +2 -4
- package/src/components/controls/settings/LTPlayerMobileSettingsControllers.ts +2 -0
- package/src/components/events/LTPlayer.ts +46 -2
- package/src/components/events/LTPlayerDesktop.ts +1 -0
- package/src/components/events/LTPlayerMobile.ts +1 -1
- package/src/components/poster/LTPlayerPoster.ts +2 -2
- package/src/components/poster/LTPlayerPosterEvents.ts +5 -0
- package/src/components/poster/LTPlayerPosterManager.ts +1 -1
- package/src/components/poster/LTPlayerPosterPreload.ts +1 -1
- package/src/components/poster/LTPlayerPosterPreloadEvents.ts +17 -6
- package/src/components/share/LTPlayerShare.ts +1 -1
- package/src/components/share/LTPlayerShareEvents.ts +20 -20
- package/src/global/controllers/LTPlayerController.ts +1 -1
- package/src/services/Helper.ts +20 -5
- package/src/services/IconsService.ts +15 -0
- package/src/services/LTPlayerRotateDeviceService.ts +8 -1
- package/src/services/ResizeService.ts +24 -6
- package/src/services/TemplateService.ts +1 -1
- package/src/views/background.handlebars +1 -1
- package/src/views/controls.handlebars +71 -14
- package/src/views/settings.handlebars +3 -3
- package/src/views/template.handlebars +2 -2
- package/src/components/LTPlayerConfig.ts +0 -398
|
@@ -2,13 +2,14 @@ import {LTPlayerController} from "../global/controllers/LTPlayerController";
|
|
|
2
2
|
import {TypeInterface} from "../global/interfaces/TypeInterface";
|
|
3
3
|
import {defaultType, playerConfigType} from "../global/types/ModuleTypes";
|
|
4
4
|
import {LTPlayerMini} from "./controls/LTPlayerMini";
|
|
5
|
-
import {LTPlayerConfig} from "./LTPlayerConfig";
|
|
5
|
+
import {LTPlayerConfig} from "./config/LTPlayerConfig";
|
|
6
6
|
import Plyr from "plyr";
|
|
7
7
|
import {LTPlayerDevMethode} from "./LTPlayerDevMethode";
|
|
8
8
|
import {LTPlayerEventsManager} from "./LTPlayerEventsManager";
|
|
9
9
|
import {LTPLayerAddInfo} from "./addInfo/LTPlayerAddInfoManager";
|
|
10
10
|
import {LTPlayerEvents} from "./events/LTPlayer";
|
|
11
11
|
import {LTPlayerPosterManager} from "./poster/LTPlayerPosterManager";
|
|
12
|
+
import {config} from "json-schema-library";
|
|
12
13
|
|
|
13
14
|
export namespace LTPlayer {
|
|
14
15
|
|
|
@@ -37,7 +38,7 @@ export namespace LTPlayer {
|
|
|
37
38
|
|
|
38
39
|
this.additionalInfoService = additionalInfoService;
|
|
39
40
|
this.miniPlayer = new LTPlayerMini();
|
|
40
|
-
this.setPlayerConfig(configData.body);
|
|
41
|
+
this.setPlayerConfig(configData.body, configData.version);
|
|
41
42
|
this.initSetupPlayerPoster(configData.body);
|
|
42
43
|
this.initPlayer();
|
|
43
44
|
this.setEvents();
|
|
@@ -68,10 +69,12 @@ export namespace LTPlayer {
|
|
|
68
69
|
/**
|
|
69
70
|
* Set Player config Instance
|
|
70
71
|
* @param configData
|
|
72
|
+
* @param version
|
|
71
73
|
* @private
|
|
72
74
|
*/
|
|
73
|
-
private setPlayerConfig(configData: playerConfigType) {
|
|
74
|
-
this.playerConfig = new LTPlayerConfig(
|
|
75
|
+
private setPlayerConfig(configData: playerConfigType, version : string | number) {
|
|
76
|
+
this.playerConfig = new LTPlayerConfig(version);
|
|
77
|
+
this.playerConfig.mapConfigData(configData);
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
/**
|
|
@@ -135,7 +138,7 @@ export namespace LTPlayer {
|
|
|
135
138
|
|
|
136
139
|
this.plyr = player;
|
|
137
140
|
|
|
138
|
-
this.devMethodePlayer = new LTPlayerDevMethode.Player(
|
|
141
|
+
this.devMethodePlayer = new LTPlayerDevMethode.Player(this);
|
|
139
142
|
|
|
140
143
|
this.posterManager.init(this);
|
|
141
144
|
|
|
@@ -144,7 +147,7 @@ export namespace LTPlayer {
|
|
|
144
147
|
}
|
|
145
148
|
|
|
146
149
|
if (this.playerConfig.getDevice() !== 'mobile') {
|
|
147
|
-
this.miniPlayer.init(player, this.templateService, this.iconService);
|
|
150
|
+
this.miniPlayer.init(player, this.templateService, this.iconService, this.playerConfig.getPlayerType(), this);
|
|
148
151
|
}
|
|
149
152
|
}
|
|
150
153
|
|
|
@@ -164,6 +167,13 @@ export namespace LTPlayer {
|
|
|
164
167
|
return this.devMethodePreload;
|
|
165
168
|
}
|
|
166
169
|
|
|
170
|
+
enterMiniPlayer() {
|
|
171
|
+
return this.devMethodePlayer.enterMiniPlayer()
|
|
172
|
+
}
|
|
173
|
+
exitMiniPlayer() {
|
|
174
|
+
return this.devMethodePlayer.exitMiniPlayer()
|
|
175
|
+
}
|
|
176
|
+
|
|
167
177
|
destruct() {
|
|
168
178
|
let _this = this;
|
|
169
179
|
|
|
@@ -206,7 +216,7 @@ export namespace LTPlayer {
|
|
|
206
216
|
}
|
|
207
217
|
|
|
208
218
|
this.miniPlayer = new LTPlayerMini();
|
|
209
|
-
this.setPlayerConfig(configData.body);
|
|
219
|
+
this.setPlayerConfig(configData.body, configData.version);
|
|
210
220
|
this.initPoster(configData.body);
|
|
211
221
|
this.initPlayer();
|
|
212
222
|
this.setEvents();
|
|
@@ -254,7 +264,7 @@ export namespace LTPlayer {
|
|
|
254
264
|
|
|
255
265
|
this.plyr = player;
|
|
256
266
|
|
|
257
|
-
this.devMethodePlayer = new LTPlayerDevMethode.Player(
|
|
267
|
+
this.devMethodePlayer = new LTPlayerDevMethode.Player(this);
|
|
258
268
|
|
|
259
269
|
this.posterManager.init(this);
|
|
260
270
|
|
|
@@ -263,7 +273,7 @@ export namespace LTPlayer {
|
|
|
263
273
|
}
|
|
264
274
|
|
|
265
275
|
if (this.playerConfig.getDevice() !== 'mobile') {
|
|
266
|
-
this.miniPlayer.init(player, this.templateService, this.iconService);
|
|
276
|
+
this.miniPlayer.init(player, this.templateService, this.iconService, this.playerConfig.getPlayerType(), this);
|
|
267
277
|
}
|
|
268
278
|
}
|
|
269
279
|
|
|
@@ -283,15 +293,52 @@ export namespace LTPlayer {
|
|
|
283
293
|
playerContainer.insertAdjacentHTML("afterend", this.templateService.getOnloadPoster({logo: logo})) ;
|
|
284
294
|
}
|
|
285
295
|
|
|
286
|
-
private setPlayerConfig(configData: playerConfigType) {
|
|
287
|
-
this.playerConfig = new LTPlayerConfig(
|
|
296
|
+
private setPlayerConfig(configData: playerConfigType, version: string | number) {
|
|
297
|
+
this.playerConfig = new LTPlayerConfig(version);
|
|
298
|
+
this.playerConfig.mapConfigData(configData);
|
|
288
299
|
}
|
|
289
300
|
|
|
290
301
|
public getPlayer() {
|
|
291
302
|
return this.plyr;
|
|
292
303
|
}
|
|
293
304
|
|
|
305
|
+
play() {
|
|
306
|
+
this.devMethodePlayer.play();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
pause() {
|
|
310
|
+
this.devMethodePlayer.pause();
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
stop() {
|
|
314
|
+
this.devMethodePlayer.stop();
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
preload() {
|
|
318
|
+
return this.devMethodePreload;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
enterMiniPlayer() {
|
|
322
|
+
return this.devMethodePlayer.enterMiniPlayer()
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
exitMiniPlayer() {
|
|
326
|
+
return this.devMethodePlayer.exitMiniPlayer()
|
|
327
|
+
}
|
|
328
|
+
|
|
294
329
|
destruct() {
|
|
330
|
+
let _this = this;
|
|
331
|
+
|
|
332
|
+
return new Promise((resolve) => {
|
|
333
|
+
_this.additionalInfoService.remove(this);
|
|
334
|
+
|
|
335
|
+
_this.additionalInfoService = null;
|
|
336
|
+
|
|
337
|
+
this.plyr.destroy(() => {
|
|
338
|
+
_this = undefined;
|
|
339
|
+
resolve(true);
|
|
340
|
+
})
|
|
341
|
+
})
|
|
295
342
|
}
|
|
296
343
|
setDesktopEvents() {
|
|
297
344
|
this.desktopEvents = new LTPlayerEvents.Desktop();
|
|
@@ -155,6 +155,8 @@ export namespace LTPlayerAdditionalInfo {
|
|
|
155
155
|
window.Player.players.forEach( item => {item.plyr.pause()});
|
|
156
156
|
|
|
157
157
|
__this.dragCloseModal(controller);
|
|
158
|
+
|
|
159
|
+
controller.playerInstance.playerControl.mobileEvents.showControls(controller.playerInstance)
|
|
158
160
|
})
|
|
159
161
|
}
|
|
160
162
|
})
|
|
@@ -173,8 +175,7 @@ export namespace LTPlayerAdditionalInfo {
|
|
|
173
175
|
if (playerControlsContainer.classList.contains('player-lt__modal__mobile-show-modal')) {
|
|
174
176
|
|
|
175
177
|
modal.style.removeProperty('bottom')
|
|
176
|
-
playerControlsContainer.classList.remove('plyr__controls-enable-addInfo')
|
|
177
|
-
|
|
178
|
+
playerControlsContainer.classList.remove('plyr__controls-enable-addInfo');
|
|
178
179
|
|
|
179
180
|
setTimeout(() => {
|
|
180
181
|
const modalBody = playerControlsContainer.querySelector('.player-lt__modal__mobile');
|
|
@@ -186,6 +187,9 @@ export namespace LTPlayerAdditionalInfo {
|
|
|
186
187
|
if (background) {
|
|
187
188
|
background.classList.add('d-none');
|
|
188
189
|
}
|
|
190
|
+
|
|
191
|
+
controller.playerInstance.playerControl.mobileEvents.showControls(controller.playerInstance);
|
|
192
|
+
|
|
189
193
|
}, 150)
|
|
190
194
|
|
|
191
195
|
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import {playerConfigType} from "../../global/types/ModuleTypes";
|
|
2
|
+
import {LTPlayerConfigProcessor} from "./LTPlayerConfigProcessor";
|
|
3
|
+
export class LTPlayerConfig {
|
|
4
|
+
|
|
5
|
+
private configData: playerConfigType = {
|
|
6
|
+
version : null,
|
|
7
|
+
preload: false,
|
|
8
|
+
autoPlay : false,
|
|
9
|
+
videoTitle: '',
|
|
10
|
+
posterImage: '',
|
|
11
|
+
videoParagraph: '',
|
|
12
|
+
videoUrl : false,
|
|
13
|
+
playerId: '',
|
|
14
|
+
playerContainer: '',
|
|
15
|
+
vimeo: false,
|
|
16
|
+
youtube: {
|
|
17
|
+
'controls': 0,
|
|
18
|
+
'noCookie': false,
|
|
19
|
+
'rel': 0,
|
|
20
|
+
'showinfo': 0,
|
|
21
|
+
'iv_load_policy': 3,
|
|
22
|
+
'modestbranding': 1,
|
|
23
|
+
'playsinline': true,
|
|
24
|
+
},
|
|
25
|
+
defaultConfig : false,
|
|
26
|
+
share: null,
|
|
27
|
+
chapters : null,
|
|
28
|
+
playerType: null,
|
|
29
|
+
device : 'desktop',
|
|
30
|
+
observe : false
|
|
31
|
+
}
|
|
32
|
+
processor : LTPlayerConfigProcessor.Map
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param version
|
|
37
|
+
*/
|
|
38
|
+
constructor(version: string | number) {
|
|
39
|
+
this.processor = new LTPlayerConfigProcessor.Map();
|
|
40
|
+
this.setVersion(version);
|
|
41
|
+
this.processor.setVersion(this.configData.version);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
mapConfigData(config : playerConfigType) {
|
|
45
|
+
|
|
46
|
+
Object.keys(this.configData).forEach(instanceItem => {
|
|
47
|
+
|
|
48
|
+
if (this.processor.version === 1) {
|
|
49
|
+
let process = this.processor.processItem(instanceItem, config);
|
|
50
|
+
|
|
51
|
+
if (process) {
|
|
52
|
+
this.configData[instanceItem] = process;
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
let process = this.processor.processItem(instanceItem, (config[instanceItem]) ?? null);
|
|
56
|
+
|
|
57
|
+
if (process) {
|
|
58
|
+
this.configData[instanceItem] = process;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
setVersion(version : string | number) {
|
|
65
|
+
|
|
66
|
+
if (typeof version === 'string') {
|
|
67
|
+
return this.configData.version = parseInt(version);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
this.configData.version = version;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
getVersion() {
|
|
74
|
+
return this.configData.version
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
getObserve() {
|
|
78
|
+
return this.configData.observe
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
isObserveHeight() {
|
|
82
|
+
return this.configData.observe.height;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
isObserveWidth() {
|
|
86
|
+
return this.configData.observe.width;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
getDimensions() {
|
|
90
|
+
return this.configData.dimensions
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
getAdditionalInfo() {
|
|
94
|
+
return this.configData.additionalInfo;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
getVideoTitle() {
|
|
98
|
+
return this.configData.videoTitle;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
getPosterImage() {
|
|
102
|
+
return this.configData.posterImage;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
getParagraph() {
|
|
106
|
+
return this.configData.videoParagraph;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
getVideoType() {
|
|
110
|
+
return this.configData.videoUrl.videoType;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
getVideoUrl() {
|
|
114
|
+
return this.configData.videoUrl;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
getPlayerId() {
|
|
118
|
+
return this.configData.playerId;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
getConfigData() {
|
|
122
|
+
return this.configData;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
getPlayerElementContainer() {
|
|
126
|
+
return this.configData.playerContainer;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
getVideoOrigin() {
|
|
130
|
+
return this.configData.videoUrl.origin;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
*
|
|
135
|
+
* @param origin
|
|
136
|
+
*/
|
|
137
|
+
getConfigByOrigin(origin: string) {
|
|
138
|
+
return (this.configData[origin] !== undefined) ? this.configData[origin] : null;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
getDefaultConfigItems() {
|
|
142
|
+
return this.configData.defaultConfig;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
getChapters() {
|
|
146
|
+
return this.configData.chapters
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
isShareData() {
|
|
150
|
+
if (this.configData.share) {
|
|
151
|
+
return Object.keys(this.configData.share).length > 0;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
getShareData() {
|
|
158
|
+
return this.configData.share
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
getCaptions () {
|
|
162
|
+
return this.configData.defaultConfig.captions
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
getPlayerType() {
|
|
166
|
+
return this.configData.playerType
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
setPlayerId(id: number) {
|
|
170
|
+
this.configData.playerId = id;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
isAutoPlay() {
|
|
174
|
+
return this.configData.autoPlay;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
getPreload() {
|
|
178
|
+
return this.configData.preload;
|
|
179
|
+
}
|
|
180
|
+
isAutoPreload() {
|
|
181
|
+
return this.configData.preload.autoType;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
getDevice() {
|
|
185
|
+
return this.configData.device;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
getEmbedOrigin() {
|
|
189
|
+
return {[this.getVideoOrigin()] : this.getConfigByOrigin(this.getVideoOrigin())};
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
getFullscreenMode() {
|
|
193
|
+
if (this.getDevice() === 'mobile') {
|
|
194
|
+
return {fullscreen: {enabled: false}}
|
|
195
|
+
} else {
|
|
196
|
+
return false
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|