@gcorevideo/player 2.28.25 → 2.28.26

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 (143) hide show
  1. package/dist/core.js +38 -32
  2. package/dist/index.css +223 -223
  3. package/dist/index.embed.js +95 -38
  4. package/dist/index.js +227 -122
  5. package/lib/Player.d.ts.map +1 -1
  6. package/lib/index.core.d.ts +1 -1
  7. package/lib/index.core.d.ts.map +1 -1
  8. package/lib/index.core.js +1 -1
  9. package/lib/index.plugins.d.ts +34 -34
  10. package/lib/index.plugins.d.ts.map +1 -1
  11. package/lib/index.plugins.js +34 -34
  12. package/lib/playback/types.d.ts.map +1 -1
  13. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  14. package/lib/plugins/bottom-gear/BottomGear.js +3 -1
  15. package/lib/plugins/clappr-nerd-stats/speedtest/index.d.ts.map +1 -1
  16. package/lib/plugins/clappr-nerd-stats/speedtest/index.js +9 -5
  17. package/lib/plugins/clappr-nerd-stats/speedtest/types.d.ts.map +1 -1
  18. package/lib/plugins/clappr-nerd-stats/utils.d.ts +2 -2
  19. package/lib/plugins/clips/utils.d.ts.map +1 -1
  20. package/lib/plugins/cmcd-config/CmcdConfig.js +1 -1
  21. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  22. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
  23. package/lib/plugins/google-analytics/GoogleAnalytics.js +10 -3
  24. package/lib/plugins/kibo/index.d.ts.map +1 -1
  25. package/lib/plugins/kibo/index.js +69 -20
  26. package/lib/plugins/level-selector/QualityLevels.js +2 -2
  27. package/lib/plugins/logo/Logo.d.ts.map +1 -1
  28. package/lib/plugins/logo/Logo.js +19 -15
  29. package/lib/plugins/logo/utils/index.d.ts.map +1 -1
  30. package/lib/plugins/logo/utils/index.js +11 -7
  31. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  32. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  33. package/lib/plugins/multi-camera/MultiCamera.js +42 -20
  34. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
  35. package/lib/plugins/picture-in-picture/PictureInPicture.js +3 -2
  36. package/lib/plugins/share/Share.d.ts.map +1 -1
  37. package/lib/plugins/share/Share.js +17 -12
  38. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  39. package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
  40. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  41. package/lib/plugins/subtitles/ClosedCaptions.js +4 -3
  42. package/lib/plugins/thumbnails/Thumbnails.js +2 -3
  43. package/lib/plugins/thumbnails/utils.d.ts.map +1 -1
  44. package/lib/plugins/utils/fullscreen.d.ts.map +1 -1
  45. package/lib/plugins/utils.d.ts.map +1 -1
  46. package/lib/plugins/utils.js +1 -1
  47. package/lib/plugins/vast-ads/VastAds.d.ts.map +1 -1
  48. package/lib/plugins/vast-ads/VastAds.js +2 -1
  49. package/lib/plugins/vast-ads/loaderxml.d.ts.map +1 -1
  50. package/lib/plugins/vast-ads/loaderxml.js +8 -5
  51. package/lib/plugins/vast-ads/roll.d.ts +2 -2
  52. package/lib/plugins/vast-ads/roll.d.ts.map +1 -1
  53. package/lib/plugins/vast-ads/roll.js +16 -10
  54. package/lib/plugins/vast-ads/rollmanager.d.ts.map +1 -1
  55. package/lib/plugins/vast-ads/rollmanager.js +17 -7
  56. package/lib/plugins/vast-ads/sctemanager.d.ts +1 -1
  57. package/lib/plugins/vast-ads/sctemanager.d.ts.map +1 -1
  58. package/lib/plugins/vast-ads/sctemanager.js +6 -5
  59. package/lib/plugins/vast-ads/types.d.ts.map +1 -1
  60. package/lib/plugins/vast-ads/urlhandler.d.ts.map +1 -1
  61. package/lib/plugins/vast-ads/xmlhttprequest.d.ts.map +1 -1
  62. package/lib/plugins/vast-ads/xmlhttprequest.js +3 -2
  63. package/lib/plugins/vast-ads/xmlmerge.d.ts.map +1 -1
  64. package/lib/plugins/vast-ads/xmlmerge.js +4 -3
  65. package/lib/types.d.ts +1 -1
  66. package/lib/types.d.ts.map +1 -1
  67. package/lib/utils/clickaway.d.ts.map +1 -1
  68. package/lib/utils/mediaSources.d.ts.map +1 -1
  69. package/lib/utils/mediaSources.js +1 -3
  70. package/lib/utils/types.d.ts.map +1 -1
  71. package/lib/version.js +2 -2
  72. package/package.json +2 -2
  73. package/src/Player.ts +10 -10
  74. package/src/__tests__/Player.test.ts +33 -10
  75. package/src/index.core.ts +9 -1
  76. package/src/index.plugins.ts +35 -35
  77. package/src/playback/BasePlayback.ts +1 -1
  78. package/src/playback/__tests__/HTML5Video.test.ts +10 -4
  79. package/src/playback/dash-playback/__tests__/DashPlayback.test.ts +10 -38
  80. package/src/playback/hls-playback/__tests__/HlsPlayback.test.ts +12 -45
  81. package/src/playback/types.ts +0 -1
  82. package/src/playback.types.ts +1 -2
  83. package/src/plugins/audio-selector/AudioTracks.ts +1 -1
  84. package/src/plugins/audio-selector/__tests__/AudioTracks.test.ts +30 -11
  85. package/src/plugins/bottom-gear/BottomGear.ts +3 -2
  86. package/src/plugins/clappr-nerd-stats/NerdStats.ts +1 -1
  87. package/src/plugins/clappr-nerd-stats/speedtest/index.ts +104 -82
  88. package/src/plugins/clappr-nerd-stats/speedtest/types.ts +3 -3
  89. package/src/plugins/clappr-nerd-stats/utils.ts +2 -2
  90. package/src/plugins/clappr-stats/__tests__/ClapprStats.test.ts +30 -18
  91. package/src/plugins/clips/utils.ts +5 -1
  92. package/src/plugins/cmcd-config/CmcdConfig.ts +1 -1
  93. package/src/plugins/error-screen/__tests__/ErrorScreen.test.ts +21 -15
  94. package/src/plugins/favicon/Favicon.ts +73 -49
  95. package/src/plugins/google-analytics/GoogleAnalytics.ts +93 -58
  96. package/src/plugins/kibo/index.ts +183 -109
  97. package/src/plugins/level-selector/QualityLevels.ts +2 -2
  98. package/src/plugins/logo/Logo.ts +134 -105
  99. package/src/plugins/logo/utils/index.ts +27 -20
  100. package/src/plugins/media-control/MediaControl.ts +12 -6
  101. package/src/plugins/multi-camera/MultiCamera.ts +218 -157
  102. package/src/plugins/picture-in-picture/PictureInPicture.ts +41 -37
  103. package/src/plugins/playback-rate/__tests__/PlaybackRate.test.ts +25 -11
  104. package/src/plugins/poster/__tests__/Poster.test.ts +8 -9
  105. package/src/plugins/share/Share.ts +85 -60
  106. package/src/plugins/skip-time/SkipTime.ts +5 -1
  107. package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +8 -5
  108. package/src/plugins/subtitles/ClosedCaptions.ts +7 -5
  109. package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +0 -1
  110. package/src/plugins/thumbnails/Thumbnails.ts +22 -21
  111. package/src/plugins/thumbnails/__tests__/Thumbnails.test.ts +14 -7
  112. package/src/plugins/thumbnails/utils.ts +3 -1
  113. package/src/plugins/typings/globals.d.ts +7 -7
  114. package/src/plugins/typings/workers.d.ts +3 -3
  115. package/src/plugins/utils/fullscreen.ts +2 -2
  116. package/src/plugins/utils.ts +17 -13
  117. package/src/plugins/vast-ads/VastAds.ts +4 -5
  118. package/src/plugins/vast-ads/loaderxml.ts +142 -101
  119. package/src/plugins/vast-ads/roll.ts +381 -284
  120. package/src/plugins/vast-ads/rollmanager.ts +214 -170
  121. package/src/plugins/vast-ads/sctemanager.ts +66 -48
  122. package/src/plugins/vast-ads/types.ts +15 -9
  123. package/src/plugins/vast-ads/urlhandler.ts +18 -13
  124. package/src/plugins/vast-ads/xmlhttprequest.ts +25 -20
  125. package/src/plugins/vast-ads/xmlmerge.ts +42 -32
  126. package/src/plugins/video360/VRControls.js +50 -42
  127. package/src/plugins/video360/VREffect.js +298 -206
  128. package/src/plugins/video360/Video360.js +553 -423
  129. package/src/plugins/video360/orbit-oriention-controls.js +526 -421
  130. package/src/plugins/video360/utils.js +18 -18
  131. package/src/types.ts +5 -3
  132. package/src/typings/@clappr/core/error_mixin.d.ts +9 -9
  133. package/src/typings/@clappr/core/index.d.ts +1 -3
  134. package/src/typings/@clappr/core/playback.d.ts +3 -3
  135. package/src/typings/@clappr/index.d.ts +1 -1
  136. package/src/typings/globals.d.ts +15 -15
  137. package/src/utils/__tests__/mediaSources.test.ts +42 -26
  138. package/src/utils/clickaway.ts +24 -24
  139. package/src/utils/errors.ts +2 -2
  140. package/src/utils/mediaSources.ts +5 -4
  141. package/src/utils/types.ts +1 -1
  142. package/src/version.ts +2 -2
  143. package/tsconfig.tsbuildinfo +1 -1
