@latest-thinking/lt-player 1.0.3-c → 1.0.4-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 +5 -0
- package/dist/css/lt-player-main.css.map +1 -0
- package/dist/js/lt-player-main.js +3 -0
- package/dist/js/lt-player-main.js.map +1 -0
- package/package.json +5 -5
- package/src/assets/sass/abstracts/_mixins.scss +7 -0
- package/src/assets/sass/sections/_share.scss +3 -4
- package/src/assets/sass/sections/_subtitles.scss +6 -0
- package/src/assets/sass/sections/controllers/_botom.scss +14 -4
- package/src/assets/sass/sections/controllers/_notification-rewind-forward.scss +60 -15
- package/src/assets/sass/sections/controllers/_top.scss +18 -1
- package/src/components/LTPlayerManager.ts +2 -6
- package/src/components/LTPlayerType.ts +9 -3
- package/src/components/controls/LTPlayerControlsEvents.ts +25 -164
- package/src/components/events/LTPlayerCommon.ts +4 -1
- package/src/components/events/LTPlayerDesktop.ts +20 -5
- package/src/components/events/LTPlayerMobile.ts +21 -11
- package/src/components/poster/LTPlayerPoster.ts +4 -13
- package/src/components/share/LTPlayerShare.ts +40 -0
- package/src/components/share/LTPlayerShareEvents.ts +103 -0
- package/src/global/controllers/LTPlayerController.ts +3 -1
- package/src/global/types/ModuleTypes.d.ts +6 -0
- package/src/index.ts +1 -3
- package/src/services/IconsService.ts +2 -1
- package/src/views/controls.handlebars +33 -12
- package/src/views/poster.handlebars +5 -7
- package/dist/css/lt-player-app.css +0 -5
- package/dist/css/lt-player-app.css.map +0 -1
- package/dist/js/lt-player-app.js +0 -3
- package/dist/js/lt-player-app.js.map +0 -1
- package/webpack.common.js +0 -49
- package/webpack.config.dev.js +0 -50
- package/webpack.config.prod.js +0 -43
- /package/dist/js/{lt-player-app.js.LICENSE.txt → lt-player-main.js.LICENSE.txt} +0 -0
|
@@ -21,6 +21,8 @@ export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
|
|
|
21
21
|
this.plyrEndVideo();
|
|
22
22
|
this.plyrFullScreen();
|
|
23
23
|
this.plyrTimeUpdate();
|
|
24
|
+
this.plyrOnPlay();
|
|
25
|
+
this.plyrOnPause();
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
plyrOnReady(): void {
|
|
@@ -46,20 +48,15 @@ export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
|
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
|
|
49
|
-
eventManager.setDefaultSettingsConfig(
|
|
51
|
+
eventManager.setDefaultSettingsConfig();
|
|
50
52
|
|
|
51
53
|
instance.posterManager.mobileEvents.showControls(instance);
|
|
52
54
|
|
|
53
|
-
|
|
54
55
|
instance.playerControl.mobileEvents.controlsTimeShow(instance);
|
|
55
56
|
|
|
56
|
-
// //set fullscreen button
|
|
57
|
-
// instance.playerControl.mobileEvents.fullScreenButtons(instance);
|
|
58
|
-
|
|
59
57
|
//set play/pause icon
|
|
60
58
|
instance.playerControl.mobileEvents.playPauseIcon(instance, 'ready');
|
|
61
59
|
|
|
62
|
-
|
|
63
60
|
//set rewind/forward
|
|
64
61
|
instance.playerControl.mobileEvents.backwardForward(instance);
|
|
65
62
|
instance.playerControl.mobileEvents.backwardForwardSeconds(instance);
|
|
@@ -67,10 +64,6 @@ export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
|
|
|
67
64
|
//set volume controller
|
|
68
65
|
instance.playerControl.mobileEvents.volume(instance);
|
|
69
66
|
|
|
70
|
-
|
|
71
|
-
//set volume controller
|
|
72
|
-
instance.playerControl.mobileEvents.share(instance);
|
|
73
|
-
|
|
74
67
|
//set settings controller
|
|
75
68
|
instance.playerControl.settingsControlsManager.init(instance);
|
|
76
69
|
|
|
@@ -137,12 +130,29 @@ export class LTPlayerMobile extends LTPlayerCommon implements EventsInterfaces {
|
|
|
137
130
|
}
|
|
138
131
|
|
|
139
132
|
eventManager.timeUpdate(event);
|
|
140
|
-
instance.playerControl.mobileEvents.playPauseIcon(instance, 'timeupdate');
|
|
141
133
|
|
|
142
134
|
instance.playerControl.mobileEvents.removePlyrControlsClass(instance);
|
|
143
135
|
})
|
|
144
136
|
}
|
|
145
137
|
|
|
138
|
+
plyrOnPlay() {
|
|
139
|
+
let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
|
|
140
|
+
let plyr: Plyr = this.plyr;
|
|
141
|
+
|
|
142
|
+
plyr.on('play', function LTPlayerDesktopTimeUpdate(event) {
|
|
143
|
+
instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
plyrOnPause() {
|
|
148
|
+
let instance: LTPlayer.PortraitType | LTPlayer.LandscapeType = this.player;
|
|
149
|
+
let plyr: Plyr = this.plyr;
|
|
150
|
+
|
|
151
|
+
plyr.on('pause', function LTPlayerDesktopTimeUpdate(event) {
|
|
152
|
+
instance.playerControl.desktopEvents.playPauseIcon(instance, 'timeupdate');
|
|
153
|
+
})
|
|
154
|
+
}
|
|
155
|
+
|
|
146
156
|
setMobileEvent = (selector: Element): undefined | HammerManager => {
|
|
147
157
|
let instance = this;
|
|
148
158
|
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import {TemplateService} from "../../services/TemplateService";
|
|
2
2
|
import {LTPlayerConfig} from "../LTPlayerConfig";
|
|
3
3
|
import {IconsService} from "../../services/IconsService";
|
|
4
|
-
import {LoaderService} from "../../services/LoaderService";
|
|
5
4
|
import Plyr from "plyr";
|
|
6
|
-
import {LTPlayer} from "../LTPlayerType";
|
|
7
|
-
import {LTPlayerPosterEvents} from "./LTPlayerPosterEvents";
|
|
8
|
-
|
|
9
5
|
|
|
10
6
|
export class LTPlayerPoster {
|
|
11
|
-
|
|
12
7
|
custom_selector: string = 'lt-player__poster';
|
|
13
8
|
config: LTPlayerConfig;
|
|
14
9
|
iconService: IconsService;
|
|
15
10
|
templateService: TemplateService;
|
|
16
11
|
plyr: Plyr
|
|
17
|
-
|
|
18
|
-
|
|
19
12
|
constructor(player: Plyr, templateService: TemplateService, config: LTPlayerConfig, iconService: IconsService) {
|
|
20
13
|
this.plyr = player;
|
|
21
14
|
this.iconService = iconService;
|
|
@@ -24,11 +17,12 @@ export class LTPlayerPoster {
|
|
|
24
17
|
}
|
|
25
18
|
|
|
26
19
|
setTemplate() {
|
|
20
|
+
|
|
27
21
|
Object.assign(this.config, this.iconService.getIconsByComponent('poster'));
|
|
28
22
|
|
|
29
23
|
const logo: string = this.iconService.getLogo();
|
|
30
24
|
|
|
31
|
-
const posterTemplate = this.templateService.getPoster({config:this.config, logoBig: logo});
|
|
25
|
+
const posterTemplate = this.templateService.getPoster({config:this.config, logoBig: logo, isShare : !!(this.config.getShareData())});
|
|
32
26
|
|
|
33
27
|
const container = this.plyr.elements.wrapper;
|
|
34
28
|
|
|
@@ -38,8 +32,7 @@ export class LTPlayerPoster {
|
|
|
38
32
|
|
|
39
33
|
setImage() {
|
|
40
34
|
return new Promise((resolve, reject) => {
|
|
41
|
-
const
|
|
42
|
-
const posterImageBody: HTMLElement = playerContainer.querySelector('.lt-player__poster__image-body');
|
|
35
|
+
const posterImageBody: HTMLElement = this.plyr.elements.container.querySelector('.lt-player__poster__image-body');
|
|
43
36
|
|
|
44
37
|
if (posterImageBody) {
|
|
45
38
|
const imageTag = document.createElement('img');
|
|
@@ -59,9 +52,7 @@ export class LTPlayerPoster {
|
|
|
59
52
|
}
|
|
60
53
|
|
|
61
54
|
removeDefaultImage() {
|
|
62
|
-
const
|
|
63
|
-
const posterImage: HTMLElement = playerContainer.querySelector('.lt-player__poster__img');
|
|
64
|
-
|
|
55
|
+
const posterImage: HTMLElement = this.plyr.elements.container.querySelector('.lt-player__poster__img');
|
|
65
56
|
posterImage.classList.add('d-none');
|
|
66
57
|
}
|
|
67
58
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {LTPlayer} from "../LTPlayerType";
|
|
2
|
+
import {LTPlayerConfig} from "../LTPlayerConfig";
|
|
3
|
+
import {IconsService} from "../../services/IconsService";
|
|
4
|
+
import {TemplateService} from "../../services/TemplateService";
|
|
5
|
+
import {LTPlayerShareEvents} from "./LTPlayerShareEvents";
|
|
6
|
+
import {shareType} from "../../global/types/ModuleTypes";
|
|
7
|
+
|
|
8
|
+
export class LTPlayerShare {
|
|
9
|
+
instance: LTPlayer.LandscapeType | LTPlayer.PortraitType
|
|
10
|
+
playerConfig: LTPlayerConfig
|
|
11
|
+
iconService: IconsService
|
|
12
|
+
templateService: TemplateService
|
|
13
|
+
events: shareType = { desktop: new LTPlayerShareEvents.desktop(), mobile: new LTPlayerShareEvents.mobile() }
|
|
14
|
+
|
|
15
|
+
constructor() {
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
init(instance: LTPlayer.LandscapeType | LTPlayer.PortraitType) {
|
|
19
|
+
this.instance = instance;
|
|
20
|
+
this.playerConfig = instance.playerConfig;
|
|
21
|
+
this.templateService = instance.templateService;
|
|
22
|
+
this.iconService = instance.iconService;
|
|
23
|
+
this.setTemplate();
|
|
24
|
+
this.appendScriptTag();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
setTemplate() {
|
|
28
|
+
const playerContainer = this.instance.plyr.elements.wrapper;
|
|
29
|
+
playerContainer.insertAdjacentHTML("afterend", this.templateService.getShare(this.playerConfig.getShareData()));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
appendScriptTag() {
|
|
33
|
+
const script = document.createElement("script");
|
|
34
|
+
script.type = "text/javascript";
|
|
35
|
+
script.src = "https://static.addtoany.com/menu/page.js";
|
|
36
|
+
script.async;
|
|
37
|
+
document.body.appendChild(script);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import {LTPlayer} from "../LTPlayerType";
|
|
2
|
+
import {defaultType} from "../../global/types/ModuleTypes";
|
|
3
|
+
|
|
4
|
+
export namespace LTPlayerShareEvents {
|
|
5
|
+
|
|
6
|
+
export class common {
|
|
7
|
+
|
|
8
|
+
isPlaying : boolean
|
|
9
|
+
activeModal(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType, selectors: defaultType) {
|
|
10
|
+
selectors.shareContainer.classList.remove('share-inactive');
|
|
11
|
+
selectors.shareContainer.classList.add('share-active');
|
|
12
|
+
if (instance.plyr.playing) {
|
|
13
|
+
this.isPlaying = true;
|
|
14
|
+
instance.plyr.pause();
|
|
15
|
+
} else {
|
|
16
|
+
this.isPlaying = false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
inactiveModal(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType, selectors: defaultType) {
|
|
21
|
+
selectors.shareContainer.classList.add('share-inactive');
|
|
22
|
+
selectors.shareContainer.classList.remove('share-active');
|
|
23
|
+
if (this.isPlaying) {
|
|
24
|
+
instance.plyr.play();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getSelector(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
|
|
29
|
+
return {
|
|
30
|
+
buttons : [
|
|
31
|
+
instance.plyr.elements.container.querySelector('.poster-lt-player-share'),
|
|
32
|
+
instance.plyr.elements.controls.querySelector('.lt-player-share'),
|
|
33
|
+
],
|
|
34
|
+
shareContainer : instance.plyr.elements.container.querySelector('.share-controller-wrapper')
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
copyButtons(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
|
|
39
|
+
return instance.plyr.elements.container.querySelectorAll('.share-controller-link');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export class mobile {
|
|
43
|
+
common : LTPlayerShareEvents.common
|
|
44
|
+
constructor() {
|
|
45
|
+
this.common = new common();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
init(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
|
|
49
|
+
|
|
50
|
+
const common = this.common;
|
|
51
|
+
common.getSelector(instance).buttons.forEach(button => {
|
|
52
|
+
if (button) {
|
|
53
|
+
button.addEventListener('click', () => {
|
|
54
|
+
common.activeModal(instance, this.common.getSelector(instance));
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
common.getSelector(instance).shareContainer.addEventListener('click', function LTPlayerShareArea(event) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
if ( common.getSelector(instance).shareContainer.classList.contains('share-active')) {
|
|
62
|
+
let target = event.target as HTMLElement;
|
|
63
|
+
if (target.classList.contains('share-active') || target.classList.contains('player-lt__close-button')) {
|
|
64
|
+
common.inactiveModal(instance, common.getSelector(instance));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export class desktop {
|
|
74
|
+
common : LTPlayerShareEvents.common
|
|
75
|
+
constructor() {
|
|
76
|
+
this.common = new common();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
init(instance: LTPlayer.PortraitType | LTPlayer.LandscapeType) {
|
|
80
|
+
|
|
81
|
+
const common = this.common;
|
|
82
|
+
common.getSelector(instance).buttons.forEach(button => {
|
|
83
|
+
if (button) {
|
|
84
|
+
button.addEventListener('click', () => {
|
|
85
|
+
common.activeModal(instance, this.common.getSelector(instance));
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
common.getSelector(instance).shareContainer.addEventListener('click', function LTPlayerShareArea(event) {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
if ( common.getSelector(instance).shareContainer.classList.contains('share-active')) {
|
|
93
|
+
let target = event.target as HTMLElement;
|
|
94
|
+
if (target.classList.contains('share-active') || target.classList.contains('player-lt__close-button')) {
|
|
95
|
+
common.inactiveModal(instance, common.getSelector(instance));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {LTPlayerConfig} from "../../components/LTPlayerConfig";
|
|
2
2
|
import {LTPlayerControls} from "../../components/controls/LTPlayerControls";
|
|
3
|
-
import {LTPlayerPoster} from "../../components/poster/LTPlayerPoster";
|
|
4
3
|
import Plyr from "plyr";
|
|
5
4
|
import {TemplateService} from "../../services/TemplateService";
|
|
6
5
|
import {IconsService} from "../../services/IconsService";
|
|
@@ -11,6 +10,7 @@ import {LTPlayerMini} from "../../components/controls/LTPlayerMini";
|
|
|
11
10
|
import {LTPlayerDevMethode} from "../../components/LTPlayerDevMethode";
|
|
12
11
|
import {LTPlayerEventsManager} from "../../components/LTPlayerEventsManager";
|
|
13
12
|
import {LTPlayerPosterManager} from "../../components/poster/LTPlayerPosterManager";
|
|
13
|
+
import {LTPlayerShare} from "../../components/share/LTPlayerShare";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Default Player type Service
|
|
@@ -31,6 +31,7 @@ export class LTPlayerController {
|
|
|
31
31
|
devMethodePreload: LTPlayerDevMethode.Preload
|
|
32
32
|
eventInstance: LTPlayerEventsManager
|
|
33
33
|
posterManager : LTPlayerPosterManager
|
|
34
|
+
share : LTPlayerShare
|
|
34
35
|
/**
|
|
35
36
|
* Base player type service
|
|
36
37
|
*/
|
|
@@ -40,5 +41,6 @@ export class LTPlayerController {
|
|
|
40
41
|
this.templateService = new TemplateService();
|
|
41
42
|
this.playerControl = new LTPlayerControls(this.templateService);
|
|
42
43
|
this.posterManager = new LTPlayerPosterManager();
|
|
44
|
+
this.share = new LTPlayerShare();
|
|
43
45
|
}
|
|
44
46
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {LTPlayer} from "../../components/LTPlayerType";
|
|
2
2
|
import Plyr from "plyr";
|
|
3
|
+
import {LTPlayerShareEvents} from "../../components/share/LTPlayerShareEvents";
|
|
3
4
|
|
|
4
5
|
type playerConfigType = {[index: string]: any}
|
|
5
6
|
|
|
@@ -27,3 +28,8 @@ type urlVideoType = {
|
|
|
27
28
|
embedId : string
|
|
28
29
|
embedHash : string
|
|
29
30
|
}
|
|
31
|
+
|
|
32
|
+
type shareType = {
|
|
33
|
+
mobile : LTPlayerShareEvents.mobile,
|
|
34
|
+
desktop : LTPlayerShareEvents.desktop
|
|
35
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import '~/assets/sass/app.scss';
|
|
2
1
|
import {LTPlayerManager} from "./components/LTPlayerManager";
|
|
3
2
|
|
|
4
3
|
|
|
5
|
-
//
|
|
4
|
+
//todo remove from window, it's for developer
|
|
6
5
|
window.addEventListener('load', function () {
|
|
7
6
|
if (window.Player === undefined) {
|
|
8
7
|
window.Player = new LTPlayerManager();
|
|
9
8
|
}
|
|
10
|
-
window.Player.initPageDomElements()
|
|
11
9
|
})
|
|
@@ -38,20 +38,32 @@
|
|
|
38
38
|
<!-- <p class="poster-paragraph">{{videoTitle}}</p>-->
|
|
39
39
|
<!-- </div>-->
|
|
40
40
|
<!-- </div>-->
|
|
41
|
+
<div class="lt-player-notification__notification-button-state d-none">
|
|
42
|
+
<div class="player-state">
|
|
43
|
+
<img class="player-state__play-icon filter d-none" src="{{icons.play}}" alt="">
|
|
44
|
+
<img class="player-state__pause-icon filter" src="{{icons.pause}}" alt="">
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
41
47
|
<div class="lt-player-rewind-area">
|
|
42
48
|
</div>
|
|
43
49
|
<div class="lt-player-rewind lt-player-notify">
|
|
44
50
|
<div class="lt-player-rewind__icon">
|
|
45
|
-
<
|
|
46
|
-
|
|
51
|
+
<div class="lt-player-rewind__icon-wrapper rotate">
|
|
52
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
53
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
54
|
+
</div>
|
|
55
|
+
<span class="rewind">10 sec</span>
|
|
47
56
|
</div>
|
|
48
57
|
</div>
|
|
49
58
|
<div class="lt-player-forward-area">
|
|
50
59
|
</div>
|
|
51
60
|
<div class="lt-player-forward lt-player-notify">
|
|
52
61
|
<div class="lt-player-forward__icon">
|
|
53
|
-
<
|
|
54
|
-
|
|
62
|
+
<div class="lt-player-rewind__icon-wrapper">
|
|
63
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
64
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
65
|
+
</div>
|
|
66
|
+
<span class="forward">10 sec</span>
|
|
55
67
|
</div>
|
|
56
68
|
</div>
|
|
57
69
|
</div>
|
|
@@ -166,15 +178,12 @@
|
|
|
166
178
|
<img class="filter" src="{{icons.share}}" alt="">
|
|
167
179
|
</button>
|
|
168
180
|
{{/isShare}}
|
|
169
|
-
<button type="button" class="plyr__control lt-player-share invisible">
|
|
170
|
-
<img class="filter" src="{{icons.share}}" alt="">
|
|
171
|
-
</button>
|
|
172
181
|
</div>
|
|
173
182
|
<div class="top-controllers__body__center">
|
|
174
183
|
<p class="chapter"></p>
|
|
175
184
|
</div>
|
|
176
185
|
<div class="top-controllers__body__right">
|
|
177
|
-
|
|
186
|
+
{{#desktop}}
|
|
178
187
|
<button type="button" class="plyr__control fullscreen-custom-control">
|
|
179
188
|
<img class="filter minimize d-none" src="{{icons.minimize}}" alt="">
|
|
180
189
|
<img class="filter maximize" src="{{icons.maximize}}" alt="">
|
|
@@ -187,6 +196,12 @@
|
|
|
187
196
|
</div>
|
|
188
197
|
</div>
|
|
189
198
|
<div class="lt-player-notification">
|
|
199
|
+
<div class="lt-player-notification__notification-button-state">
|
|
200
|
+
<div class="player-state">
|
|
201
|
+
<img class="player-state__play-icon filter d-none" src="{{icons.play}}" alt="">
|
|
202
|
+
<img class="player-state__pause-icon filter d-none" src="{{icons.pause}}" alt="">
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
190
205
|
<div class="lt-player-video-content">
|
|
191
206
|
<div class="content__body">
|
|
192
207
|
<h4 class="poster-title">{{videoParagraph}}</h4>
|
|
@@ -197,16 +212,22 @@
|
|
|
197
212
|
</div>
|
|
198
213
|
<div class="lt-player-rewind lt-player-notify">
|
|
199
214
|
<div class="lt-player-rewind__icon">
|
|
200
|
-
<
|
|
201
|
-
<
|
|
215
|
+
<span class="rewind">10 sec</span>
|
|
216
|
+
<div class="lt-player-rewind__icon-wrapper rotate">
|
|
217
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
218
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
219
|
+
</div>
|
|
202
220
|
</div>
|
|
203
221
|
</div>
|
|
204
222
|
<div class="lt-player-forward-area">
|
|
205
223
|
</div>
|
|
206
224
|
<div class="lt-player-forward lt-player-notify">
|
|
207
225
|
<div class="lt-player-forward__icon">
|
|
208
|
-
<
|
|
209
|
-
|
|
226
|
+
<div class="lt-player-rewind__icon-wrapper">
|
|
227
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
228
|
+
<img class="filter" src="{{icons.play}}" alt="">
|
|
229
|
+
</div>
|
|
230
|
+
<span class="forward">10 sec</span>
|
|
210
231
|
</div>
|
|
211
232
|
</div>
|
|
212
233
|
</div>
|
|
@@ -23,13 +23,11 @@
|
|
|
23
23
|
<button class="poster-button-watch-now">
|
|
24
24
|
Watch now
|
|
25
25
|
</button>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<!-- Lt player share-->
|
|
26
|
+
{{#isShare}}
|
|
27
|
+
<button class="poster-lt-player-share" type="button">
|
|
28
|
+
<img class="filter" src="{{config.share}}" alt="" role="presentation" >
|
|
29
|
+
</button>
|
|
30
|
+
{{/isShare}}
|
|
33
31
|
</div>
|
|
34
32
|
</div>
|
|
35
33
|
</div>
|