@latest-thinking/lt-player 1.0.6 → 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.
Files changed (40) hide show
  1. package/dist/css/lt-player-main.css +1 -1
  2. package/dist/css/lt-player-main.css.map +1 -1
  3. package/dist/js/lt-player-main.js +1 -1
  4. package/dist/js/lt-player-main.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/assets/sass/abstracts/_mixins.scss +11 -0
  7. package/src/assets/sass/abstracts/_variables.scss +3 -0
  8. package/src/assets/sass/app.scss +13 -1
  9. package/src/assets/sass/components/_modal.scss +1 -1
  10. package/src/assets/sass/sections/_settings.scss +255 -82
  11. package/src/assets/sass/sections/_share.scss +132 -21
  12. package/src/assets/sass/sections/controllers/_botom.scss +296 -303
  13. package/src/assets/sass/sections/controllers/_notification-rewind-forward.scss +36 -66
  14. package/src/assets/sass/sections/controllers/_top.scss +94 -113
  15. package/src/components/LTPlayerSetup.ts +0 -1
  16. package/src/components/LTPlayerType.ts +12 -12
  17. package/src/components/addInfo/LTPlayerAddInfoDesktop.ts +99 -0
  18. package/src/components/addInfo/LTPlayerAddInfoManager.ts +6 -6
  19. package/src/components/addInfo/LTPlayerAddInfoMobile.ts +110 -0
  20. package/src/components/config/LTPlayerConfig.ts +25 -11
  21. package/src/components/controls/LTPlayerControlsEvents.ts +46 -36
  22. package/src/components/controls/settings/LTPlayerDesktopSettingsControllers.ts +0 -1
  23. package/src/components/controls/settings/LTPlayerMobileSettingsControllers.ts +166 -30
  24. package/src/components/events/LTPlayer.ts +8 -0
  25. package/src/components/events/LTPlayerCommon.ts +28 -32
  26. package/src/components/events/LTPlayerDesktop.ts +4 -0
  27. package/src/components/events/LTPlayerMobile.ts +4 -2
  28. package/src/components/share/LTPlayerShareDesktop.ts +120 -0
  29. package/src/components/share/LTPlayerShareEvents.ts +30 -132
  30. package/src/components/share/{LTPlayerShare.ts → LTPlayerShareManager.ts} +26 -8
  31. package/src/components/share/LTPlayerShareMobile.ts +154 -0
  32. package/src/components/video/LTPlayerVideo.ts +49 -0
  33. package/src/global/controllers/LTPlayerController.ts +6 -3
  34. package/src/index.ts +6 -0
  35. package/src/services/ResizeService.ts +7 -7
  36. package/src/views/additionalInfo.handlebars +4 -8
  37. package/src/views/controls.handlebars +41 -37
  38. package/src/views/settings.handlebars +11 -14
  39. package/src/views/share.handlebars +36 -33
  40. package/src/components/addInfo/LTPlayerAdditionalInfoEvents.ts +0 -247
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latest-thinking/lt-player",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "LT player.",
5
5
  "main": "dist/js/lt-player-main.js",
6
6
  "module": "dist/js/lt-player-main.js",
@@ -83,6 +83,17 @@
83
83
  }
84
84
  }
85
85
 
86
+ @mixin buttons-normal {
87
+ padding: 8px 8px;
88
+
89
+ img {
90
+ width: 24px;
91
+ height: 24px;
92
+ min-width: 24px;
93
+ min-height: 24px;
94
+ }
95
+ }
96
+
86
97
  @mixin line-clamp-2 {
87
98
  -webkit-line-clamp: 2;
88
99
  }
@@ -17,8 +17,10 @@
17
17
  $lt-font-family-base: "MuseoSans", sans-serif !important;
18
18
 
19
19
  $lt-player-font-size-xs: 12px;
20
+ $lt-player-font-size-sm: 14px;
20
21
  $lt-player-font-size-base: 16px;
21
22
  $lt-player-font-size-lg: 18px;
23
+ $lt-player-font-size-lg2: 19px;
22
24
  $lt-player-font-size-xl: 20px;
23
25
  $lt-player-font-size-xxl: 21px;
