@latest-thinking/lt-player 1.0.6-b → 1.0.7
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 -1
- 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 +1 -1
- package/src/assets/sass/abstracts/_mixins.scss +11 -0
- package/src/assets/sass/abstracts/_variables.scss +3 -0
- package/src/assets/sass/app.scss +13 -1
- package/src/assets/sass/components/_modal.scss +1 -1
- package/src/assets/sass/sections/_settings.scss +255 -82
- package/src/assets/sass/sections/_share.scss +4 -38
- package/src/assets/sass/sections/controllers/_botom.scss +296 -303
- package/src/assets/sass/sections/controllers/_notification-rewind-forward.scss +36 -66
- package/src/assets/sass/sections/controllers/_top.scss +94 -113
- package/src/components/LTPlayerType.ts +2 -0
- package/src/components/addInfo/LTPlayerAddInfoDesktop.ts +99 -0
- package/src/components/addInfo/LTPlayerAddInfoManager.ts +6 -6
- package/src/components/addInfo/LTPlayerAddInfoMobile.ts +110 -0
- package/src/components/controls/LTPlayerControlsEvents.ts +46 -36
- package/src/components/controls/settings/LTPlayerDesktopSettingsControllers.ts +0 -1
- package/src/components/controls/settings/LTPlayerMobileSettingsControllers.ts +166 -30
- package/src/components/events/LTPlayer.ts +8 -0
- package/src/components/events/LTPlayerCommon.ts +21 -27
- package/src/components/events/LTPlayerMobile.ts +2 -2
- package/src/index.ts +6 -0
- package/src/services/ResizeService.ts +7 -7
- package/src/views/additionalInfo.handlebars +4 -8
- package/src/views/controls.handlebars +41 -37
- package/src/views/settings.handlebars +11 -14
- package/src/views/share.handlebars +1 -1
- package/src/components/addInfo/LTPlayerAdditionalInfoEvents.ts +0 -247
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<div class="settings-controllers-enable__background d-none"></div>
|
|
2
2
|
<div class="settings-controllers settings">
|
|
3
|
-
<span class="line-button"></span>
|
|
4
|
-
{{#desktop}}
|
|
3
|
+
<span class="line-button settings-controllers-header"></span>
|
|
5
4
|
<div class="settings-controllers-enable__subtitles settings">
|
|
6
5
|
<p class="settings-text settings">Subtitles</p>
|
|
7
6
|
<label class="subtitles-body__switch settings">
|
|
@@ -16,18 +15,16 @@
|
|
|
16
15
|
<input id="speed-range-{{id}}" type="range" min="0" max="3" step="1" class="speed-range-input settings">
|
|
17
16
|
</div>
|
|
18
17
|
</div>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<button class="button-speed settings
|
|
25
|
-
<button class="button-speed settings" data-speed="
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</div>
|
|
30
|
-
{{/mobile}}
|
|
18
|
+
<!-- <div class="settings-controllers-enable__speed-range settings">-->
|
|
19
|
+
<!-- <p class="settings-text settings">Speed</p>-->
|
|
20
|
+
<!-- <div class="speed-range-input-body mobile settings">-->
|
|
21
|
+
<!-- <button class="button-speed settings button_active" data-speed="1">1</button>-->
|
|
22
|
+
<!-- <button class="button-speed settings" data-speed="1.25">1.25</button>-->
|
|
23
|
+
<!-- <button class="button-speed settings" data-speed="1.5">1.5</button>-->
|
|
24
|
+
<!-- <button class="button-speed settings" data-speed="2">2</button>-->
|
|
25
|
+
<!-- </div>-->
|
|
26
|
+
<!-- </div>-->
|
|
27
|
+
|
|
31
28
|
<div class="settings-controllers-enable__button-save settings">
|
|
32
29
|
<button class="button-save settings">Save</button>
|
|
33
30
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="share-controller-mobile-modal-header lt-player-mobile-share">
|
|
5
5
|
<span class="line-button lt-player-mobile-share"></span>
|
|
6
6
|
</div>
|
|
7
|
-
<span class="line-button lt-player-mobile-share"></span
|
|
7
|
+
<!-- <span class="line-button lt-player-mobile-share"></span>-->
|
|
8
8
|
<div class="share-controller-frame lt-player-mobile-share">
|
|
9
9
|
<!-- <div class="player-lt__close-button-e">-->
|
|
10
10
|
<!-- <span class="player-lt__close-button">×</span>-->
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import {additionalInformation} from "../../global/types/ModuleTypes";
|
|
2
|
-
import {LTPLayerAddInfo} from "./LTPlayerAddInfoManager";
|
|
3
|
-
|
|
4
|
-
export namespace LTPlayerAdditionalInfo {
|
|
5
|
-
|
|
6
|
-
export class Desktop {
|
|
7
|
-
set(controller: LTPLayerAddInfo.Controller) {
|
|
8
|
-
|
|
9
|
-
const playerContainer = controller.plyr.elements.container;
|
|
10
|
-
const playerControlsContainer = controller.plyr.elements.controls;
|
|
11
|
-
let additionalInfoBodyOut: Element = playerContainer.nextElementSibling;
|
|
12
|
-
let additionalInfoBodyIn: Element = playerControlsContainer.querySelector('.lt-player__additional-info');
|
|
13
|
-
let instance = controller;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const getInfoButtons = (selector: Element): NodeList => {
|
|
17
|
-
|
|
18
|
-
if (!selector) {
|
|
19
|
-
return null
|
|
20
|
-
}
|
|
21
|
-
return selector.querySelectorAll('button');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
let buttons: NodeList = null;
|
|
25
|
-
|
|
26
|
-
const infoButtonsOut: NodeList = getInfoButtons(additionalInfoBodyOut);
|
|
27
|
-
const infoButtonsIn: NodeList = getInfoButtons(additionalInfoBodyIn);
|
|
28
|
-
|
|
29
|
-
if (!infoButtonsOut) {
|
|
30
|
-
buttons = infoButtonsIn;
|
|
31
|
-
} else {
|
|
32
|
-
buttons = infoButtonsOut;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (buttons.length === 0) {
|
|
36
|
-
return
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const createInformationModal = (info: additionalInformation, key: string) => {
|
|
40
|
-
|
|
41
|
-
let modalTemplate = null;
|
|
42
|
-
|
|
43
|
-
if (typeof info === 'object') {
|
|
44
|
-
modalTemplate = controller.templateService.getAdditionalInfo({
|
|
45
|
-
desktop : true,
|
|
46
|
-
modal : true,
|
|
47
|
-
id : `${key}-${controller.playerInstance.playerConfig.getPlayerId()}`,
|
|
48
|
-
object_data : true,
|
|
49
|
-
[key] : info
|
|
50
|
-
})
|
|
51
|
-
} else {
|
|
52
|
-
modalTemplate = controller.templateService.getAdditionalInfo({
|
|
53
|
-
desktop : true,
|
|
54
|
-
modal : true,
|
|
55
|
-
id : `${key}-${controller.playerInstance.playerConfig.getPlayerId()}`,
|
|
56
|
-
data : info
|
|
57
|
-
})
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
document.querySelector('body').insertAdjacentHTML("afterend", modalTemplate);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
buttons.forEach((button: HTMLElement) => {
|
|
64
|
-
|
|
65
|
-
button.addEventListener('click', function (event) {
|
|
66
|
-
|
|
67
|
-
event.preventDefault();
|
|
68
|
-
|
|
69
|
-
let targetModal = button.dataset.ltTarget;
|
|
70
|
-
let data = instance.additionalData;
|
|
71
|
-
|
|
72
|
-
if (data[targetModal] !== undefined) {
|
|
73
|
-
createInformationModal(data[targetModal], targetModal)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
let modal = document.querySelector(`.lt-modal-${targetModal}-${instance.playerInstance.playerConfig.getPlayerId()}`);
|
|
77
|
-
|
|
78
|
-
if (modal) {
|
|
79
|
-
modal.classList.add('player-lt__show-modal');
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
window.Player.players.forEach( item => {item.plyr.pause()})
|
|
83
|
-
})
|
|
84
|
-
})
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
windowDesktopEvents(event: MouseEvent) {
|
|
88
|
-
const modals = document.querySelectorAll('.player-lt__modal');
|
|
89
|
-
if (modals.length !== 0) {
|
|
90
|
-
modals.forEach(modal => {
|
|
91
|
-
if (modal.classList.contains('player-lt__show-modal')) {
|
|
92
|
-
let target = event.target as HTMLElement;
|
|
93
|
-
if (target.classList.contains('player-lt__show-modal') || target.classList.contains('player-lt__close-button')) {
|
|
94
|
-
modal.classList.remove('player-lt__show-modal');
|
|
95
|
-
document.querySelectorAll(".player-lt__modal").forEach(el => el.remove());
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export class Mobile {
|
|
106
|
-
set(controller: LTPLayerAddInfo.Controller) {
|
|
107
|
-
const playerContainer = controller.plyr.elements.container;
|
|
108
|
-
const playerControlsContainer = controller.plyr.elements.controls;
|
|
109
|
-
let additionalInfoBody: Element = playerContainer.querySelector('.lt-player__additional-info-mobile');
|
|
110
|
-
let instance = controller;
|
|
111
|
-
let __this = this;
|
|
112
|
-
|
|
113
|
-
let buttons: NodeList = additionalInfoBody.querySelectorAll('button');
|
|
114
|
-
|
|
115
|
-
if (buttons.length === 0) {
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const createInformationModal = (info: additionalInformation, key: string) => {
|
|
120
|
-
let modalTemplate = null;
|
|
121
|
-
|
|
122
|
-
if (typeof info === 'object') {
|
|
123
|
-
modalTemplate = controller.templateService.getAdditionalInfo({
|
|
124
|
-
mobile : true,
|
|
125
|
-
modal : true,
|
|
126
|
-
[controller.device] : true,
|
|
127
|
-
object_data : true,
|
|
128
|
-
[key] : info
|
|
129
|
-
})
|
|
130
|
-
} else {
|
|
131
|
-
modalTemplate = controller.templateService.getAdditionalInfo({
|
|
132
|
-
mobile : true,
|
|
133
|
-
modal : true,
|
|
134
|
-
data : info,
|
|
135
|
-
[controller.device] : true
|
|
136
|
-
})
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const playerControlsContainer = instance.plyr.elements.controls;
|
|
140
|
-
const modal = playerControlsContainer.querySelector('.player-lt__modal__mobile');
|
|
141
|
-
modal.innerHTML = modalTemplate;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
buttons.forEach((button: HTMLElement) => {
|
|
145
|
-
let mobileEvent: HammerManager = controller.playerInstance.eventInstance.mobileEvents.setMobileEvent(button);
|
|
146
|
-
if (mobileEvent) {
|
|
147
|
-
mobileEvent.on('singletap', function LTPlayerMobileAdditionalInfoButtons(event) {
|
|
148
|
-
event.preventDefault();
|
|
149
|
-
|
|
150
|
-
controller.playerInstance.plyr.elements.controls.classList.add('plyr__controls-enable-addInfo');
|
|
151
|
-
|
|
152
|
-
let targetModal = button.dataset.ltTarget;
|
|
153
|
-
let data = instance.additionalData;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
if (data[targetModal] !== undefined) {
|
|
157
|
-
createInformationModal(data[targetModal], targetModal)
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
playerControlsContainer.classList.add('player-lt__modal__mobile-show-modal');
|
|
161
|
-
|
|
162
|
-
let mobileModal: HTMLElement = playerControlsContainer.querySelector('.player-lt__modal__mobile');
|
|
163
|
-
|
|
164
|
-
let backgroundModal = playerControlsContainer.querySelector('.player-lt__modal__mobile__background');
|
|
165
|
-
|
|
166
|
-
mobileModal.classList.remove('d-none');
|
|
167
|
-
|
|
168
|
-
setTimeout(() => {
|
|
169
|
-
mobileModal.style.bottom = String(0);
|
|
170
|
-
}, 50)
|
|
171
|
-
|
|
172
|
-
if (backgroundModal) {
|
|
173
|
-
backgroundModal.classList.remove('d-none')
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (mobileModal) {
|
|
177
|
-
mobileModal.classList.add('player-lt__modal__mobile-show-modal');
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
window.Player.players.forEach( item => {item.plyr.pause()});
|
|
181
|
-
|
|
182
|
-
__this.dragCloseModal(controller);
|
|
183
|
-
|
|
184
|
-
controller.playerInstance.playerControl.mobileEvents.showControls(controller.playerInstance)
|
|
185
|
-
})
|
|
186
|
-
}
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
dragCloseModal(controller: LTPLayerAddInfo.Controller) {
|
|
193
|
-
|
|
194
|
-
const playerControlsContainer = controller.plyr.elements.controls;
|
|
195
|
-
const modalHeader = playerControlsContainer.querySelector('.player-lt__mobile__modal-header');
|
|
196
|
-
const background = playerControlsContainer.querySelector('.player-lt__modal__mobile__background');
|
|
197
|
-
const modal: HTMLElement = playerControlsContainer.querySelector('.player-lt__modal__mobile');
|
|
198
|
-
|
|
199
|
-
const closeModal = () => {
|
|
200
|
-
if (playerControlsContainer.classList.contains('player-lt__modal__mobile-show-modal')) {
|
|
201
|
-
|
|
202
|
-
modal.style.removeProperty('bottom')
|
|
203
|
-
playerControlsContainer.classList.remove('plyr__controls-enable-addInfo');
|
|
204
|
-
|
|
205
|
-
setTimeout(() => {
|
|
206
|
-
const modalBody = playerControlsContainer.querySelector('.player-lt__modal__mobile');
|
|
207
|
-
|
|
208
|
-
playerControlsContainer.classList.remove('player-lt__modal__mobile-show-modal');
|
|
209
|
-
modalBody.classList.remove('player-lt__modal__mobile-show-modal');
|
|
210
|
-
modalBody.classList.add('d-none');
|
|
211
|
-
|
|
212
|
-
if (background) {
|
|
213
|
-
background.classList.add('d-none');
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
controller.playerInstance.playerControl.mobileEvents.showControls(controller.playerInstance);
|
|
217
|
-
|
|
218
|
-
}, 150)
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (modalHeader) {
|
|
224
|
-
let mobileEvent: HammerManager = controller.playerInstance.eventInstance.mobileEvents.setMobileEvent(modalHeader);
|
|
225
|
-
if (mobileEvent) {
|
|
226
|
-
mobileEvent.on('pan', function LTPlayerMobileDragDownModal() {
|
|
227
|
-
closeModal();
|
|
228
|
-
if (controller.plyr.paused) {
|
|
229
|
-
controller.plyr.play();
|
|
230
|
-
}
|
|
231
|
-
})
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
if (background) {
|
|
235
|
-
let mobileEvent: HammerManager = controller.playerInstance.eventInstance.mobileEvents.setMobileEvent(background);
|
|
236
|
-
if (mobileEvent) {
|
|
237
|
-
mobileEvent.on('singletap', function LTPlayerMobileCloseModal() {
|
|
238
|
-
closeModal();
|
|
239
|
-
if (controller.plyr.paused) {
|
|
240
|
-
controller.plyr.play();
|
|
241
|
-
}
|
|
242
|
-
})
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|