@@ -2,52 +2,53 @@
2
2
  // Kibo is released under the MIT License. Copyright (c) 2013 marquete.
3
3
  // see https://github.com/marquete/kibo
4
4
 
5
- type KeyboardEventHandler = (e: KeyboardEvent) => boolean | undefined;
5
+ type KeyboardEventHandler = (e: KeyboardEvent) => boolean | undefined
6
6
 
7
7
  type KeyboardEventBindings = {
8
- any: KeyboardEventHandler[];
9
- [key: string]: KeyboardEventHandler[];
8
+ any: KeyboardEventHandler[]
9
+ [key: string]: KeyboardEventHandler[]
10
10
  }
11
11
 
12
- type UpDown = 'up' | 'down';
12
+ type UpDown = 'up' | 'down'
13
13
 
14
14
  export class Kibo {
15
- private lastKeyCode = -1;
15
+ private lastKeyCode = -1
16
16
 
17
- private lastModifiers: Record<string, boolean> = {};
17
+ private lastModifiers: Record<string, boolean> = {}
18
18
 
19
- private keysDown: KeyboardEventBindings = { any: [] }; // TODO
20
- private keysUp: KeyboardEventBindings = { any: [] };
19
+ private keysDown: KeyboardEventBindings = { any: [] } // TODO
20
+ private keysUp: KeyboardEventBindings = { any: [] }
21
21
 
22
- private downHandler: (e: KeyboardEvent) => void;
22
+ private downHandler: (e: KeyboardEvent) => void
23
23
 
24
- private upHandler: (e: KeyboardEvent) => void;
24
+ private upHandler: (e: KeyboardEvent) => void
25
25
 
26
26
  constructor(private element: Document | Element = window.document) {
27
27
  for (const mod of MODIFIERS) {
28
- this.lastModifiers[mod] = false;
28
+ this.lastModifiers[mod] = false
29
29
  }
30
-
31
- this.keysDown = { any: [] };
32
- this.keysUp = { any: [] };
33
- this.downHandler = this.handler('down');
34
- this.upHandler = this.handler('up');
35
-
36
- registerEvent(this.element, 'keydown', this.downHandler);
37
- registerEvent(this.element, 'keyup', this.upHandler);
30
+
31
+ this.keysDown = { any: [] }
32
+ this.keysUp = { any: [] }
33
+ this.downHandler = this.handler('down')
34
+ this.upHandler = this.handler('up')
35
+
36
+ registerEvent(this.element, 'keydown', this.downHandler)
37
+ registerEvent(this.element, 'keyup', this.upHandler)
38
38
  const unloader = () => {
39
- unregisterEvent(this.element, 'keydown', this.downHandler);
40
- unregisterEvent(this.element, 'keyup', this.upHandler);
41
- unregisterEvent(window, 'unload', unloader);
42
- };
43
- registerEvent(window, 'unload', unloader);
39
+ unregisterEvent(this.element, 'keydown', this.downHandler)
40
+ unregisterEvent(this.element, 'keyup', this.upHandler)
41
+ unregisterEvent(window, 'unload', unloader)
42
+ }
43
+ registerEvent(window, 'unload', unloader)
44
44
  }