24
26
  $lt-player-font-size-xxl2: 24px;
@@ -26,6 +28,7 @@ $lt-player-font-size-xxxl2: 30px;
26
28
 
27
29
  $lt-player-font-weight-xs: 100;
28
30
  $lt-player-font-weight-sm: 300;
31
+ $lt-player-font-weight-base: 500;
29
32
  $lt-player-font-weight-lg: 600;
30
33
  $lt-player-font-weight-xl: 700;
31
34
 
@@ -20,7 +20,9 @@
20
20
  // 2. Resetting properties
21
21
  //---------------------------------------------
22
22
 
23
-
23
+ body {
24
+ margin: 0;
25
+ }
24
26
 
25
27
  //---------------------------------------------
26
28
  // 3. General
@@ -30,6 +32,16 @@
30
32
  display: flex;
31
33
  }
32
34
 
35
+ .lt-player-orientation {
36
+ &--portrait {
37
+ container: portrait / inline-size;
38
+ }
39
+
40
+ &--landscape {
41
+ container: landscape / inline-size;
42
+ }
43
+ }
44
+
33
45
  .invisible {
34
46
  visibility: hidden;
35
47
  }
@@ -182,7 +182,7 @@
182
182
  left: 0;
183
183
  background: $default-lt-player-white;
184
184
  padding: 0 0 32px 0;
185
- bottom: -66%;
185
+ bottom: 0;
186
186
  transition: .3s;
187
187
  max-height: 90%;
188
188
  overflow: auto;
@@ -1,107 +1,249 @@
1
1
  @import "../abstracts/variables";
2
2
 
3
- .lt-player-landscape--desktop {
4
- .plyr {
5
- &__controls {
6
- .settings-controllers {
7
- transition: none;
3
+ .lt-player-mobile-settings-modal {
4
+ .settings-controllers {
5
+ position: fixed;
6
+ width: 100%;
7
+ z-index: 10;
8
+ left: 0;
9
+ background: $default-lt-player-white;
10
+ padding: 0 0 32px 0;
11
+ bottom: 0;
12
+ transition:.3s;
13
+
14
+ .line-button {
15
+ @extend %line-button;
16
+ }
17
+
18
+ .settings-text {
19
+ font-size: $lt-player-font-size-base;
20
+ font-weight: $lt-player-font-weight-sm;
21
+ color: $default-lt-button-color !important;
22
+ margin: 0;
23
+ }
24
+ }
25
+
26
+ .settings-controllers-enable {
27
+ transition:.3s;
28
+ position: absolute;
29
+ width: 100%;
30
+ z-index: 30;
31
+ left: 0;
32
+ background: $default-lt-player-white;
33
+ border-radius: 0 0 0 30px;
34
+ bottom: 0;
35
+ display: flex;
36
+ flex-direction: column;
37
+ padding: 0 0 24px 0;
38
+
39
+ &__speed-range {
40
+ padding: 24px 24px 0 24px;
41
+ align-items: center;
42
+ color: $default-lt-player-black;
43
+ display: flex;
44
+ position: relative;
45
+
46
+ .mobile {
47
+ display: flex;
48
+ width: 80%!important;
8
49
  }
9
50
 
10
- .settings-controllers-enable {
11
- top: 50%;
12
- left: 50%;
13
- right: 0;
14
- bottom: 0;
15
- max-width: 345px;
16
- height: fit-content;
17
- transform: translate(-50%, -50%);
18
- transition: none;
19
- width: 100%;
20
- border-radius: 0;
51
+ .speed-range-input-body {
52
+ color: $default-lt-player-black;
53
+ width: 65%;
54
+ margin-left: auto;
55
+ position: relative;
21
56
 
22
- &__subtitles {
23
- padding: 16px 24px 24px;
57
+ button {
58
+ color: #27282A;
59
+ background-color: #D8D846;
60
+ width: 16%;
61
+ margin: 0 2px;
24
62
  }
25
63
 
26
- .line-button {
27
- display: none;
64
+ .button_active {
65
+ background-color: #27282A;
66
+ color: grey;
67
+ }
68
+
69
+
70
+ output {
71
+ font-size: $lt-player-font-size-base;
72
+ font-weight: $lt-player-font-weight-lg;
73
+ color: $default-lt-player-blue;
74
+ position: absolute;
75
+ left: 50%;
76
+ top: -20px;
77
+ }
78
+
79
+ .speed-range-input::-webkit-slider-thumb {
80
+ @extend %input-range--webkit-slider-thumb;
81
+ border: 7px solid $default-lt-player-blue;
82
+ height: 20px;
83
+ width: 20px;
84
+ background: $default-lt-player-white;
85
+ margin-top: -9.5px;
86
+ }
87
+
88
+ .speed-range-input::-moz-range-thumb {
89
+ @extend %input-range--moz-range-thumb;
90
+ color: $default-lt-player-white;
91
+ box-shadow: none;
92
+ border: 7px solid $default-lt-player-blue;
93
+ background: $default-lt-player-white;
94
+ }
95
+
96
+ .speed-range-input::-ms-thumb {
97
+ @extend %input-range--ms-thumb;
98
+ margin-top: 3px;
99
+ box-shadow: 1px 1px 1px $default-lt-player-white;
100
+ border: 7px solid $default-lt-player-blue;
101
+ height: 20px;
102
+ width: 20px;
103
+ background: $default-lt-player-white;
104
+ }
105
+
106
+ .speed-range-input {
107
+ color: $default-lt-player-blue;
108
+ height: 32px;
109
+ cursor: pointer;
110
+ width: 100%;
111
+ appearance: none;
112
+ }
113
+
114
+ .speed-range-input::-webkit-slider-runnable-track {
115
+ @extend %input-range--webkit-slider-runnable-track;
116
+ color: $default-lt-player-blue;
117
+ background: $default-lt-player-blue;
118
+ }
119
+
120
+ .speed-range-input::-moz-range-track {
121
+ @extend %input-range--moz-range-track;
122
+ color: $default-lt-player-blue;
123
+ background: $default-lt-player-blue;
124
+
125
+ }
126
+
127
+ .speed-range-input::-ms-track {
128
+ @extend %input-range--ms-track;
129
+ color: $default-lt-player-blue;
130
+ background: $default-lt-player-blue;
131
+ }
132
+
133
+ .speed-range-input::-moz-range-progress {
134
+ @extend %input-range--moz-range-progress;
135
+ height: 4px;
28
136
  }
29
137
  }
30
138
  }
31
- }
32
- }
33
139
 
34
- .lt-player-portrate--mobile {
35
- .plyr {
36
- &__controls {
37
- .settings-controllers-enable {
38
- border-radius: 0;
140
+ &__subtitles {
141
+ display: flex;
142
+ justify-content: space-between;
143
+ padding: 16px 24px 0 24px;
144
+ align-items: center;
145
+
146
+ .subtitles-body__input-switch:checked + .subtitles-body__slider {
147
+ background-color: $default_color_player;
39
148
  }
40
- }
41
- }
42
149
 
43
- &.lt-player--portrait {
44
- &__xs {
45
- .plyr {
46
- &__controls {
47
- .settings-controllers-enable {
48
- &__button-save {
49
- .button-save {
50
- @include buttons-xs;
51
- font-size: $lt-player-font-size-xs;
52
- width: 100%;
53
- }
54
- }
55
-
56
- &__subtitles {
57
- .subtitles-body {
58
- &__switch {
59
- height: 25px;
60
- min-width: 50px;
61
- }
62
-
63
- &__slider {
64
- &:before {
65
- height: 16px;
66
- width: 16px;
67
- }
68
- }
69
- }
70
- }
71
- }
150
+ .subtitles-body__input-switch:checked + .subtitles-body__slider::before {
151
+ -webkit-transform: translateX(26px);
152
+ -ms-transform: translateX(26px);
153
+ transform: translateX(26px);
154
+ }
155
+
156
+ .subtitles-body {
157
+ &__switch {
158
+ z-index: 4;
159
+ position: relative;
160
+ display: inline-block;
161
+ min-width: 60px;
162
+ height: 34px;
163
+ margin-left: 10px;
164
+ }
165
+
166
+ &__input-switch {
167
+ opacity: 0;
168
+ width: 0;
169
+ height: 0;
170
+ accent-color: #D8D846;
171
+ margin: 0;
172
+ font-family: inherit;
173
+ font-size: inherit;
174
+ line-height: inherit;
175
+ }
176
+
177
+ &__slider {
178
+ position: absolute;
179
+ cursor: pointer;
180
+ top: 0;
181
+ left: 0;
182
+ right: 0;
183
+ bottom: 0;
184
+ background-color: #E6E6E6;
185
+ -webkit-transition: 0.4s;
186
+ transition: 0.4s;
187
+ display: inline-block;
188
+ margin-bottom: 0!important;
189
+ margin-top: 0!important;
190
+ }
191
+
192
+ &__slider:focus {
193
+ box-shadow: 0 0 1px #D8D846;
194
+ }
195
+
196
+ &__slider:before {
197
+ width: 26px;
198
+ height: 26px;
199
+ background-color: $default-lt-player-white;
200
+ position: absolute;
201
+ content: "";
202
+ left: 4px;
203
+ bottom: 4px;
204
+ -webkit-transition: 0.4s;
205
+ transition: 0.4s;
72
206
  }
73
207
  }
74
208
  }
75
209
 
76
- &__sm {
77
- .plyr {
78
- &__controls {
79
- .settings-controllers-enable {
80
- &__button-save {
81
- .button-save {
82
- @include buttons-sm;
83
- font-size: $lt-player-font-size-base;
84
- width: 100%;
85
- }
86
- }
87
- }
88
- }
210
+ &__button-save {
211
+ padding: 16px 24px 0 24px;
212
+ color: black;
213
+ display: flex;
214
+ justify-content: left;
215
+
216
+ .button-save {
217
+ @extend %lt-player-btn;
218
+ @include yellow-btn;
219
+ padding: 12px 32px;
89
220
  }
90
221
  }
91
222
 
92
- &__md {
93
- .plyr {
94
- &__controls {
95
- .settings-controllers-enable {
96
- &__button-save {
97
- .button-save {
98
- width: 100%;
99
- }
100
- }
101
- }
102
- }
223
+ &__exit-button {
224
+ padding: 16px;
225
+
226
+ span {
227
+ display: flex;
228
+ justify-content: center;
229
+ align-items: center;
230
+ padding: 0.2em;
231
+ }
232
+
233
+ span:hover {
234
+ color: black;
103
235
  }
104
236
  }
237
+
238
+ &__background {
239
+ position: fixed;
240
+ width: 100%;
241
+ height: 100%;
242
+ top: 0;
243
+ background: #27282A;
244
+ opacity: 0.75;
245
+ z-index: 10;
246
+ }
105
247
  }
106
248
  }
107
249
 
@@ -352,3 +494,34 @@
352
494
  }
353
495
  }
354
496
  }
497
+
498
+ .lt-player-orientation--landscape {
499
+ .plyr {
500
+ &__controls {
501
+ .settings-controllers {
502
+ transition: none;
503
+ }
504
+
505
+ .settings-controllers-enable {
506
+ top: 50%;
507
+ left: 50%;
508
+ right: 0;
509
+ bottom: 0;
510
+ max-width: 345px;
511
+ height: fit-content;
512
+ transform: translate(-50%, -50%);
513
+ transition: none;
514
+ width: 100%;
515
+ border-radius: 0;
516
+
517
+ &__subtitles {
518
+ padding: 16px 24px 24px;
519
+ }
520
+
521
+ .line-button {
522
+ display: none;
523
+ }
524
+ }
525
+ }
526
+ }
527
+ }
@@ -1,23 +1,134 @@
1
- //.lt-player-portrate--mobile,
2
- //.lt-player-portrate--desktop,
3
- //.lt-player-landscape--mobile {
4
- // .plyr {
5
- // .share-controller {
6
- // .share-active {
7
- // position: relative;
8
- //
9
- //
10
- // .share-controller-content {
11
- // max-width: 100%;
12
- // .line-button {
13
- // visibility: visible;
14
- // margin-bottom: 32px;
15
- // }
16
- // }
17
- // }
18
- // }
19
- // }
20
- //}
1
+ .lt-player-mobile-share-modal {
2
+ .share-controller {
3
+ .share-inactive {
4
+ align-items: end;
5
+ background: rgba(0, 0, 0, .3);
6
+ -webkit-backdrop-filter: blur(14px);
7
+ backdrop-filter: blur(14px);
8
+ bottom: 0;
9
+ color: $default-lt-player-white;
10
+ display: flex;
11
+ justify-content: center;
12
+ left: 0;
13
+ position: absolute;
14
+ right: 0;
15
+ top: 0;
16
+ z-index: 9999999;
17
+
18
+ .share-controller-content {
19
+ background: $default-lt-player-white;
20
+ padding: 0 28px 20px;
21
+ text-align: center;
22
+ width: 100%;
23
+
24
+ .share-controller-mobile-modal-header {
25
+ position: sticky;
26
+ top: 0;
27
+ display: flex;
28
+ justify-content: space-between;
29
+ align-items: center;
30
+ background-color: transparent;
31
+ padding: 0 16px;
32
+ border-radius: 15px 15px 0 0;
33
+ }
34
+
35
+ .line-button {
36
+ display: flex;
37
+ width: 56px;
38
+ height: 6px;
39
+ background-color: $default-lt-line-button;
40
+ margin: 6px auto 32px;
41
+ cursor: pointer;
42
+ visibility: visible;
43
+ }
44
+
45
+ .share-controller-frame {
46
+ position: relative;
47
+
48
+ .player-share-close-button {
49
+ color: $default-lt-player-black;
50
+ position: absolute;
51
+ right: -20px;
52
+ top: -20px;
53
+ }
54
+ }
55
+
56
+ .share-controller-title,
57
+ .share-controller-via {
58
+ h3 {
59
+ color: $default-lt-button-color;
60
+ font-size: $lt-player-font-size-base;
61
+ font-weight: $lt-player-font-weight-lg;
62
+ margin-top: 0;
63
+ }
64
+ }
65
+
66
+ .share-controller-via {
67
+ margin-bottom: 25px;
68
+ }
69
+
70
+ .share-controller-link-wrapper {
71
+ @extend %center-elements;
72
+ flex-flow: column wrap;
73
+ gap: 20px;
74
+ word-break: break-word;
75
+
76
+ .share-controller-url {
77
+ font-size: $lt-player-font-size-base;
78
+ color: $default-lt-player-modal-color;
79
+ font-weight: $lt-player-font-weight-sm;
80
+ text-decoration: underline;
81
+ cursor: pointer;
82
+ max-width: 90%;
83
+ }
84
+
85
+ .share-controller-link {
86
+ @extend %lt-player-btn;
87
+ @include yellow-btn;
88
+ color: $default-lt-button-color !important;
89
+ max-width: 142px;
90
+ width: 100%;
91
+ }
92
+ }
93
+
94
+ .share-controller-hr {
95
+ opacity: 0.3;
96
+ margin: 20px 0;
97
+ }
98
+
99
+ .share-controller-icons {
100
+ @extend %center-elements;
101
+ gap: 15px;
102
+ flex-wrap: wrap;
103
+
104
+ div {
105
+ display: none;
106
+ }
107
+
108
+ a {
109
+ padding: 0;
110
+
111
+ &:first-child {
112
+ .share-icon__icon {
113
+ background: $default_color_player;
114
+ }
115
+ }
116
+
117
+ .share-icon__icon {
118
+ @extend %center-elements;
119
+ width: 32px;
120
+ height: 32px;
121
+ max-width: 32px;
122
+ max-height: 32px;
123
+ background: $default-lt-button-color;
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+
21
132
 
22
133
  .plyr {
23
134
  .share-controller {
@@ -52,7 +163,7 @@
52
163
  width: 56px;
53
164
  height: 6px;
54
165
  background-color: $default-lt-line-button;
55
- margin: 8px auto;
166
+ margin: 6px auto 32px;
56
167
  cursor: pointer;
57
168
  visibility: hidden;
58
169
  }