45
45
 
46
46
  private handler(upOrDown: UpDown = 'up') {
47
47
  return (e: KeyboardEvent) => {
48
- this.lastKeyCode = e.keyCode; // TODO
48
+ this.lastKeyCode = e.keyCode // TODO
49
49
  for (const mod of MODIFIERS) {
50
- this.lastModifiers[mod] = e[(mod + 'Key') as 'shiftKey' | 'ctrlKey' | 'altKey'];
50
+ this.lastModifiers[mod] =
51
+ e[(mod + 'Key') as 'shiftKey' | 'ctrlKey' | 'altKey']
51
52
  }
52
53
  // for (i = 0; i < Kibo.MODIFIERS.length; i++) {
53
54
  // that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];
@@ -55,14 +56,15 @@ export class Kibo {
55
56
  // if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {
56
57
  // that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;
57
58
  // }
58
- const key = keyName(this.lastKeyCode);
59
+ const key = keyName(this.lastKeyCode)
59
60
  if (key && MODIFIERS.includes(key)) {
60
- this.lastModifiers[key] = true;
61
+ this.lastModifiers[key] = true
61
62
  }
62
-
63
- const regKeys: KeyboardEventBindings = upOrDown === 'up' ? this.keysUp : this.keysDown;
63
+
64
+ const regKeys: KeyboardEventBindings =
65
+ upOrDown === 'up' ? this.keysUp : this.keysDown
64
66
  // this['keys' + capitalize(upOrDown)]; // TODO
65
-
67
+
66
68
  // for (i = 0; i < registeredKeys.any.length; i++) {
67
69
  // if ((registeredKeys.any[i](e) === false) && e.preventDefault) {
68
70
  // e.preventDefault();
@@ -70,34 +72,38 @@ export class Kibo {
70
72
  // }
71
73
  for (const h of regKeys.any) {
72
74
  if (h(e) === false && e.preventDefault) {
73
- e.preventDefault();
75
+ e.preventDefault()
74
76
  }
75
77
  }
76
-
77
- const lastModifiersAndKey = this.lastModifiersAndKey();
78
+
79
+ const lastModifiersAndKey = this.lastModifiersAndKey()
78
80
  if (regKeys[lastModifiersAndKey]) {
79
81
  for (const h of regKeys[lastModifiersAndKey]) {
80
- if ((h(e) === false) && e.preventDefault) {
81
- e.preventDefault();
82
+ if (h(e) === false && e.preventDefault) {
83
+ e.preventDefault()
82
84
  }
83
- // for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {
85
+ // for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {
84
86
  // if ((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {
85
- // e.preventDefault();
87
+ // e.preventDefault();
86
88
  // }
87
89
  }
88
90
  }
89
- };
91
+ }
90
92
  }
91
93
 
92
- private registerKeys(upOrDown: UpDown, newKeys: string | string[], func: KeyboardEventHandler) {
93
- const registeredKeys = upOrDown === 'up' ? this.keysUp : this.keysDown;
94
-
95
- const normKeys = typeof newKeys === "string" ? [newKeys] : newKeys;
96
-
94
+ private registerKeys(
95
+ upOrDown: UpDown,
96
+ newKeys: string | string[],
97
+ func: KeyboardEventHandler,
98
+ ) {
99
+ const registeredKeys = upOrDown === 'up' ? this.keysUp : this.keysDown
100
+
101
+ const normKeys = typeof newKeys === 'string' ? [newKeys] : newKeys
102
+
97
103
  // for (i = 0; i < newKeys.length; i++) {
98
104
  // // keys = newKeys[i];
99
105
  // keys = modifiersAndKey(keys + '');
100
-
106
+
101
107
  // if (registeredKeys[keys]) {
102
108
  // registeredKeys[keys].push(func);
103
109
  // } else {
@@ -105,140 +111,208 @@ export class Kibo {
105
111
  // }
106
112
  // }
107
113
  for (const k of normKeys) {
108
- const keys = modifiersAndKey(k);
109
-
114
+ const keys = modifiersAndKey(k)
115
+
110
116
  if (registeredKeys[keys]) {
111
- registeredKeys[keys].push(func);
117
+ registeredKeys[keys].push(func)
112
118
  } else {
113
- registeredKeys[keys] = [func];
119
+ registeredKeys[keys] = [func]
114
120
  }
115
121
  }
116
-
117
- return this;
122
+
123
+ return this
118
124
  }
119
125
 
120
- private unregisterKeys(upOrDown: UpDown, newKeys: string | string[], func: KeyboardEventHandler | null = null) {
121
- const registeredKeys = upOrDown === 'up' ? this.keysUp : this.keysDown;
122
- const normKeys = typeof newKeys === "string" ? [newKeys] : newKeys;
126
+ private unregisterKeys(
127
+ upOrDown: UpDown,
128
+ newKeys: string | string[],
129
+ func: KeyboardEventHandler | null = null,
130
+ ) {
131
+ const registeredKeys = upOrDown === 'up' ? this.keysUp : this.keysDown
132
+ const normKeys = typeof newKeys === 'string' ? [newKeys] : newKeys
123
133
 
124
134
  for (const k of normKeys) {
125
- const keys = modifiersAndKey(k);
135
+ const keys = modifiersAndKey(k)
126
136
  if (func === null) {
127
- delete registeredKeys[keys];
137
+ delete registeredKeys[keys]
128
138
  } else {
129
139
  if (registeredKeys[keys]) {
130
- const p = registeredKeys[keys].indexOf(func);
140
+ const p = registeredKeys[keys].indexOf(func)
131
141
  if (p >= 0) {
132
- registeredKeys[keys].splice(p, 1);
142
+ registeredKeys[keys].splice(p, 1)
133
143
  }
134
144
  }
135
145
  }
136
146
  }
137
-
138
- return this;
147
+
148
+ return this
139
149
  }
140
150
 
141
151
  off(keys: string | string[]): Kibo {
142
- return this.unregisterKeys('down', keys, null);
152
+ return this.unregisterKeys('down', keys, null)
143
153
  }
144
154
 
145
- delegate(upOrDown: UpDown, keys: string | string[], func?: KeyboardEventHandler | null): Kibo {
146
- return (func !== null && func !== undefined)
155
+ delegate(
156
+ upOrDown: UpDown,
157
+ keys: string | string[],
158
+ func?: KeyboardEventHandler | null,
159
+ ): Kibo {
160
+ return func !== null && func !== undefined
147
161
  ? this.registerKeys(upOrDown, keys, func)
148
- : this.unregisterKeys(upOrDown, keys, func);
162
+ : this.unregisterKeys(upOrDown, keys, func)
149
163
  }
150
164
 
151
165
  down(keys: string | string[], func?: KeyboardEventHandler | null): Kibo {
152
- return this.delegate('down', keys, func);
166
+ return this.delegate('down', keys, func)
153
167
  }
154
168
 
155
169
  up(keys: string | string[], func?: KeyboardEventHandler | null): Kibo {
156
- return this.delegate('up', keys, func);
170
+ return this.delegate('up', keys, func)
157
171
  }
158
172
 
159
173
  lastKey(modifier?: string): string | boolean {
160
174
  if (!modifier) {
161
- return keyName(this.lastKeyCode);
175
+ return keyName(this.lastKeyCode)
162
176
  }
163
-
164
- return this.lastModifiers[modifier];
177
+
178
+ return this.lastModifiers[modifier]
165
179
  }
166
180
 
167
181
  lastModifiersAndKey() {
168
- const result = MODIFIERS.filter(m => this.lastKey(m));
169
- const lastKey = keyName(this.lastKeyCode);
182
+ const result = MODIFIERS.filter((m) => this.lastKey(m))
183
+ const lastKey = keyName(this.lastKeyCode)
170
184
  if (lastKey && !result.includes(lastKey)) {
171
- result.push(lastKey);
185
+ result.push(lastKey)
172
186
  }
173
- return result.join(' ');
174
- };
187
+ return result.join(' ')
188
+ }
175
189
  }
176
190
 
177
- function registerEvent(element: Node | Window, eventName: string, func: (e: KeyboardEvent) => void): void {
178
- element.addEventListener(eventName, func as EventListener, false);
191
+ function registerEvent(
192
+ element: Node | Window,
193
+ eventName: string,
194
+ func: (e: KeyboardEvent) => void,
195
+ ): void {
196
+ element.addEventListener(eventName, func as EventListener, false)
179
197
  }
180
198
 
181
- function unregisterEvent(element: Node | Window, eventName: string, func: (e: KeyboardEvent) => void): void {
182
- element.removeEventListener(eventName, func as EventListener, false);
199
+ function unregisterEvent(
200
+ element: Node | Window,
201
+ eventName: string,
202
+ func: (e: KeyboardEvent) => void,
203
+ ): void {
204
+ element.removeEventListener(eventName, func as EventListener, false)
183
205
  }
184
206
 
185
207
  const KEY_NAMES_BY_CODE: Record<number, string> = {
186
- 8: 'backspace', 9: 'tab', 13: 'enter',
187
- 16: 'shift', 17: 'ctrl', 18: 'alt',
208
+ 8: 'backspace',
209
+ 9: 'tab',
210
+ 13: 'enter',
211
+ 16: 'shift',
212
+ 17: 'ctrl',
213
+ 18: 'alt',
188
214
  20: 'caps_lock',
189
215
  27: 'esc',
190
216
  32: 'space',
191
- 37: 'left', 38: 'up', 39: 'right', 40: 'down',
192
- 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',
193
- 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',
194
- 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',
195
- 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',
196
- 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'
197
- };
217
+ 37: 'left',
218
+ 38: 'up',
219
+ 39: 'right',
220
+ 40: 'down',
221
+ 48: '0',
222
+ 49: '1',
223
+ 50: '2',
224
+ 51: '3',
225
+ 52: '4',
226
+ 53: '5',
227
+ 54: '6',
228
+ 55: '7',
229
+ 56: '8',
230
+ 57: '9',
231
+ 65: 'a',
232
+ 66: 'b',
233
+ 67: 'c',
234
+ 68: 'd',
235
+ 69: 'e',
236
+ 70: 'f',
237
+ 71: 'g',
238
+ 72: 'h',
239
+ 73: 'i',
240
+ 74: 'j',
241
+ 75: 'k',
242
+ 76: 'l',
243
+ 77: 'm',
244
+ 78: 'n',
245
+ 79: 'o',
246
+ 80: 'p',
247
+ 81: 'q',
248
+ 82: 'r',
249
+ 83: 's',
250
+ 84: 't',
251
+ 85: 'u',
252
+ 86: 'v',
253
+ 87: 'w',
254
+ 88: 'x',
255
+ 89: 'y',
256
+ 90: 'z',
257
+ 112: 'f1',
258
+ 113: 'f2',
259
+ 114: 'f3',
260
+ 115: 'f4',
261
+ 116: 'f5',
262
+ 117: 'f6',
263
+ 118: 'f7',
264
+ 119: 'f8',
265
+ 120: 'f9',
266
+ 121: 'f10',
267
+ 122: 'f11',
268
+ 123: 'f12',
269
+ }
198
270
 
199
- const KEY_CODES_BY_NAME: Record<string, number> = {};
271
+ const KEY_CODES_BY_NAME: Record<string, number> = {}
200
272
 
201
- (function () {
273
+ ;(function () {
202
274
  Object.entries(KEY_NAMES_BY_CODE).forEach(([key, name]) => {
203
- KEY_CODES_BY_NAME[name] = +key;
204
- });
205
- })();
275
+ KEY_CODES_BY_NAME[name] = +key
276
+ })
277
+ })()
206
278
 
207
- const MODIFIERS = ['shift', 'ctrl', 'alt'];
279
+ const MODIFIERS = ['shift', 'ctrl', 'alt']
208
280
 
209
281
  function stringContains(string: string, substring: string): boolean {
210
- return string.indexOf(substring) !== -1;
282
+ return string.indexOf(substring) !== -1
211
283
  }
212
284
 
213
285
  function neatString(string: string): string {
214
- return string.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ');
215
- };
286
+ return string.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ')
287
+ }
216
288
 
217
289
  function extractModifiers(keyCombination: string): string[] {
218
- return MODIFIERS.filter(m => keyCombination.includes(m));
290
+ return MODIFIERS.filter((m) => keyCombination.includes(m))
219
291
  }
220
292
 
221
- function extractKey(keyCombination: string): string | undefined{
222
- return neatString(keyCombination).split(' ').find(key => !MODIFIERS.includes(key));
223
- };
293
+ function extractKey(keyCombination: string): string | undefined {
294
+ return neatString(keyCombination)
295
+ .split(' ')
296
+ .find((key) => !MODIFIERS.includes(key))
297
+ }
224
298
 
225
- function modifiersAndKey(keyCombination: string) {
226
- var result, key;
299
+ function modifiersAndKey(keyCombination: string) {
300
+ var result, key
227
301
 
228
302
  if (stringContains(keyCombination, 'any')) {
229
- return neatString(keyCombination).split(' ').slice(0, 2).join(' ');
303
+ return neatString(keyCombination).split(' ').slice(0, 2).join(' ')
230
304
  }
231
305
 
232
- result = extractModifiers(keyCombination);
306
+ result = extractModifiers(keyCombination)
233
307
 
234
- key = extractKey(keyCombination);
308
+ key = extractKey(keyCombination)
235
309
  if (key) {
236
- result.push(key);
310
+ result.push(key)
237
311
  }
238
312
 
239
- return result.join(' ');
313
+ return result.join(' ')
240
314
  }
241
315
 
242
316
  function keyName(keyCode: number): string {
243
- return KEY_NAMES_BY_CODE[keyCode] || '';
244
- };
317
+ return KEY_NAMES_BY_CODE[keyCode] || ''
318
+ }
@@ -267,11 +267,11 @@ export class QualityLevels extends UICorePlugin {
267
267
  private get maxLevel() {
268
268
  const maxRes = this.pluginOptions.restrictResolution
269
269
  return maxRes
270
- ? this.levels.find(
270
+ ? (this.levels.find(
271
271
  (level) =>
272
272
  (level.height > level.width ? level.width : level.height) ===
273
273
  maxRes,
274
- )?.level ?? -1
274
+ )?.level ?? -1)
275
275
  : -1
276
276
  }
277
277