@applicaster/zapp-react-native-utils 13.0.6-alpha.4390983410 → 14.0.0-alpha.1015356256

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 (38) hide show
  1. package/actionsExecutor/ActionExecutorContext.tsx +1 -1
  2. package/analyticsUtils/AnalyticsEvents/helper.ts +81 -0
  3. package/analyticsUtils/AnalyticsEvents/sendOnClickEvent.ts +14 -4
  4. package/analyticsUtils/__tests__/analyticsUtils.test.js +14 -0
  5. package/analyticsUtils/events.ts +8 -0
  6. package/appUtils/accessibilityManager/index.ts +37 -5
  7. package/appUtils/playerManager/OverlayObserver/OverlaysObserver.ts +0 -15
  8. package/appUtils/playerManager/useChapterMarker.tsx +0 -1
  9. package/configurationUtils/__tests__/manifestKeyParser.test.ts +547 -0
  10. package/configurationUtils/manifestKeyParser.ts +57 -32
  11. package/focusManager/FocusManager.ts +22 -10
  12. package/focusManager/Tree.ts +25 -21
  13. package/focusManager/__tests__/FocusManager.test.ts +50 -8
  14. package/index.d.ts +3 -0
  15. package/manifestUtils/_internals/getDefaultConfiguration.js +28 -0
  16. package/manifestUtils/{_internals.js → _internals/index.js} +2 -25
  17. package/manifestUtils/createConfig.js +4 -1
  18. package/manifestUtils/defaultManifestConfigurations/player.js +1565 -572
  19. package/manifestUtils/progressBar/__tests__/mobileProgressBar.test.js +0 -30
  20. package/navigationUtils/__tests__/navigationUtils.test.js +0 -65
  21. package/navigationUtils/index.ts +0 -31
  22. package/package.json +2 -2
  23. package/playerUtils/__tests__/configurationUtils.test.ts +1 -65
  24. package/playerUtils/_internals/__tests__/utils.test.ts +71 -0
  25. package/playerUtils/_internals/index.ts +1 -0
  26. package/playerUtils/_internals/utils.ts +31 -0
  27. package/playerUtils/configurationUtils.ts +0 -44
  28. package/playerUtils/getPlayerActionButtons.ts +1 -1
  29. package/playerUtils/useValidatePlayerConfig.tsx +22 -19
  30. package/reactHooks/feed/useBatchLoading.ts +1 -1
  31. package/reactHooks/feed/usePipesCacheReset.ts +1 -1
  32. package/reactHooks/navigation/index.ts +7 -3
  33. package/reactHooks/screen/useScreenContext.ts +1 -1
  34. package/reactHooks/state/__tests__/ZStoreProvider.test.tsx +2 -1
  35. package/riverComponetsMeasurementProvider/index.tsx +1 -1
  36. package/services/js2native.ts +1 -0
  37. package/utils/index.ts +4 -0
  38. package/playerUtils/configurationGenerator.ts +0 -2572
@@ -4,9 +4,11 @@ const {
4
4
  remapConditionalFieldsForPluginGallery,
5
5
  } = require("../utils");
6
6
 
7
+ const R = require("ramda");
8
+ const compact = R.reject(R.isNil);
9
+
7
10
  function getDevice(platform) {
8
11
  switch (platform) {
9
- case "ios":
10
12
  case "ios_for_quickbrick":
11
13
  case "android":
12
14
  case "android_for_quickbrick":
@@ -17,52 +19,110 @@ function getDevice(platform) {
17
19
  case "android_tv_for_quickbrick":
18
20
  case "lg_tv":
19
21
  case "samsung_tv":
20
- case "web":
21
22
  case "vizio":
23
+ case "web":
22
24
  return "tv";
23
25
  }
24
26
  }
25
27
 
26
- function getPlayerConfiguration({ platform }) {
28
+ const isMobile = (platform) => getDevice(platform) === "mobile";
29
+ const isTV = (platform) => getDevice(platform) === "tv";
30
+
31
+ const mobileOnly = (platform, config) => (isMobile(platform) ? config : null);
32
+
33
+ function getPlayerConfiguration({ platform, version }) {
34
+ const audioTracksSettings =
35
+ platform.includes("android") || platform.includes("amazon")
36
+ ? [
37
+ {
38
+ type: "switch",
39
+ label: "Use audio tracks based on the app language",
40
+ tooltip:
41
+ "If enabled, the default audio tracks for videos would be set according to the chosen app language and user's system language",
42
+ key: "enable_auto_audio_track_selection",
43
+ initial_value: false,
44
+ },
45
+ {
46
+ type: "switch",
47
+ label: "Collapse adaptive audio tracks",
48
+ tooltip:
49
+ "If enabled, will display only adaptive tracks group name, otherwise will display all audio tracks of all bitrates",
50
+ key: "enable_adaptive_audio_track_selection",
51
+ initial_value: false,
52
+ },
53
+ ]
54
+ : [
55
+ {
56
+ type: "switch",
57
+ label: "Use audio tracks based on the app language",
58
+ tooltip:
59
+ "If enabled, the default audio tracks for videos would be set according to the chosen app language and user's system language",
60
+ key: "enable_auto_audio_track_selection",
61
+ initial_value: false,
62
+ },
63
+ ];
64
+
65
+ const audioPlayer = [
66
+ {
67
+ key: "audio_player_rtl",
68
+ label: "Audio player layout right to left",
69
+ initial_value: false,
70
+ type: "switch",
71
+ label_tooltip:
72
+ "Disable if you don't want the content to have a right orientation",
73
+ },
74
+ ];
75
+
27
76
  const general = {
77
+ fields: [],
78
+ };
79
+
80
+ const styles = {
28
81
  fields: [
29
82
  {
30
- key: "audio_player_rtl",
31
- label: "Audio player layout right to left",
32
- initial_value: true,
33
- type: "switch",
83
+ type: "color_picker_rgba",
84
+ label: "Screen background color",
85
+ key: "screen_background_color",
34
86
  label_tooltip:
35
- "Disable if you don't want the content to have a right orientation",
87
+ "This will override the background color set in the theme",
88
+ initial_value: null,
36
89
  },
90
+ ],
91
+ };
92
+
93
+ const localizations = {
94
+ fields: [
37
95
  {
38
- key: "magic_background",
39
- label: "Enable Magic Background",
40
- initial_value: false,
41
- type: "switch",
42
- label_tooltip:
43
- "Enable if you want to have adaptive background gradient based on audio background image.",
96
+ type: "text_input",
97
+ label: "Playback Speed Modal Title",
98
+ key: "playback_speed_title",
99
+ initial_value: "Playback Speed Modal Title",
44
100
  },
45
101
  {
46
- key: "audio_player_background_image_default_color",
47
- label: "Audio Player Background Image Default Color",
48
- initial_value: "",
49
102
  type: "text_input",
50
- label_tooltip:
51
- "Set the default color for the audio player background image if not image or set of gradient colors are not provided.",
103
+ label: "Sleep Timer Modal Title",
104
+ key: "playback_sleep_title",
105
+ initial_value: "Sleep Timer Modal Title",
106
+ },
107
+ {
108
+ type: "text_input",
109
+ label: "Sleep timer countdown label",
110
+ key: "playback_sleep_countdown_label",
111
+ initial_value: "Sleep Timer",
112
+ },
113
+ {
114
+ type: "text_input",
115
+ label: "Sleep timer off label",
116
+ key: "playback_sleep_off_label",
117
+ initial_value: "Sleep timer off",
52
118
  },
53
- ],
54
- };
55
-
56
- const styles = {
57
- fields: [],
58
- };
59
-
60
- const localizations = {
61
- fields: [],
62
- };
63
119
 
64
- if (getDevice(platform) === "mobile") {
65
- localizations.fields.push(
120
+ {
121
+ type: "text_input",
122
+ label: "Skip intro button",
123
+ key: "skip_button_localization_text_skip_intro",
124
+ initial_value: "Skip Intro",
125
+ },
66
126
  {
67
127
  type: "text_input",
68
128
  label: "Locked message",
@@ -74,14 +134,407 @@ function getPlayerConfiguration({ platform }) {
74
134
  label: "Unlock message",
75
135
  key: "message_unlock",
76
136
  initial_value: "Tap again to unlock screen",
77
- }
137
+ },
138
+ {
139
+ key: "accessibility_play_label",
140
+ label: "Accessibility play label",
141
+ initial_value: "Play button",
142
+ label_tooltip: "Label for play button accessibility",
143
+ type: "text_input",
144
+ },
145
+ {
146
+ key: "accessibility_play_hint",
147
+ label: "Accessibility play hint",
148
+ initial_value: "Press to play content",
149
+ label_tooltip: "Hint for play button accessibility",
150
+ type: "text_input",
151
+ },
152
+ {
153
+ key: "accessibility_pause_label",
154
+ label: "Accessibility pause label",
155
+ initial_value: "Pause button",
156
+ label_tooltip: "Label for pause button accessibility",
157
+ type: "text_input",
158
+ },
159
+ {
160
+ key: "accessibility_pause_hint",
161
+ label: "Accessibility pause hint",
162
+ initial_value: "Press to pause content",
163
+ label_tooltip: "Hint for pause button accessibility",
164
+ type: "text_input",
165
+ },
166
+ {
167
+ key: "accessibility_down_label",
168
+ label: "Accessibility down label",
169
+ initial_value: "Minimize button",
170
+ label_tooltip: "Label for minimize button accessibility",
171
+ type: "text_input",
172
+ },
173
+ {
174
+ key: "accessibility_down_hint",
175
+ label: "Accessibility down hint",
176
+ initial_value: "Press to minimize player",
177
+ label_tooltip: "Hint for minimize button accessibility",
178
+ type: "text_input",
179
+ },
180
+ {
181
+ key: "accessibility_maximize_label",
182
+ label: "Accessibility maximize label",
183
+ initial_value: "Maximize button",
184
+ label_tooltip: "Label for maximize button accessibility",
185
+ type: "text_input",
186
+ },
187
+ {
188
+ key: "accessibility_maximize_hint",
189
+ label: "Accessibility maximize hint",
190
+ initial_value: "Press to maximize player",
191
+ label_tooltip: "Hint for maximize button accessibility",
192
+ type: "text_input",
193
+ },
194
+ {
195
+ key: "accessibility_close_label",
196
+ label: "Accessibility close label",
197
+ initial_value: "Close button",
198
+ label_tooltip: "Label for close button accessibility",
199
+ type: "text_input",
200
+ },
201
+ {
202
+ key: "accessibility_close_hint",
203
+ label: "Accessibility close hint",
204
+ initial_value: "Press to close player",
205
+ label_tooltip: "Hint for close button accessibility",
206
+ type: "text_input",
207
+ },
208
+ {
209
+ key: "accessibility_forward_label",
210
+ label: "Accessibility forward label",
211
+ initial_value: "Forward button",
212
+ label_tooltip: "Label for forward button accessibility",
213
+ type: "text_input",
214
+ },
215
+ {
216
+ key: "accessibility_forward_hint",
217
+ label: "Accessibility forward hint",
218
+ initial_value: "Press to forward content",
219
+ label_tooltip: "Hint for forward button accessibility",
220
+ type: "text_input",
221
+ },
222
+ {
223
+ key: "accessibility_rewind_label",
224
+ label: "Accessibility rewind label",
225
+ initial_value: "Rewind button",
226
+ label_tooltip: "Label for rewind button accessibility",
227
+ type: "text_input",
228
+ },
229
+ {
230
+ key: "accessibility_rewind_hint",
231
+ label: "Accessibility rewind hint",
232
+ initial_value: "Press to rewind content",
233
+ label_tooltip: "Hint for rewind button accessibility",
234
+ type: "text_input",
235
+ },
236
+ {
237
+ key: "accessibility_close_mini_label",
238
+ label: "Accessibility docked close button label",
239
+ initial_value: "Close mini player",
240
+ label_tooltip: "Label for docked close button accessibility",
241
+ type: "text_input",
242
+ },
243
+ {
244
+ key: "accessibility_close_mini_hint",
245
+ label: "Accessibility docked close button hint",
246
+ initial_value: "Press to close mini player",
247
+ label_tooltip: "Hint for docked close button accessibility",
248
+ type: "text_input",
249
+ },
250
+ {
251
+ key: "accessibility_pause_mini_label",
252
+ label: "Accessibility docked pause button label",
253
+ initial_value: "Pause mini player",
254
+ label_tooltip: "Label for docked pause button accessibility",
255
+ type: "text_input",
256
+ },
257
+ {
258
+ key: "accessibility_pause_mini_hint",
259
+ label: "Accessibility docked pause button hint",
260
+ initial_value: "Press to pause mini player",
261
+ label_tooltip: "Hint for docked pause button accessibility",
262
+ type: "text_input",
263
+ },
264
+ {
265
+ key: "accessibility_play_mini_label",
266
+ label: "Accessibility docked play button label",
267
+ initial_value: "Play mini player",
268
+ label_tooltip: "Label for docked play button accessibility",
269
+ type: "text_input",
270
+ },
271
+ {
272
+ key: "accessibility_play_mini_hint",
273
+ label: "Accessibility docked play button hint",
274
+ initial_value: "Press to play mini player",
275
+ label_tooltip: "Hint for docked play button accessibility",
276
+ type: "text_input",
277
+ },
278
+ {
279
+ key: "accessibility_subtitle_label",
280
+ label: "Accessibility subtitles label",
281
+ initial_value: "Subtitles button",
282
+ label_tooltip: "Label for subtitles button accessibility",
283
+ type: "text_input",
284
+ },
285
+ {
286
+ key: "accessibility_subtitle_hint",
287
+ label: "Accessibility subtitles hint",
288
+ initial_value: "Press to open subtitles menu",
289
+ label_tooltip: "Hint for subtitles button accessibility",
290
+ type: "text_input",
291
+ },
292
+ {
293
+ key: "accessibility_back_label",
294
+ label: "Accessibility back label",
295
+ initial_value: "Back button",
296
+ label_tooltip: "Label for back button accessibility",
297
+ type: "text_input",
298
+ },
299
+ {
300
+ key: "accessibility_back_hint",
301
+ label: "Accessibility back hint",
302
+ initial_value: "Press to go back",
303
+ label_tooltip: "Hint for back button accessibility",
304
+ type: "text_input",
305
+ },
306
+ {
307
+ key: "accessibility_fullscreen_label",
308
+ label: "Accessibility fullscreen label",
309
+ initial_value: "Fullscreen button",
310
+ label_tooltip: "Label for fullscreen button accessibility",
311
+ type: "text_input",
312
+ },
313
+ {
314
+ key: "accessibility_fullscreen_hint",
315
+ label: "Accessibility fullscreen hint",
316
+ initial_value: "Press to toggle fullscreen mode",
317
+ label_tooltip: "Hint for fullscreen button accessibility",
318
+ type: "text_input",
319
+ },
320
+ ],
321
+ };
322
+
323
+ if (isTV(platform)) {
324
+ styles.fields.push(
325
+ fieldsGroup("Always Show Scrub Bar & Timestamp", "", [
326
+ {
327
+ key: "always_show_scrub_bar_and_timestamp",
328
+ label: "Always Show Scrub Bar & Timestamp",
329
+ initial_value: false,
330
+ type: "switch",
331
+ label_tooltip:
332
+ "When enabled, progress bar will always appear while playing in full screen. otherwise, progress bar will appear only when tapping and revealing all controllers",
333
+ },
334
+ {
335
+ section: "Default Timestamp Type",
336
+ key: "default_timestamp_type",
337
+ label: "Default Timestamp Type",
338
+ type: "select",
339
+ initial_value: "remaining_time",
340
+ label_tooltip:
341
+ "When clicking on the timestamp - users will be able to switch between both modes. this configuration only set the default mode when entering the player.",
342
+ options: [
343
+ {
344
+ text: "Remaining time",
345
+ value: "remaining_time",
346
+ },
347
+ {
348
+ text: "Complete Duration",
349
+ value: "complete_duration",
350
+ },
351
+ ],
352
+ },
353
+ ]),
354
+ fieldsGroup(
355
+ "Skip Button",
356
+ "This section allows you to configure the skip button styles for tv",
357
+ [
358
+ {
359
+ type: "switch",
360
+ key: "skip_button_enabled",
361
+ label_tooltip: "Enables Skip button on the player.",
362
+ label: "Enable",
363
+ initial_value: true,
364
+ },
365
+ {
366
+ type: "switch",
367
+ key: "skip_button_persistent",
368
+ label_tooltip:
369
+ "Show skip button always if enabled, otherwise show only when the player controls are on the screen.",
370
+ label: "Persistent Button Toggle",
371
+ initial_value: true,
372
+ },
373
+ {
374
+ type: "color_picker_rgba",
375
+ label_tooltip: "",
376
+ label: "Border Color",
377
+ key: "skip_button_style_button_border_color",
378
+ initial_value: "rgba(239, 239, 239, 0.5)",
379
+ },
380
+ {
381
+ type: "color_picker_rgba",
382
+ label_tooltip: "",
383
+ label: "Border Color Focused",
384
+ key: "skip_button_style_button_focused_border_color",
385
+ initial_value: "rgba(239, 239, 239, 1)",
386
+ },
387
+ {
388
+ type: "number_input",
389
+ label_tooltip: "",
390
+ label: "Border Width",
391
+ key: "skip_button_style_button_border_width",
392
+ initial_value: 1.5,
393
+ },
394
+ {
395
+ type: "number_input",
396
+ label_tooltip: "",
397
+ label: "Corner Radius",
398
+ key: "skip_button_style_button_border_radius",
399
+ initial_value: 10,
400
+ },
401
+ {
402
+ type: "color_picker_rgba",
403
+ label_tooltip: "",
404
+ label: "Background Color",
405
+ key: "skip_button_style_button_background_color",
406
+ initial_value: "rgba(0, 0, 0, 0.3)",
407
+ },
408
+ {
409
+ type: "color_picker_rgba",
410
+ label_tooltip: "",
411
+ label: "Background Color Focused",
412
+ key: "skip_button_style_button_focused_background_color",
413
+ initial_value: "rgba(0, 0, 0, 0)",
414
+ },
415
+ {
416
+ type: "color_picker_rgba",
417
+ label_tooltip: "",
418
+ label: "Font Color",
419
+ key: "skip_button_style_text_color",
420
+ initial_value: "rgba(255, 255, 255, 0.5)",
421
+ },
422
+ {
423
+ type: "color_picker_rgba",
424
+ label_tooltip: "",
425
+ label: "Font Color Focused",
426
+ key: "skip_button_style_text_focused_color",
427
+ initial_value: "rgba(255, 255, 255, 1)",
428
+ },
429
+ {
430
+ type: "lg_tv_font_selector",
431
+ label_tooltip: "",
432
+ label: "LG Font Family",
433
+ key: "skip_button_style_text_lg_font_family",
434
+ initial_value: "Ubuntu-Bold",
435
+ },
436
+ {
437
+ type: "number_input",
438
+ label_tooltip: "",
439
+ label: "LG Font Size",
440
+ key: "skip_button_style_text_lg_font_size",
441
+ initial_value: 24,
442
+ },
443
+ {
444
+ type: "samsung_font_selector",
445
+ label_tooltip: "",
446
+ label: "Samsung Font Family",
447
+ key: "skip_button_style_text_samsung_font_family",
448
+ initial_value: "Ubuntu-Bold",
449
+ },
450
+ {
451
+ type: "number_input",
452
+ label_tooltip: "",
453
+ label: "Samsung Font Size",
454
+ key: "skip_button_style_text_samsung_font_size",
455
+ initial_value: 24,
456
+ },
457
+ {
458
+ type: "vizio_font_selector",
459
+ label_tooltip: "",
460
+ label: "Samsung Font Family",
461
+ key: "skip_button_style_text_vizio_font_family",
462
+ initial_value: "Ubuntu-Bold",
463
+ },
464
+ {
465
+ type: "number_input",
466
+ label_tooltip: "",
467
+ label: "Vizio Font Size",
468
+ key: "skip_button_style_text_vizio_font_size",
469
+ initial_value: 24,
470
+ },
471
+ {
472
+ type: "android_font_selector",
473
+ label_tooltip: "",
474
+ label: "Android Font Family",
475
+ key: "skip_button_style_text_android_font_family",
476
+ initial_value: "Ubuntu-Bold",
477
+ },
478
+ {
479
+ type: "number_input",
480
+ label_tooltip: "",
481
+ label: "Android Font Size",
482
+ key: "skip_button_style_text_android_font_size",
483
+ initial_value: 24,
484
+ },
485
+ {
486
+ type: "select",
487
+ options: [
488
+ {
489
+ text: "None",
490
+ value: "none",
491
+ },
492
+ {
493
+ text: "Uppercase",
494
+ value: "uppercase",
495
+ },
496
+ {
497
+ text: "Lowercase",
498
+ value: "lowercase",
499
+ },
500
+ {
501
+ text: "Capitalize",
502
+ value: "capitalize",
503
+ },
504
+ ],
505
+ label: "Text Transform",
506
+ key: "skip_button_style_text_text_transform",
507
+ initial_value: "none",
508
+ },
509
+ ]
510
+ )
78
511
  );
512
+ }
79
513
 
514
+ if (isMobile(platform)) {
80
515
  general.fields.push(
516
+ {
517
+ section: "Default Timestamp Type",
518
+ key: "default_timestamp_type",
519
+ label: "Default Timestamp Type",
520
+ type: "select",
521
+ initial_value: "total_duration",
522
+ label_tooltip:
523
+ "When clicking on the timestamp - users will be able to switch between both modes. this configuration only set the default mode when entering the player.",
524
+ options: [
525
+ {
526
+ text: "Remaining time",
527
+ value: "remaining_time",
528
+ },
529
+ {
530
+ text: "Total duration",
531
+ value: "total_duration",
532
+ },
533
+ ],
534
+ },
81
535
  {
82
536
  key: "seek_duration",
83
537
  label: "Seek duration",
84
- // @ts-ignore wrong derived value
85
538
  initial_value: 10,
86
539
  type: "number_input",
87
540
  label_tooltip: "Duration of fast forward / rewind",
@@ -101,31 +554,58 @@ function getPlayerConfiguration({ platform }) {
101
554
  label_tooltip:
102
555
  "type here the identifiers of the action buttons you want to show on the player, separated by commas. Only 2 action buttons may be added at the same time",
103
556
  type: "text_input",
104
- }
105
- );
106
-
107
- if (platform.includes("ios")) {
108
- general.fields.push({
557
+ },
558
+ {
559
+ key: "liveSeekingEnabled",
560
+ label: "Live Seeking Enabled",
561
+ initial_value: false,
562
+ type: "switch",
563
+ label_tooltip: "Enable Live Seek",
564
+ },
565
+ {
566
+ key: "minimumAllowedSeekableDurationInSeconds",
567
+ label: "Minimum allowed seekable duration in seconds",
568
+ initial_value: 300,
569
+ type: "number_input",
570
+ label_tooltip:
571
+ "If duration less that this value, player will disable 'liveSeekingEnabled' value",
572
+ },
573
+ {
109
574
  key: "pictureInPictureEnabled",
110
- label: "Picture and picture enabled",
575
+ label: "Picture in picture enabled",
111
576
  initial_value: false,
112
577
  type: "switch",
113
578
  label_tooltip:
114
- "Enable this option to have a floating video player when the app is in the background (experimental)",
115
- });
116
- }
579
+ "Enable this option to have a floating video player when the app is in the background.",
580
+ }
581
+ );
117
582
 
118
- if (platform.includes("android") || platform.includes("amazon")) {
583
+ if (
584
+ platform.includes("android") ||
585
+ platform.includes("amazon") ||
586
+ platform.includes("ios") ||
587
+ platform.includes("tvos")
588
+ ) {
119
589
  general.fields.push({
120
590
  key: "user_agent",
121
591
  label: "User agent",
122
- // @ts-ignore wrong derived value
123
592
  initial_value: "",
124
593
  type: "text_input",
125
594
  label_tooltip: "Override default user agent string",
126
595
  });
127
596
  }
128
597
 
598
+ if (platform === "android_for_quickbrick") {
599
+ general.fields.push({
600
+ key: "stop_playback_on_task_removal",
601
+ label: "Stop background playback on close",
602
+ initial_value: false,
603
+ type: "switch",
604
+ label_tooltip:
605
+ "Stop background playback if user swipes app away from 'Recent' screen",
606
+ });
607
+ }
608
+
129
609
  styles.fields.push(
130
610
  fieldsGroup(
131
611
  "Player Styles",
@@ -139,6 +619,12 @@ function getPlayerConfiguration({ platform }) {
139
619
  label_tooltip:
140
620
  "Select the background overlay color for the player. The alpha channel is ignored, and a gradient is created from the provided RGB colors",
141
621
  },
622
+ {
623
+ type: "text_input",
624
+ label: "Background image key",
625
+ key: "player_preview_image_key",
626
+ initial_value: "",
627
+ },
142
628
  {
143
629
  key: "use_video_modal",
144
630
  label: "Use video modal",
@@ -192,6 +678,21 @@ function getPlayerConfiguration({ platform }) {
192
678
  },
193
679
  ],
194
680
  },
681
+ {
682
+ type: "switch",
683
+ label: "Disable Mini Player (in Inline Mode Video Modal)",
684
+ label_tooltip:
685
+ "Select whether you want to disable the mini player in the video player when in inline mode",
686
+ key: "disable_mini_player_when_inline",
687
+ initial_value: false,
688
+ rules: "conditional",
689
+ conditional_fields: [
690
+ {
691
+ key: "styles/use_video_modal",
692
+ condition_value: true,
693
+ },
694
+ ],
695
+ },
195
696
  {
196
697
  type: "switch",
197
698
  label: "Display live badge",
@@ -521,6 +1022,67 @@ function getPlayerConfiguration({ platform }) {
521
1022
  },
522
1023
  ],
523
1024
  },
1025
+ {
1026
+ key: "android_pip_action_icons",
1027
+ type: "uploader",
1028
+ label: "Android PiP Action items",
1029
+ label_tooltip:
1030
+ "Upload Assets Folder Zip File, expected format: pip_play, pip_pause, pip_seek_forward, pip_seek_backward",
1031
+ },
1032
+ {
1033
+ key: "speed_0_8",
1034
+ label: "Playback Speed 0.8x",
1035
+ type: "uploader",
1036
+ label_tooltip: "Playback Speed 0.8x",
1037
+ initial_value:
1038
+ "data:image/png;base64,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",
1039
+ },
1040
+ {
1041
+ key: "speed_1",
1042
+ label: "Playback Speed 1x",
1043
+ type: "uploader",
1044
+ label_tooltip: "Playback Speed 1x",
1045
+ initial_value:
1046
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI4SURBVHgB7dzhcRJBGIDhT8cCkg6SDmIHsQNLiBUYKwAqUCtIC5ZACVqBdIAdxN3JMSLecXcE8Tt5npkdJlxyf97ZcLcLRAAAAAAAAAAAAAAAAAAAAAAAAADAMb2IiViv17fl4aGMq45fub68vFwFv3kVyZWwF+VhVsZ9MFrqwANmLT1SBm5mbQ37NniWl5FMifu+PHwPcY8izQwuYa/iadbeBkeTaQbfxf64P8r4GoyS7l90h89lXJfxLRgl+23Sqox35f52WX8o/8aDcTLP4EUZrzdxOUzGGbws40MJ6/X2CDIFrhdRNeyn4GjSBBb275jKVTQHEvg/d/aB69Lo+sljGR/jADvnmEUiZx242a2qr/0XzVP35bmHkeeY7Zxj3pw3hXOfwTctz90NjdzEnbccuo0kzj1w1712b+Q9cfed9+TOOnCzSrboONwZuSfuopz3SyRx9hdZJcY8RkQeELfr2D/hNimGR55a3Cr9m+5OpcZpdqvabnNq5HpBdtPx5ynjVmbwlp6ZPLm4lcA7eiLvSh23ErjFwMjp41YCd3t85vEUBG7Rc7W8Mc+27txG4B0D426kjyzwlp64y47nU0cWuDFgEeNNdF94pY0scAxfoeq5uk4Z2Yb/yOXHqUW24X/A2vKAyGk+OGfDv13vIsaBy5onZ8P/T4NXqPZEtuGfwdaG/yp+vfF+HiNsRV5tnSPNhv9kvoSlaj75f9F2zBewAAAAAAAAAAAAAAAAAAAAAAAAwHT8BNhH51wNSx95AAAAAElFTkSuQmCC",
1047
+ },
1048
+ {
1049
+ key: "speed_1_2",
1050
+ label: "Playback Speed 1.2x",
1051
+ type: "uploader",
1052
+ label_tooltip: "Playback Speed 1.2x",
1053
+ initial_value:
1054
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUjSURBVHgB7d3bUeNIFAbgA7Xv2EUCmgiWjWBNBAwRYCKYdQQrIliIYEUEw0awymDIYDQBUFC8g+eccWsulPomteTu1v9VdZlSGyP0W1KrWxciAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgPgc0Mw8Pj4u+KUt4mm5XDaUqVED5oX5gV/ea6o3vGDvaQI8Hyt+ueAir4XmbTIvNZebnAIfJWBeoCf88g/tFqjOKS/ImkbE8/FezUdBfu5o9wVsKHGHFJBs/rjIAv1E5nBHpebjX/7xI/mHK+SL8Zk/429K3G8UiNoMykItaI/UPvZ/Lic0XMmfR7wmX1GiBq/BP621slAL2j9Z60KE25KQ/6JEDdoHD9jHieD7YJ6fNe22IjpPXG5p16Bq1DT5MpyReZciv/eO5/eJEtN7E63C/Wh5myyQBU1Hu888ODi42263lx0h1Vyu1ZdDvqxd8yvTZC0uKTFDNtGm4GQhbrjc0ERUy73QVNeLxeLctAZyXcUv56R3QQkK2or+9oGHhxXtNmfXNK2Voe6SHKhdxq2muuAvUUGJCRlww+X06Ojock/7qj810+89j2fvDHUFJSZUwLIp/mPsjgsL3S7jC/mZpHdtKkOPg2VhbPYcbEuOVbs2rw35mbJROLohAdeqYRKFgF+ywlCX3GFS7010xiMwZ5rpzVSDIyEFb0WnTLWS1111fHRQU4IQ8K+0vWCvr69J9kcjYEWNHK001c5jxNIvz2XLpfdolIyEtZ/x/Pw8qIMFAdP3ExNKTXVDjl2UqruzHZgoaDdQ4RWyGuZct5/x8vJSqRGyXmYfMC88WUNMvW6nHh03q45pziG/Cdf2uU5mHbAKtzK8xfesjloz3RqyIVzRu/U+24Adwr3y7U+XfgFujOn6srUhW8K9GnJIOsuAHcMtqYfj4+O1T8gO4ZY0wOwCdgj3duhCdQ157HDFrAJ2DHdNATiELCcmrjX1QcIVswl4ynBblpB1540FC1fMImB1nFsZ3hI83JYl5LeChiuyD1jt70yt4dHCbTmGHDxckXXAKtzS8JbRw23xYMXW8hZbfb+/S5mKKVxLa7nl3a3pItiVDaGpoTs5NVf6YeW8qjuP300t3FbwKymiDLgrIJ4m3XXWfuGEwpX/p6slHTTk6AJWIzJlR5UsDDnR/tTwu7ZwGy6Vuo6qF9dTg1w6MR4eHireN3cNBwYLOcY1+MxQt5Khs661WF0/VJJZQbtrqPpquLyzvcm1h0pa1xwyjRlyjI0s29jnief0Sfl2P/r2XfuKMWDbeczRnvimdi9rTbX2ONch5N5f3hgDrgx1N8u4r/BbaaZbOzEsIRfUU3QBq0aMXEvUvKmS1m/s1+nWHdOce6gMIffeao3dyJJj10ZTp5v+beCcN0s17farsk9uHFqvFenPqAjFuPVQ813wjx/UJO+TBiRk/gz5Oxfq7w0a8AcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANif7B8Q/dOlJHI7iEJNvlcl+8tCsg5Y3R/Ldm1QuUz46aI2ud9lx+XCr1HubhOLLNdgh6eQdjn3uZNPKnIN+DP5XzQtl6ha77+Rmuw20eoOOgX5K4bcfSdWOe6Dh9yMJYobuYSUY8BDnj2Y1XMLRY4BD7lJS3LPJrTJMeAht1lK7tmENmhF/4BWdEI25C/L3qwsA1YdFj6BXcX0LOSQcu+LLvnF1g258b2XVUrmMppUcvmdfhznNlz+43Kd+2jSV0z9PFgMpokeAAAAAElFTkSuQmCC",
1055
+ },
1056
+ {
1057
+ key: "speed_1_5",
1058
+ label: "Playback Speed 1.5x",
1059
+ type: "uploader",
1060
+ label_tooltip: "Playback Speed 1.5x",
1061
+ initial_value:
1062
+ "data:image/png;base64,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",
1063
+ },
1064
+ {
1065
+ key: "speed_2",
1066
+ label: "Playback Speed 2x",
1067
+ type: "uploader",
1068
+ label_tooltip: "Playback Speed 2x",
1069
+ initial_value:
1070
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQnSURBVHgB7d2PUdRAFMfxh2MBUIGxArECjwqECjwqUCowV4FYgdABVCAdSAekg7ME35pFgnOb3ZDAvmy+n5lMGJLL3dzvkuyfZCMCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2LMnM7Hdbvd11p2ag4ODRtDLdMAa6kpnH3U61qkKrHbrp0sN/EbwiMmAfbBfdVrJMI1OZxr0leAvcwFruC7YWsY515DPBLYC1nC/6eyLTONCQz6VhXslRvg9d6pwnbX/wSyaiT1Yg6h0dhdZzZ1Xr6U9zzqHOn2QtgDW52jJhS8rAf/Q2Tqw2JWQT0JVIv/j+CnhUvaNvvZIFip7wL5+uw0sbqTdA5vINiqd/ZK2fryLbuLgtyyQhXPwYc+yTUpjhl/ne88qK1koCwGvQgs0uAtJ17duJQtlIeDQYfVWBojs6fuyUK8lP1c63hXmlOfMRZ5/newBT1WF0YJW37m8kYUy09Axgb6ABx3uSzKb7sI+vqrlqknVjsXJ9WC/HRlTpZpiG1MqZQ92zZxVYNmlJPBNpdv2z6c1cfrXjdrG1Ga/B+sX+Vln54HFV7onnUh8GytpW8O6BnVWBFrjTnJ3Xc56D/YFq1C47hCZ2mW46/y99qGlfI5QU+uhZDbbgDtt0CFJrWBeqBAWDTnSjn4jmc0y4E64oQYMF+65JPJVtU1gcTDkSLgbC71YszsHJ/QeuWuz1vK0bdfSFth2eXROTgi3FgNmFXBCuLf6xb6Xce9RSyTkuYTrzOmyWVdg6Tssu/Po0RT1z0jIjYR/YKbCdWYR8EuG23nPWsIh72IuXMd8wDnC7bx3LWkhmwzXsX7he7ZwO5+hlv6QzYbrmK0mWQjXezNyeVZW72wwEW6ktNxl9hpsc3uwfqmfZF7hOsnNmi/NVMA+3AsJh9tI24CfM9ybwP9Nhmzpzob7cEMaSbiEdoLPEWvEcH3Lg5s1c7Fy4Xss3PueoUaeKKVdeEgL1ZBmzZwsXPi+kv5eoUnoF74X+Rx9N77trArNIWQLh+hKMtOgjmVguI7/f9/h+lgyK+miuzGqwP+jjRiRkOnwN2JXh39yC1VPyFeSGQHLvwKYu3bLBd1IOwxELQP49U//28atZGahkFXJC9wcNvA+JwAAAAAAAAAAAAAAAAAAAAAAAIxWxIjvffytMW5M6e4ziO+fOTxkRNpZKjrgyGDh92oNeSOFKvbuQj9Ef8qQwrVft0hF7sEa2FpnQwdDyT78/nMoNeA7GT40RKMBv5XCFHeI9oO6VDJc5V9blBLPwWPGxcg+psbUSgx4X55uzGtNKjHgMcMcPvfItS+uxIDHDHySfdCUqVGKfkApekZSn3jWVWRrVpEB+waLIYFtSh1mqfS26FriD9U4G/KUtLlZSm9SrdM7eajnNjpd63Reem/SH2FDq35f8ateAAAAAElFTkSuQmCC",
1071
+ },
1072
+ {
1073
+ key: "sleep_timer",
1074
+ label: "Sleep Timer Default",
1075
+ type: "uploader",
1076
+ label_tooltip: "Sleep Timer Default",
1077
+ initial_value: null,
1078
+ },
1079
+ {
1080
+ key: "sleep_timer_active",
1081
+ label: "Sleep Timer Active",
1082
+ type: "uploader",
1083
+ label_tooltip: "Sleep Timer Active",
1084
+ initial_value: null,
1085
+ },
524
1086
  ]
525
1087
  ),
526
1088
  fieldsGroup(
@@ -920,6 +1482,15 @@ function getPlayerConfiguration({ platform }) {
920
1482
  },
921
1483
  ]
922
1484
  ),
1485
+ // Captions Menu for Mobile
1486
+ fieldsGroup("Captions - Overlay", "Captions overlay styles", [
1487
+ {
1488
+ type: "switch",
1489
+ label: "Disable captions overlay",
1490
+ key: "disable_captions",
1491
+ initial_value: false,
1492
+ },
1493
+ ]),
923
1494
  fieldsGroup(
924
1495
  "Player Content Subtitle",
925
1496
  "this section enables you to configure the styles of the content meta data displayed on top of the player",
@@ -1300,7 +1871,7 @@ function getPlayerConfiguration({ platform }) {
1300
1871
  key: "scrub_color",
1301
1872
  label: "Scrub font color",
1302
1873
  type: "color_picker_rgba",
1303
- initial_value: "rgba(255, 255, 255, 1)",
1874
+ initial_value: "rgba(239, 239, 239, 1)", // #EFEFEF
1304
1875
  label_tooltip:
1305
1876
  "Select the font color for the player's scrub / progress bar",
1306
1877
  },
@@ -1309,7 +1880,7 @@ function getPlayerConfiguration({ platform }) {
1309
1880
  key: "scrub_color_duration_inline",
1310
1881
  label: "Scrub total duration font color (inline player)",
1311
1882
  type: "color_picker_rgba",
1312
- initial_value: "rgba(255, 255, 255, 0.65)",
1883
+ initial_value: "rgba(239, 239, 239, 0.65)", // #EFEFEF
1313
1884
  label_tooltip:
1314
1885
  "Select the font color for the player's progress bar total duration label in inline mode",
1315
1886
  conditional_fields: [
@@ -1324,7 +1895,7 @@ function getPlayerConfiguration({ platform }) {
1324
1895
  key: "scrub_fontsize_android",
1325
1896
  label: "Android scrub font size",
1326
1897
  type: "number_input",
1327
- initial_value: 13,
1898
+ initial_value: 12,
1328
1899
  label_tooltip:
1329
1900
  "Select the font size for the android player's scrub / progress bar",
1330
1901
  },
@@ -1333,7 +1904,7 @@ function getPlayerConfiguration({ platform }) {
1333
1904
  key: "scrub_fontsize_ios",
1334
1905
  label: "iOS scrub font size",
1335
1906
  type: "number_input",
1336
- initial_value: 13,
1907
+ initial_value: 12,
1337
1908
  label_tooltip:
1338
1909
  "Select the font size for the iOS player's scrub / progress bar",
1339
1910
  },
@@ -1342,7 +1913,7 @@ function getPlayerConfiguration({ platform }) {
1342
1913
  key: "scrub_lineheight_android",
1343
1914
  label: "Android scrub line height",
1344
1915
  type: "number_input",
1345
- initial_value: 16,
1916
+ initial_value: 20,
1346
1917
  label_tooltip:
1347
1918
  "Select the line height for the android player's scrub / progress bar",
1348
1919
  },
@@ -1351,7 +1922,7 @@ function getPlayerConfiguration({ platform }) {
1351
1922
  key: "scrub_lineheight_ios",
1352
1923
  label: "iOS scrub line height",
1353
1924
  type: "number_input",
1354
- initial_value: 16,
1925
+ initial_value: 20,
1355
1926
  label_tooltip:
1356
1927
  "Select the line height for the iOS player's scrub / progress bar",
1357
1928
  },
@@ -1360,7 +1931,7 @@ function getPlayerConfiguration({ platform }) {
1360
1931
  key: "scrub_letterspacing_android",
1361
1932
  label: "Android scrub letter spacing",
1362
1933
  type: "number_input",
1363
- initial_value: 0,
1934
+ initial_value: -0.4,
1364
1935
  label_tooltip:
1365
1936
  "Select the letter spacing for the android player's scrub / progress bar",
1366
1937
  },
@@ -1369,7 +1940,7 @@ function getPlayerConfiguration({ platform }) {
1369
1940
  key: "scrub_letterspacing_ios",
1370
1941
  label: "iOS scrub letter spacing",
1371
1942
  type: "number_input",
1372
- initial_value: 0,
1943
+ initial_value: -0.4,
1373
1944
  label_tooltip:
1374
1945
  "Select the letter spacing for the iOS player's scrub / progress bar",
1375
1946
  },
@@ -1448,7 +2019,7 @@ function getPlayerConfiguration({ platform }) {
1448
2019
  },
1449
2020
  {
1450
2021
  key: "lock_controls_when_player_opens",
1451
- label: "Lock controls when player opens",
2022
+ label: "Lock controls each time the player opens",
1452
2023
  initial_value: false,
1453
2024
  type: "switch",
1454
2025
  label_tooltip:
@@ -1648,18 +2219,50 @@ function getPlayerConfiguration({ platform }) {
1648
2219
  );
1649
2220
  }
1650
2221
 
1651
- // ---- Web Platforms fields ---- //
1652
-
1653
- // Temporary option to disable not-working track selector on JW streams
1654
- if (platform.includes("samsung")) {
1655
- styles.fields.push({
2222
+ compact([
2223
+ {
2224
+ key: "liveCatchUpEnabled",
2225
+ label: "Live Catch Up",
2226
+ initial_value: true,
1656
2227
  type: "switch",
1657
- label: "Disable captions overlay",
1658
- key: "disable_captions",
1659
- initial_value: false,
1660
- });
2228
+ label_tooltip:
2229
+ "Seek to current live edge position after resuming from pause",
2230
+ },
2231
+ mobileOnly(platform, {
2232
+ type: "number_input",
2233
+ label_tooltip:
2234
+ "Interval for updating live audio metadata, including the title and subtitle",
2235
+ label: "Live Audio player info update interval",
2236
+ key: "audio_live_player_update_interval",
2237
+ initial_value: 60,
2238
+ }),
2239
+ ]).forEach((field) => {
2240
+ general.fields.push(field);
2241
+ });
2242
+
2243
+ if (isMobile(platform)) {
2244
+ general.fields.push(
2245
+ fieldsGroup("Always Show Scrub Bar & Timestamp", "", [
2246
+ {
2247
+ key: "always_show_scrub_bar_and_timestamp",
2248
+ label: "Always Show Scrub Bar & Timestamp",
2249
+ initial_value: false,
2250
+ type: "switch",
2251
+ label_tooltip:
2252
+ "When enabled, progress bar will always appear while playing in full screen. otherwise, progress bar will appear only when tapping and revealing all controllers",
2253
+ },
2254
+ ]),
2255
+ fieldsGroup(
2256
+ "Audio Tracks",
2257
+ "This section allows you to configure default audio track behavior for videos with multiple audio tracks",
2258
+ audioTracksSettings
2259
+ ),
2260
+ fieldsGroup("Legacy configuration", "", audioPlayer)
2261
+ );
1661
2262
  }
1662
2263
 
2264
+ // ---- Web Platforms fields ---- //
2265
+
1663
2266
  if (
1664
2267
  platform.includes("lg") ||
1665
2268
  platform.includes("samsung") ||
@@ -1668,13 +2271,19 @@ function getPlayerConfiguration({ platform }) {
1668
2271
  platform.includes("vizio")
1669
2272
  ) {
1670
2273
  styles.fields.push(
1671
- // Captions Menu
2274
+ // Captions Menu for TV
1672
2275
  fieldsGroup("Captions - Overlay", "Captions overlay styles", [
2276
+ {
2277
+ type: "switch",
2278
+ label: "Disable captions overlay",
2279
+ key: "disable_captions",
2280
+ initial_value: false,
2281
+ },
1673
2282
  {
1674
2283
  type: "color_picker_rgba",
1675
2284
  label: "Video Overlay",
1676
2285
  key: "overlay_color",
1677
- initial_value: "rgba(0, 0, 0, 0.5)",
2286
+ initial_value: "rgba(17, 17, 17, 0.5)",
1678
2287
  },
1679
2288
  ]),
1680
2289
  // Captions Menu - Close
@@ -1683,7 +2292,7 @@ function getPlayerConfiguration({ platform }) {
1683
2292
  type: "color_picker_rgba",
1684
2293
  label: "Background Color",
1685
2294
  key: "close_background_color",
1686
- initial_value: "rgba(16, 16, 16, 1)",
2295
+ initial_value: "rgba(30, 30, 30, 1)",
1687
2296
  },
1688
2297
  {
1689
2298
  type: "color_picker_rgba",
@@ -1710,908 +2319,1292 @@ function getPlayerConfiguration({ platform }) {
1710
2319
  type: "color_picker_rgba",
1711
2320
  label: "Background Color",
1712
2321
  key: "menu_background_color",
1713
- initial_value: "rgba(16, 16, 16, 1)",
2322
+ initial_value: "rgba(30, 30, 30, 1)",
1714
2323
  },
1715
2324
  {
1716
2325
  type: "color_picker_rgba",
1717
2326
  label: "Top Gradient - Start",
1718
2327
  key: "menu_top_gradient_start_color",
1719
- initial_value: "rgba(16, 16, 16, 1)",
2328
+ initial_value: "rgba(30, 30, 30, 1)",
1720
2329
  },
1721
2330
  {
1722
2331
  type: "color_picker_rgba",
1723
2332
  label: "Top Gradient - End",
1724
2333
  key: "menu_top_gradient_end_color",
1725
- initial_value: "rgba(16, 16, 16, 0)",
2334
+ initial_value: "rgba(30, 30, 30, 0)",
1726
2335
  },
1727
2336
  {
1728
2337
  type: "color_picker_rgba",
1729
2338
  label: "Bottom Gradient - Start",
1730
2339
  key: "menu_bottom_gradient_start_color",
1731
- initial_value: "rgba(16, 16, 16, 1)",
2340
+ initial_value: "rgba(30, 30, 30, 1)",
1732
2341
  },
1733
2342
  {
1734
2343
  type: "color_picker_rgba",
1735
2344
  label: "Bottom Gradient - End",
1736
2345
  key: "menu_bottom_gradient_end_color",
1737
- initial_value: "rgba(16, 16, 16, 0)",
2346
+ initial_value: "rgba(30, 30, 30, 0)",
1738
2347
  },
1739
2348
  ]),
1740
2349
  // Captions Menu - Header Text Label
1741
2350
  fieldsGroup(
1742
- "Captions - Menu Header Text",
1743
- "Captions Menu Header Text Label Styles",
2351
+ "Captions - Menu Header Text",
2352
+ "Captions Menu Header Text Label Styles",
2353
+ [
2354
+ {
2355
+ type: "color_picker_rgba",
2356
+ label: "Font Color",
2357
+ key: "menu_header_font_color",
2358
+ initial_value: "rgba(239, 239, 239, 1)",
2359
+ },
2360
+ {
2361
+ type: "lg_font_selector",
2362
+ label: "LG Font Family",
2363
+ key: "menu_header_lg_font_family",
2364
+ initial_value: "Ubuntu-Bold",
2365
+ },
2366
+ {
2367
+ type: "number_input",
2368
+ label: "LG Font Size",
2369
+ key: "menu_header_lg_font_size",
2370
+ initial_value: 30,
2371
+ },
2372
+ {
2373
+ type: "number_input",
2374
+ label: "LG Line Height",
2375
+ key: "menu_header_lg_line_height",
2376
+ initial_value: 60,
2377
+ },
2378
+ {
2379
+ type: "number_input",
2380
+ label: "LG Letter Spacing",
2381
+ key: "menu_header_lg_letter_spacing",
2382
+ initial_value: 0,
2383
+ },
2384
+ {
2385
+ type: "samsung_font_selector",
2386
+ label: "Samsung Font Family",
2387
+ key: "menu_header_samsung_font_family",
2388
+ initial_value: "Ubuntu-Bold",
2389
+ },
2390
+ {
2391
+ type: "number_input",
2392
+ label: "Samsung Font Size",
2393
+ key: "menu_header_samsung_font_size",
2394
+ initial_value: 30,
2395
+ },
2396
+ {
2397
+ type: "number_input",
2398
+ label: "Samsung Line Height",
2399
+ key: "menu_header_samsung_line_height",
2400
+ initial_value: 60,
2401
+ },
2402
+ {
2403
+ type: "number_input",
2404
+ label: "Samsung Letter Spacing",
2405
+ key: "menu_header_samsung_letter_spacing",
2406
+ initial_value: 0,
2407
+ },
2408
+ {
2409
+ type: "vizio_font_selector",
2410
+ label: "Vizio Font Family",
2411
+ key: "menu_header_vizio_font_family",
2412
+ initial_value: "Ubuntu-Bold",
2413
+ },
2414
+ {
2415
+ type: "number_input",
2416
+ label: "Vizio Font Size",
2417
+ key: "menu_header_vizio_font_size",
2418
+ initial_value: 30,
2419
+ },
2420
+ {
2421
+ type: "number_input",
2422
+ label: "Vizio Line Height",
2423
+ key: "menu_header_vizio_line_height",
2424
+ initial_value: 60,
2425
+ },
2426
+ {
2427
+ type: "number_input",
2428
+ label: "Vizio Letter Spacing",
2429
+ key: "menu_header_vizio_letter_spacing",
2430
+ initial_value: 0,
2431
+ },
2432
+ ]
2433
+ ),
2434
+ // Captions Menu - Item Text Label
2435
+ fieldsGroup(
2436
+ "Captions - Item Text",
2437
+ "Captions Menu Item Text Label Styles",
1744
2438
  [
1745
2439
  {
1746
2440
  type: "color_picker_rgba",
1747
- label: "Font Color",
1748
- key: "menu_header_font_color",
2441
+ label: "Font Color - Default",
2442
+ key: "menu_item_default_font_color",
2443
+ initial_value: "rgba(239, 239, 239, 0.5)",
2444
+ },
2445
+ {
2446
+ type: "color_picker_rgba",
2447
+ label: "Font Color - Focused",
2448
+ key: "menu_item_focused_font_color",
2449
+ initial_value: "rgba(239, 239, 239, 1)",
2450
+ },
2451
+ {
2452
+ type: "color_picker_rgba",
2453
+ label: "Font Color - Selected",
2454
+ key: "menu_item_selected_font_color",
2455
+ initial_value: "rgba(239, 239, 239, 1)",
2456
+ },
2457
+ {
2458
+ type: "color_picker_rgba",
2459
+ label: "Font Color - Focused & Selected",
2460
+ key: "menu_item_select_focused_font_color",
1749
2461
  initial_value: "rgba(239, 239, 239, 1)",
1750
2462
  },
1751
2463
  {
1752
2464
  type: "lg_font_selector",
1753
2465
  label: "LG Font Family",
1754
- key: "menu_header_lg_font_family",
1755
- initial_value: "Museo-Bold",
2466
+ key: "menu_item_lg_font_family",
2467
+ initial_value: "Ubuntu-Medium",
1756
2468
  },
1757
2469
  {
1758
2470
  type: "number_input",
1759
2471
  label: "LG Font Size",
1760
- key: "menu_header_lg_font_size",
1761
- initial_value: 30,
2472
+ key: "menu_item_lg_font_size",
2473
+ initial_value: 25,
1762
2474
  },
1763
2475
  {
1764
2476
  type: "number_input",
1765
2477
  label: "LG Line Height",
1766
- key: "menu_header_lg_line_height",
1767
- initial_value: 60,
2478
+ key: "menu_item_lg_line_height",
2479
+ initial_value: 40,
1768
2480
  },
1769
2481
  {
1770
2482
  type: "number_input",
1771
2483
  label: "LG Letter Spacing",
1772
- key: "menu_header_lg_letter_spacing",
2484
+ key: "menu_item_lg_letter_spacing",
1773
2485
  initial_value: 0,
1774
2486
  },
1775
2487
  {
1776
2488
  type: "samsung_font_selector",
1777
2489
  label: "Samsung Font Family",
1778
- key: "menu_header_samsung_font_family",
1779
- initial_value: "SmsungOneUI-Bold",
2490
+ key: "menu_item_samsung_font_family",
2491
+ initial_value: "Ubuntu-Medium",
1780
2492
  },
1781
2493
  {
1782
2494
  type: "number_input",
1783
2495
  label: "Samsung Font Size",
1784
- key: "menu_header_samsung_font_size",
1785
- initial_value: 30,
2496
+ key: "menu_item_samsung_font_size",
2497
+ initial_value: 25,
1786
2498
  },
1787
2499
  {
1788
2500
  type: "number_input",
1789
2501
  label: "Samsung Line Height",
1790
- key: "menu_header_samsung_line_height",
1791
- initial_value: 60,
2502
+ key: "menu_item_samsung_line_height",
2503
+ initial_value: 40,
1792
2504
  },
1793
2505
  {
1794
2506
  type: "number_input",
1795
2507
  label: "Samsung Letter Spacing",
1796
- key: "menu_header_samsung_letter_spacing",
2508
+ key: "menu_item_samsung_letter_spacing",
1797
2509
  initial_value: 0,
1798
2510
  },
1799
2511
  {
1800
2512
  type: "vizio_font_selector",
1801
2513
  label: "Vizio Font Family",
1802
- key: "menu_header_vizio_font_family",
1803
- initial_value: "SmsungOneUI-Bold",
2514
+ key: "menu_item_vizio_font_family",
2515
+ initial_value: "Ubuntu-Medium",
1804
2516
  },
1805
2517
  {
1806
2518
  type: "number_input",
1807
2519
  label: "Vizio Font Size",
1808
- key: "menu_header_vizio_font_size",
1809
- initial_value: 30,
2520
+ key: "menu_item_vizio_font_size",
2521
+ initial_value: 25,
1810
2522
  },
1811
2523
  {
1812
2524
  type: "number_input",
1813
2525
  label: "Vizio Line Height",
1814
- key: "menu_header_vizio_line_height",
1815
- initial_value: 60,
2526
+ key: "menu_item_vizio_line_height",
2527
+ initial_value: 40,
1816
2528
  },
1817
2529
  {
1818
2530
  type: "number_input",
1819
2531
  label: "Vizio Letter Spacing",
1820
- key: "menu_header_vizio_letter_spacing",
2532
+ key: "menu_item_vizio_letter_spacing",
1821
2533
  initial_value: 0,
1822
2534
  },
1823
2535
  ]
1824
2536
  ),
1825
- // Captions Menu - Item Text Label
2537
+ // Captions Menu - Item Border
1826
2538
  fieldsGroup(
1827
- "Captions - Item Text",
1828
- "Captions Menu Item Text Label Styles",
2539
+ "Captions - Item Border",
2540
+ "Captions Menu Item Border Styles",
1829
2541
  [
1830
2542
  {
1831
2543
  type: "color_picker_rgba",
1832
- label: "Font Color - Default",
1833
- key: "menu_item_default_font_color",
1834
- initial_value: "rgba(239, 239, 239, 0.5)",
2544
+ label: "Border Color - Default",
2545
+ key: "menu_item_border_default_color",
2546
+ initial_value: "rgba(0, 0, 0, 0)",
1835
2547
  },
1836
2548
  {
1837
2549
  type: "color_picker_rgba",
1838
- label: "Font Color - Focused",
1839
- key: "menu_item_focused_font_color",
2550
+ label: "Border Color - Focused",
2551
+ key: "menu_item_border_focused_color",
1840
2552
  initial_value: "rgba(239, 239, 239, 1)",
1841
2553
  },
1842
2554
  {
1843
2555
  type: "color_picker_rgba",
1844
- label: "Font Color - Selected",
1845
- key: "menu_item_selected_font_color",
2556
+ label: "Border Color - Selected",
2557
+ key: "menu_item_border_selected_color",
2558
+ initial_value: "rgba(239, 239, 239, 1)",
2559
+ },
2560
+ {
2561
+ type: "color_picker_rgba",
2562
+ label: "Border Color - Focused & Selected",
2563
+ key: "menu_item_border_select_focused_color",
2564
+ initial_value: "rgba(239, 239, 239, 1)",
2565
+ },
2566
+ {
2567
+ type: "number_input",
2568
+ label: "Border Corner Radius",
2569
+ key: "menu_item_border_radius",
2570
+ initial_value: 5,
2571
+ },
2572
+ {
2573
+ type: "number_input",
2574
+ label: "Border Thickness",
2575
+ key: "menu_item_border_thickness",
2576
+ initial_value: 4,
2577
+ },
2578
+ ]
2579
+ ),
2580
+ // Captions Menu - Item Tick Icon
2581
+ fieldsGroup(
2582
+ "Captions - Item Tick Icon",
2583
+ "Captions Menu Item Tick Icon Styles",
2584
+ [
2585
+ {
2586
+ type: "color_picker_rgba",
2587
+ label: "Color",
2588
+ key: "menu_item_tick_color",
2589
+ initial_value: "rgba(239, 239, 239, 1)",
2590
+ },
2591
+ ]
2592
+ )
2593
+ );
2594
+ }
2595
+
2596
+ // ---- TV fields ---- //
2597
+
2598
+ if (isTV(platform)) {
2599
+ styles.fields.push(
2600
+ fieldsGroup("Component Styles", "Component Styles", [
2601
+ {
2602
+ type: "number_input",
2603
+ label: "TV component container height",
2604
+ key: "tv_component_container_height",
2605
+ label_tooltip: "TV component container height in px",
2606
+ initial_value: 400,
2607
+ },
2608
+ ]),
2609
+ // Scrub colors
2610
+ fieldsGroup(
2611
+ "Scrub bar",
2612
+ "This section allows you to configure the styling of the scrub bar",
2613
+ [
2614
+ {
2615
+ section: "scrub",
2616
+ key: "scrub_total",
2617
+ label: "Scrub bar color",
2618
+ type: "color_picker_rgba",
2619
+ initial_value: "rgba(239, 239, 239, 0.35)",
2620
+ label_tooltip:
2621
+ "Select the bar color for the player's scrub / progress bar",
2622
+ },
2623
+ {
2624
+ section: "scrub",
2625
+ key: "scrub_buffer",
2626
+ label: "Scrub bar buffer color",
2627
+ type: "color_picker_rgba",
2628
+ initial_value: "rgba(239, 239, 239, 0.65)",
2629
+ label_tooltip:
2630
+ "Select the buffer bar color for the player's scrub / progress bar",
2631
+ },
2632
+ {
2633
+ section: "scrub",
2634
+ key: "scrub_progress",
2635
+ label: "Scrub bar progress color",
2636
+ type: "color_picker_rgba",
2637
+ initial_value: "rgba(254, 20, 72, 1)",
2638
+ label_tooltip:
2639
+ "Select the progress bar color for the player's scrub / progress bar",
2640
+ },
2641
+ {
2642
+ section: "scrub",
2643
+ key: "scrub_handle",
2644
+ label: "Scrub bar handle color",
2645
+ type: "color_picker_rgba",
2646
+ initial_value: "rgba(239, 239, 239, 1)",
2647
+ label_tooltip:
2648
+ "Select the bar handle / marker color for the player's scrub / progress bar",
2649
+ },
2650
+ ]
2651
+ ),
2652
+ // Video Player Title Text
2653
+ fieldsGroup(
2654
+ "Video Player - Title Text",
2655
+ "Video Player Title Text Label Styles",
2656
+ [
2657
+ {
2658
+ key: "player_title_color",
2659
+ label: "Font color",
2660
+ type: "color_picker_rgba",
1846
2661
  initial_value: "rgba(239, 239, 239, 1)",
1847
2662
  },
1848
2663
  {
2664
+ type: "lg_tv_font_selector",
2665
+ label: "LG Font Family",
2666
+ key: "lg_tv_video_player_title_font_family",
2667
+ initial_value: "Ubuntu-Bold",
2668
+ },
2669
+ {
2670
+ type: "number_input",
2671
+ label: "LG Font Size",
2672
+ key: "lg_tv_video_player_title_font_size",
2673
+ initial_value: 58,
2674
+ },
2675
+ {
2676
+ type: "samsung_font_selector",
2677
+ label: "Samsung Font Family",
2678
+ key: "samsung_tv_video_player_title_font_family",
2679
+ initial_value: "Ubuntu-Bold",
2680
+ },
2681
+ {
2682
+ type: "number_input",
2683
+ label: "Samsung Font Size",
2684
+ key: "samsung_tv_video_player_title_font_size",
2685
+ initial_value: 58,
2686
+ },
2687
+ {
2688
+ type: "vizio_font_selector",
2689
+ label: "Vizio Font Family",
2690
+ key: "vizio_video_player_title_font_family",
2691
+ initial_value: "Ubuntu-Bold",
2692
+ },
2693
+ {
2694
+ type: "number_input",
2695
+ label: "Vizio Font Size",
2696
+ key: "vizio_video_player_title_font_size",
2697
+ initial_value: 58,
2698
+ },
2699
+ {
2700
+ type: "tvos_font_selector",
2701
+ label: "tvOS Font Family",
2702
+ key: "tv_os_video_player_title_font_family",
2703
+ initial_value: "Ubuntu-Bold",
2704
+ },
2705
+ {
2706
+ type: "number_input",
2707
+ label: "tvOS Font Size",
2708
+ key: "tv_os_video_player_title_font_size",
2709
+ initial_value: 58,
2710
+ },
2711
+ {
2712
+ type: "android_font_selector",
2713
+ label: "Android TV Font Family",
2714
+ key: "android_tv_video_player_title_font_family",
2715
+ initial_value: "Ubuntu-Bold",
2716
+ },
2717
+ {
2718
+ type: "number_input",
2719
+ label: "Android TV Font Size",
2720
+ key: "android_tv_video_player_title_font_size",
2721
+ initial_value: 58,
2722
+ },
2723
+ {
2724
+ type: "android_font_selector",
2725
+ label: "Fire TV Font Family",
2726
+ key: "amazon_video_player_title_font_family",
2727
+ initial_value: "Ubuntu-Bold",
2728
+ },
2729
+ {
2730
+ type: "number_input",
2731
+ label: "Fire TV Font Size",
2732
+ key: "amazon_video_player_title_font_size",
2733
+ initial_value: 58,
2734
+ },
2735
+ ]
2736
+ ),
2737
+ // Video Player Summary Font Family
2738
+ fieldsGroup(
2739
+ "Video Player - Summary Text",
2740
+ "Video Player Summary Text Label Styles",
2741
+ [
2742
+ {
2743
+ key: "player_summary_color",
2744
+ label: "Font color",
1849
2745
  type: "color_picker_rgba",
1850
- label: "Font Color - Focused & Selected",
1851
- key: "menu_item_select_focused_font_color",
1852
2746
  initial_value: "rgba(239, 239, 239, 1)",
1853
2747
  },
1854
2748
  {
1855
- type: "lg_font_selector",
2749
+ type: "lg_tv_font_selector",
1856
2750
  label: "LG Font Family",
1857
- key: "menu_item_lg_font_family",
1858
- initial_value: "Museo-Bold",
2751
+ key: "lg_tv_video_player_summary_font_family",
2752
+ initial_value: "Ubuntu-Medium",
1859
2753
  },
1860
2754
  {
1861
2755
  type: "number_input",
1862
2756
  label: "LG Font Size",
1863
- key: "menu_item_lg_font_size",
1864
- initial_value: 25,
2757
+ key: "lg_tv_video_player_summary_font_size",
2758
+ initial_value: 30,
1865
2759
  },
1866
2760
  {
1867
- type: "number_input",
1868
- label: "LG Line Height",
1869
- key: "menu_item_lg_line_height",
1870
- initial_value: 40,
2761
+ type: "samsung_font_selector",
2762
+ label: "Samsung Font Family",
2763
+ key: "samsung_tv_video_player_summary_font_family",
2764
+ initial_value: "Ubuntu-Medium",
1871
2765
  },
1872
2766
  {
1873
2767
  type: "number_input",
1874
- label: "LG Letter Spacing",
1875
- key: "menu_item_lg_letter_spacing",
1876
- initial_value: 0,
2768
+ label: "Samsung Font Size",
2769
+ key: "samsung_tv_video_player_summary_font_size",
2770
+ initial_value: 30,
1877
2771
  },
1878
2772
  {
1879
- type: "samsung_font_selector",
1880
- label: "Samsung Font Family",
1881
- key: "menu_item_samsung_font_family",
1882
- initial_value: "SmsungOneUI-Bold",
2773
+ type: "vizio_font_selector",
2774
+ label: "Vizio Font Family",
2775
+ key: "vizio_video_player_summary_font_family",
2776
+ initial_value: "Ubuntu-Medium",
1883
2777
  },
1884
2778
  {
1885
2779
  type: "number_input",
1886
- label: "Samsung Font Size",
1887
- key: "menu_item_samsung_font_size",
1888
- initial_value: 25,
2780
+ label: "Vizio Font Size",
2781
+ key: "vizio_video_player_summary_font_size",
2782
+ initial_value: 30,
1889
2783
  },
1890
2784
  {
1891
- type: "number_input",
1892
- label: "Samsung Line Height",
1893
- key: "menu_item_samsung_line_height",
1894
- initial_value: 40,
2785
+ type: "tvos_font_selector",
2786
+ label: "tvOS Font Family",
2787
+ key: "tv_os_video_player_summary_font_family",
2788
+ initial_value: "Ubuntu-Medium",
1895
2789
  },
1896
2790
  {
1897
2791
  type: "number_input",
1898
- label: "Samsung Letter Spacing",
1899
- key: "menu_item_samsung_letter_spacing",
1900
- initial_value: 0,
2792
+ label: "tvOS Font Size",
2793
+ key: "tv_os_video_player_summary_font_size",
2794
+ initial_value: 30,
1901
2795
  },
1902
2796
  {
1903
- type: "vizio_font_selector",
1904
- label: "Vizio Font Family",
1905
- key: "menu_item_vizio_font_family",
1906
- initial_value: "SmsungOneUI-Bold",
2797
+ type: "android_font_selector",
2798
+ label: "Android TV Font Family",
2799
+ key: "android_tv_video_player_summary_font_family",
2800
+ initial_value: "Ubuntu-Medium",
1907
2801
  },
1908
2802
  {
1909
2803
  type: "number_input",
1910
- label: "Vizio Font Size",
1911
- key: "menu_item_vizio_font_size",
1912
- initial_value: 25,
2804
+ label: "Android TV Font Size",
2805
+ key: "android_tv_video_player_summary_font_size",
2806
+ initial_value: 30,
1913
2807
  },
1914
2808
  {
1915
- type: "number_input",
1916
- label: "Vizio Line Height",
1917
- key: "menu_item_vizio_line_height",
1918
- initial_value: 40,
2809
+ type: "android_font_selector",
2810
+ label: "Fire TV Font Family",
2811
+ key: "amazon_video_player_summary_font_family",
2812
+ initial_value: "Ubuntu-Medium",
1919
2813
  },
1920
2814
  {
1921
2815
  type: "number_input",
1922
- label: "Vizio Letter Spacing",
1923
- key: "menu_item_vizio_letter_spacing",
1924
- initial_value: 0,
2816
+ label: "Fire TV Font Size",
2817
+ key: "amazon_video_player_summary_font_size",
2818
+ initial_value: 30,
1925
2819
  },
1926
2820
  ]
1927
2821
  ),
1928
- // Captions Menu - Item Border
2822
+ // Audio Player Title Font Family
1929
2823
  fieldsGroup(
1930
- "Captions - Item Border",
1931
- "Captions Menu Item Border Styles",
2824
+ "Audio Player - Title Text",
2825
+ "Audio Player Title Text Label Styles",
1932
2826
  [
1933
2827
  {
2828
+ key: "audio_player_title_color",
2829
+ label: "Audio player title color",
1934
2830
  type: "color_picker_rgba",
1935
- label: "Border Color - Default",
1936
- key: "menu_item_border_default_color",
1937
- initial_value: "rgba(0, 0, 0, 0)",
2831
+ initial_value: "rgba(239, 239, 239, 1)",
1938
2832
  },
1939
2833
  {
1940
- type: "color_picker_rgba",
1941
- label: "Border Color - Focused",
1942
- key: "menu_item_border_focused_color",
1943
- initial_value: "rgba(239, 239, 239, 1)",
2834
+ type: "lg_tv_font_selector",
2835
+ label: "LG Font Family",
2836
+ key: "lg_tv_audio_player_title_font_family",
2837
+ initial_value: "Ubuntu-Bold",
1944
2838
  },
1945
2839
  {
1946
- type: "color_picker_rgba",
1947
- label: "Border Color - Selected",
1948
- key: "menu_item_border_selected_color",
1949
- initial_value: "rgba(239, 239, 239, 1)",
2840
+ type: "number_input",
2841
+ label: "LG Font Size",
2842
+ key: "lg_tv_audio_player_title_font_size",
2843
+ initial_value: 40,
1950
2844
  },
1951
2845
  {
1952
- type: "color_picker_rgba",
1953
- label: "Border Color - Focused & Selected",
1954
- key: "menu_item_border_select_focused_color",
1955
- initial_value: "rgba(239, 239, 239, 1)",
2846
+ type: "samsung_font_selector",
2847
+ label: "Samsung Font Family",
2848
+ key: "samsung_tv_audio_player_title_font_family",
2849
+ initial_value: "Ubuntu-Bold",
1956
2850
  },
1957
2851
  {
1958
2852
  type: "number_input",
1959
- label: "Border Corner Radius",
1960
- key: "menu_item_border_radius",
1961
- initial_value: 5,
2853
+ label: "Samsung Font Size",
2854
+ key: "samsung_tv_audio_player_title_font_size",
2855
+ initial_value: 40,
1962
2856
  },
1963
2857
  {
1964
- type: "number_input",
1965
- label: "Border Thickness",
1966
- key: "menu_item_border_thickness",
1967
- initial_value: 5,
2858
+ type: "vizio_font_selector",
2859
+ label: "Vizio Font Family",
2860
+ key: "vizio_audio_player_title_font_family",
2861
+ initial_value: "Ubuntu-Bold",
1968
2862
  },
1969
- ]
1970
- ),
1971
- // Captions Menu - Item Tick Icon
1972
- fieldsGroup(
1973
- "Captions - Item Tick Icon",
1974
- "Captions Menu Item Tick Icon Styles",
1975
- [
1976
2863
  {
1977
- type: "color_picker_rgba",
1978
- label: "Color",
1979
- key: "menu_item_tick_color",
1980
- initial_value: "rgba(239, 239, 239, 1)",
2864
+ type: "number_input",
2865
+ label: "Vizio Font Size",
2866
+ key: "vizio_audio_player_title_font_size",
2867
+ initial_value: 40,
1981
2868
  },
1982
- ]
1983
- )
1984
- );
1985
- }
1986
-
1987
- // ---- TV fields ---- //
1988
-
1989
- if (getDevice(platform) === "tv") {
1990
- styles.fields.push(
1991
- // Scrub colors
1992
- fieldsGroup(
1993
- "Scrub bar",
1994
- "This section allows you to configure the styling of the scrub bar",
1995
- [
1996
2869
  {
1997
- section: "scrub",
1998
- key: "scrub_total",
1999
- label: "Scrub bar color",
2000
- type: "color_picker_rgba",
2001
- initial_value: "rgba(255, 255, 255, 0.35)",
2002
- label_tooltip:
2003
- "Select the bar color for the player's scrub / progress bar",
2870
+ type: "tvos_font_selector",
2871
+ label: "tvOS Font Family",
2872
+ key: "tv_os_audio_player_title_font_family",
2873
+ initial_value: "Ubuntu-Bold",
2004
2874
  },
2005
2875
  {
2006
- section: "scrub",
2007
- key: "scrub_buffer",
2008
- label: "Scrub bar buffer color",
2009
- type: "color_picker_rgba",
2010
- initial_value: "rgba(255, 255, 255, 0.8)",
2011
- label_tooltip:
2012
- "Select the buffer bar color for the player's scrub / progress bar",
2876
+ type: "number_input",
2877
+ label: "tvOS Font Size",
2878
+ key: "tv_os_audio_player_title_font_size",
2879
+ initial_value: 40,
2013
2880
  },
2014
2881
  {
2015
- section: "scrub",
2016
- key: "scrub_progress",
2017
- label: "Scrub bar progress color",
2018
- type: "color_picker_rgba",
2019
- initial_value: "rgba(4, 207, 153, 1)",
2020
- label_tooltip:
2021
- "Select the progress bar color for the player's scrub / progress bar",
2882
+ type: "android_font_selector",
2883
+ label: "Android TV Font Family",
2884
+ key: "android_tv_audio_player_title_font_family",
2885
+ initial_value: "Ubuntu-Bold",
2022
2886
  },
2023
2887
  {
2024
- section: "scrub",
2025
- key: "scrub_handle",
2026
- label: "Scrub bar handle color",
2027
- type: "color_picker_rgba",
2028
- initial_value: "rgba(255, 255, 255, 1)",
2029
- label_tooltip:
2030
- "Select the bar handle / marker color for the player's scrub / progress bar",
2888
+ type: "number_input",
2889
+ label: "Android TV Font Size",
2890
+ key: "android_tv_audio_player_title_font_size",
2891
+ initial_value: 40,
2031
2892
  },
2032
2893
  ]
2033
2894
  ),
2034
- // Video Player Title Text
2895
+ // Audio Player Summary Font Family
2035
2896
  fieldsGroup(
2036
- "Video Player - Title Text",
2037
- "Video Player Title Text Label Styles",
2897
+ "Audio Player - Summary Text",
2898
+ "Audio Player Summary Text Label Styles",
2038
2899
  [
2039
2900
  {
2040
- key: "player_title_color",
2041
- label: "Font color",
2901
+ key: "audio_player_summary_color",
2902
+ label: "Audio player summary color",
2042
2903
  type: "color_picker_rgba",
2043
- initial_value: "rgba(239, 239, 239, 1)",
2904
+ initial_value: "rgba(239, 239, 239, 0.8)",
2044
2905
  },
2045
2906
  {
2046
2907
  type: "lg_tv_font_selector",
2047
2908
  label: "LG Font Family",
2048
- key: "lg_tv_video_player_title_font_family",
2049
- initial_value: "Museo-Bold",
2909
+ key: "lg_tv_audio_player_summary_font_family",
2910
+ initial_value: "Ubuntu-Medium",
2050
2911
  },
2051
2912
  {
2052
2913
  type: "number_input",
2053
2914
  label: "LG Font Size",
2054
- key: "lg_tv_video_player_title_font_size",
2055
- initial_value: 64,
2915
+ key: "lg_tv_audio_player_summary_font_size",
2916
+ initial_value: 22,
2056
2917
  },
2057
2918
  {
2058
2919
  type: "samsung_font_selector",
2059
2920
  label: "Samsung Font Family",
2060
- key: "samsung_tv_video_player_title_font_family",
2061
- initial_value: "SamsungOne-800",
2921
+ key: "samsung_tv_audio_player_summary_font_family",
2922
+ initial_value: "Ubuntu-Medium",
2062
2923
  },
2063
2924
  {
2064
2925
  type: "number_input",
2065
2926
  label: "Samsung Font Size",
2066
- key: "samsung_tv_video_player_title_font_size",
2067
- initial_value: 64,
2927
+ key: "samsung_tv_audio_player_summary_font_size",
2928
+ initial_value: 22,
2068
2929
  },
2069
2930
  {
2070
2931
  type: "vizio_font_selector",
2071
2932
  label: "Vizio Font Family",
2072
- key: "vizio_video_player_title_font_family",
2073
- initial_value: "Ubuntu-Bold",
2933
+ key: "vizio_audio_player_summary_font_family",
2934
+ initial_value: "Ubuntu-Medium",
2074
2935
  },
2075
2936
  {
2076
2937
  type: "number_input",
2077
2938
  label: "Vizio Font Size",
2078
- key: "vizio_video_player_title_font_size",
2079
- initial_value: 64,
2939
+ key: "vizio_audio_player_summary_font_size",
2940
+ initial_value: 22,
2080
2941
  },
2081
2942
  {
2082
2943
  type: "tvos_font_selector",
2083
2944
  label: "tvOS Font Family",
2084
- key: "tv_os_video_player_title_font_family",
2085
- initial_value: "SFProText-Medium",
2945
+ key: "tv_os_audio_player_summary_font_family",
2946
+ initial_value: "Ubuntu-Medium",
2086
2947
  },
2087
2948
  {
2088
2949
  type: "number_input",
2089
2950
  label: "tvOS Font Size",
2090
- key: "tv_os_video_player_title_font_size",
2091
- initial_value: 48,
2951
+ key: "tv_os_audio_player_summary_font_size",
2952
+ initial_value: 22,
2953
+ },
2954
+ {
2955
+ type: "android_font_selector",
2956
+ label: "Android TV Font Family",
2957
+ key: "android_tv_audio_player_summary_font_family",
2958
+ initial_value: "Ubuntu-Medium",
2959
+ },
2960
+ {
2961
+ type: "number_input",
2962
+ label: "Android TV Font Size",
2963
+ key: "android_tv_audio_player_summary_font_size",
2964
+ initial_value: 22,
2965
+ },
2966
+ ]
2967
+ ),
2968
+ fieldsGroup(
2969
+ "Audio Player Background",
2970
+ "This section allows you to configure the audio player layout",
2971
+ [
2972
+ {
2973
+ key: "audio_player_background_color",
2974
+ label: "Background Color",
2975
+ label_tooltip:
2976
+ "Set a background color using hex format and opacity. If left empty, the default color from the app’s theme will be used.",
2977
+ type: "color_picker_rgba",
2978
+ initial_value: "rgba(17, 17, 17, 1)",
2092
2979
  },
2093
2980
  {
2094
- type: "android_font_selector",
2095
- label: "Android TV Font Family",
2096
- key: "android_tv_video_player_title_font_family",
2097
- initial_value: "Roboto-Bold",
2981
+ key: "audio_player_background_image",
2982
+ label: "Background Image",
2983
+ label_tooltip:
2984
+ "Upload a background image for the audio player. If no image is provided, the background color will be used as a fallback.",
2985
+ type: "uploader",
2986
+ default: "",
2098
2987
  },
2099
2988
  {
2100
- type: "android_font_selector",
2101
- label: "Fire TV Font Family",
2102
- key: "amazon_video_player_title_font_family",
2103
- initial_value: "Roboto-Bold",
2989
+ key: "audio_player_background_image_overlay",
2990
+ label: "Background Image Overlay",
2991
+ label_tooltip:
2992
+ "Add a semi-transparent color overlay to improve text readability over the background image.",
2993
+ type: "color_picker_rgba",
2994
+ initial_value: "rgba(17, 17, 17, 0.5)",
2104
2995
  },
2105
2996
  {
2106
- type: "number_input",
2107
- label: "Android TV Font Size",
2108
- key: "android_tv_video_player_title_font_size",
2109
- initial_value: 50,
2997
+ type: "text_input",
2998
+ label: "Item Image Key",
2999
+ key: "audio_player_artwork_image_key",
3000
+ label_tooltip:
3001
+ "Define the key used to fetch the item’s image. If left empty, a default image will be shown.",
3002
+ initial_value: "image_base",
2110
3003
  },
2111
3004
  {
3005
+ key: "audio_player_artwork_border_radius",
3006
+ label: "Item Image Corner Radius",
3007
+ label_tooltip:
3008
+ "Set the corner radius (in pixels) for item images. Leave empty for sharp corners (0px).",
2112
3009
  type: "number_input",
2113
- label: "Fire TV Font Size",
2114
- key: "amazon_video_player_title_font_size",
2115
- initial_value: 50,
3010
+ initial_value: 16,
2116
3011
  },
2117
3012
  ]
2118
3013
  ),
2119
- // Video Player Summary Font Family
3014
+ // Player Time Font Family
2120
3015
  fieldsGroup(
2121
- "Video Player - Summary Text",
2122
- "Video Player Summary Text Label Styles",
3016
+ "Player Time Indicator Text",
3017
+ "Player Time Indicator Text Label Styles",
2123
3018
  [
2124
- {
2125
- key: "player_summary_color",
2126
- label: "Font color",
2127
- type: "color_picker_rgba",
2128
- initial_value: "rgba(239, 239, 239, 1)",
2129
- },
2130
3019
  {
2131
3020
  type: "lg_tv_font_selector",
2132
3021
  label: "LG Font Family",
2133
- key: "lg_tv_video_player_summary_font_family",
2134
- initial_value: "Museo-Bold",
3022
+ key: "lg_tv_player_time_font_family",
3023
+ initial_value: "Ubuntu-Medium",
2135
3024
  },
2136
3025
  {
2137
3026
  type: "number_input",
2138
3027
  label: "LG Font Size",
2139
- key: "lg_tv_video_player_summary_font_size",
2140
- initial_value: 30,
3028
+ key: "lg_tv_player_time_font_size",
3029
+ initial_value: 20,
2141
3030
  },
2142
3031
  {
2143
3032
  type: "samsung_font_selector",
2144
3033
  label: "Samsung Font Family",
2145
- key: "samsung_tv_video_player_summary_font_family",
2146
- initial_value: "SamsungOne-800",
3034
+ key: "samsung_tv_player_time_font_family",
3035
+ initial_value: "Ubuntu-Medium",
2147
3036
  },
2148
3037
  {
2149
3038
  type: "number_input",
2150
3039
  label: "Samsung Font Size",
2151
- key: "samsung_tv_video_player_summary_font_size",
2152
- initial_value: 30,
3040
+ key: "samsung_tv_player_time_font_size",
3041
+ initial_value: 20,
2153
3042
  },
2154
3043
  {
2155
3044
  type: "vizio_font_selector",
2156
3045
  label: "Vizio Font Family",
2157
- key: "vizio_video_player_summary_font_family",
2158
- initial_value: "Ubuntu-Bold",
3046
+ key: "vizio_tv_player_time_font_family",
3047
+ initial_value: "Ubuntu-Medium",
2159
3048
  },
2160
3049
  {
2161
3050
  type: "number_input",
2162
- label: "Vizio Font Size",
2163
- key: "vizio_video_player_summary_font_size",
2164
- initial_value: 30,
3051
+ label: "vizio Font Size",
3052
+ key: "vizio_player_time_font_size",
3053
+ initial_value: 20,
2165
3054
  },
2166
3055
  {
2167
- type: "tvos_font_selector",
2168
- label: "tvOS Font Family",
2169
- key: "tv_os_video_player_summary_font_family",
2170
- initial_value: "SFProText-Medium",
3056
+ type: "android_font_selector",
3057
+ label: "Android TV Font Family",
3058
+ key: "android_tv_player_time_font_family",
3059
+ initial_value: "Ubuntu-Medium",
2171
3060
  },
2172
3061
  {
2173
3062
  type: "number_input",
2174
- label: "tvOS Font Size",
2175
- key: "tv_os_video_player_summary_font_size",
2176
- initial_value: 24,
2177
- },
2178
- {
2179
- type: "android_font_selector",
2180
- label: "Android TV Font Family",
2181
- key: "android_tv_video_player_summary_font_family",
2182
- initial_value: "Roboto-Medium",
3063
+ label: "Android Font Size",
3064
+ key: "android_tv_player_time_font_size",
3065
+ initial_value: 20,
2183
3066
  },
2184
3067
  {
2185
3068
  type: "android_font_selector",
2186
3069
  label: "Fire TV Font Family",
2187
- key: "amazon_video_player_summary_font_family",
2188
- initial_value: "Roboto-Medium",
2189
- },
2190
- {
2191
- type: "number_input",
2192
- label: "Android TV Font Size",
2193
- key: "android_tv_video_player_summary_font_size",
2194
- initial_value: 25,
3070
+ key: "amazon_player_time_font_family",
3071
+ initial_value: "Ubuntu-Medium",
2195
3072
  },
2196
3073
  {
2197
3074
  type: "number_input",
2198
3075
  label: "Fire TV Font Size",
2199
- key: "amazon_video_player_summary_font_size",
2200
- initial_value: 25,
3076
+ key: "amazon_player_time_font_size",
3077
+ initial_value: 20,
2201
3078
  },
2202
3079
  ]
2203
3080
  ),
2204
- // Audio Player Title Font Family
3081
+ // Player Run Time Font
2205
3082
  fieldsGroup(
2206
- "Audio Player - Title Text",
2207
- "Audio Player Title Text Label Styles",
3083
+ "Player Run Time Indicator Text",
3084
+ "Player Run Time Indicator Text Label Styles",
2208
3085
  [
2209
3086
  {
2210
3087
  type: "lg_tv_font_selector",
2211
3088
  label: "LG Font Family",
2212
- key: "lg_tv_audio_player_title_font_family",
2213
- initial_value: "Museo-Bold",
3089
+ key: "lg_tv_audio_player_run_time_font_family",
3090
+ initial_value: "Ubuntu-Medium",
2214
3091
  },
2215
3092
  {
2216
3093
  type: "number_input",
2217
3094
  label: "LG Font Size",
2218
- key: "lg_tv_audio_player_title_font_size",
2219
- initial_value: 38,
3095
+ key: "lg_tv_audio_player_run_time_font_size",
3096
+ initial_value: 20,
2220
3097
  },
2221
3098
  {
2222
3099
  type: "samsung_font_selector",
2223
3100
  label: "Samsung Font Family",
2224
- key: "samsung_tv_audio_player_title_font_family",
2225
- initial_value: "SamsungOne-800",
3101
+ key: "samsung_tv_audio_player_run_time_font_family",
3102
+ initial_value: "Ubuntu-Medium",
2226
3103
  },
2227
3104
  {
2228
3105
  type: "number_input",
2229
3106
  label: "Samsung Font Size",
2230
- key: "samsung_tv_audio_player_title_font_size",
2231
- initial_value: 38,
3107
+ key: "samsung_tv_audio_player_run_time_font_size",
3108
+ initial_value: 20,
2232
3109
  },
2233
3110
  {
2234
3111
  type: "vizio_font_selector",
2235
3112
  label: "Vizio Font Family",
2236
- key: "vizio_tv_audio_player_title_font_family",
2237
- initial_value: "Ubuntu-Bold",
3113
+ key: "vizio_audio_player_run_time_font_family",
3114
+ initial_value: "Ubuntu-Medium",
2238
3115
  },
2239
3116
  {
2240
3117
  type: "number_input",
2241
3118
  label: "Vizio Font Size",
2242
- key: "vizio_audio_player_title_font_size",
2243
- initial_value: 38,
3119
+ key: "vizio_audio_player_run_time_font_size",
3120
+ initial_value: 20,
2244
3121
  },
2245
3122
  {
2246
3123
  type: "tvos_font_selector",
2247
3124
  label: "tvOS Font Family",
2248
- key: "tv_os_audio_player_title_font_family",
2249
- initial_value: "SFProText-Medium",
3125
+ key: "tv_os_audio_player_run_time_font_family",
3126
+ initial_value: "Ubuntu-Medium",
2250
3127
  },
2251
3128
  {
2252
3129
  type: "number_input",
2253
3130
  label: "tvOS Font Size",
2254
- key: "tv_os_audio_player_title_font_size",
2255
- initial_value: 38,
3131
+ key: "tv_os_audio_player_run_time_font_size",
3132
+ initial_value: 20,
2256
3133
  },
2257
3134
  {
2258
3135
  type: "android_font_selector",
2259
3136
  label: "Android TV Font Family",
2260
- key: "android_tv_audio_player_title_font_family",
2261
- initial_value: "Roboto-Bold",
3137
+ key: "android_tv_audio_player_run_time_font_family",
3138
+ initial_value: "Ubuntu-Medium",
2262
3139
  },
2263
3140
  {
2264
3141
  type: "number_input",
2265
3142
  label: "Android TV Font Size",
2266
- key: "android_tv_audio_player_title_font_size",
2267
- initial_value: 50,
3143
+ key: "android_tv_audio_player_run_time_font_size",
3144
+ initial_value: 20,
2268
3145
  },
2269
3146
  ]
2270
3147
  ),
2271
- // Audio Player Summary Font Family
3148
+ // Player Buttons
3149
+ fieldsGroup("Player Buttons", "Player Buttons styles", [
3150
+ {
3151
+ type: "color_picker_rgba",
3152
+ label: "Border color",
3153
+ key: "button_border_color",
3154
+ initial_value: "rgba(239, 239, 239, 1)",
3155
+ },
3156
+ {
3157
+ type: "color_picker_rgba",
3158
+ label: "Background color",
3159
+ key: "button_background_color",
3160
+ initial_value: "rgba(0, 0, 0, 0)",
3161
+ },
3162
+ {
3163
+ type: "color_picker_rgba",
3164
+ label: "Focused border color",
3165
+ key: "button_focused_border_color",
3166
+ initial_value: "rgba(239, 239, 239, 1)",
3167
+ },
3168
+ {
3169
+ type: "color_picker_rgba",
3170
+ label: "Focused background color",
3171
+ key: "button_focused_background_color",
3172
+ initial_value: "rgba(0, 0, 0, 0)",
3173
+ },
3174
+ ]),
3175
+ // Player progress bar
3176
+ fieldsGroup("Player progress bar", "Progress bar styles", [
3177
+ {
3178
+ type: "color_picker_rgba",
3179
+ label: "Background color",
3180
+ key: "progress_bar_background_color",
3181
+ initial_value: "rgba(254, 20, 72, 1)",
3182
+ },
3183
+ ])
3184
+ );
3185
+ }
3186
+
3187
+ // ---- Audio player (mobile) ---- //
3188
+
3189
+ if (isMobile(platform)) {
3190
+ styles.fields.push(
2272
3191
  fieldsGroup(
2273
- "Audio Player - Summary Text",
2274
- "Audio Player Summary Text Label Styles",
3192
+ "Audio Player",
3193
+ "This section allows you to configure the audio player layout",
2275
3194
  [
2276
3195
  {
2277
- type: "lg_tv_font_selector",
2278
- label: "LG Font Family",
2279
- key: "lg_tv_audio_player_summary_font_family",
2280
- initial_value: "Museo-Bold",
3196
+ key: "full_screen_audio_player",
3197
+ label: "Use audio player layout",
3198
+ initial_value: true,
3199
+ type: "switch",
3200
+ label_tooltip:
3201
+ "When disabled, audio playback will be shown in the video player layout instead",
2281
3202
  },
2282
3203
  {
2283
- type: "number_input",
2284
- label: "LG Font Size",
2285
- key: "lg_tv_audio_player_summary_font_size",
2286
- initial_value: 20,
3204
+ type: "text_input",
3205
+ label: "Image key",
3206
+ key: "audio_player_image_key",
3207
+ label_tooltip:
3208
+ "Specify a key where we could find the image in your entry",
3209
+ initial_value: "image_base",
2287
3210
  },
2288
3211
  {
2289
- type: "samsung_font_selector",
2290
- label: "Samsung Font Family",
2291
- key: "samsung_tv_audio_player_summary_font_family",
2292
- initial_value: "SamsungOne-800",
3212
+ key: "audio_player_background_image",
3213
+ label: "Static image",
3214
+ label_tooltip:
3215
+ "If no image key is configured, or no image is found in the feed — this static image will be used instead.",
3216
+ type: "uploader",
3217
+ default: "",
2293
3218
  },
2294
3219
  {
3220
+ key: "audio_player_artwork_border_radius",
3221
+ label_tooltip:
3222
+ "Adjust the corner radius of the artwork image in the audio player",
3223
+ label: "Image Corner Radius",
2295
3224
  type: "number_input",
2296
- label: "Samsung Font Size",
2297
- key: "samsung_tv_audio_player_summary_font_size",
2298
- initial_value: 20,
3225
+ initial_value: 16,
3226
+ rules: "conditional",
3227
+ conditional_fields: [
3228
+ {
3229
+ key: "styles/full_screen_audio_player",
3230
+ condition_value: true,
3231
+ },
3232
+ ],
2299
3233
  },
2300
3234
  {
2301
- type: "vizio_font_selector",
2302
- label: "Vizio Font Family",
2303
- key: "vizio_audio_player_summary_font_family",
2304
- initial_value: "Ubuntu-Bold",
3235
+ key: "audio_player_artwork_shadow_enabled",
3236
+ label: "Image Shadow Enabled",
3237
+ type: "switch",
3238
+ initial_value: true,
3239
+ rules: "conditional",
3240
+ conditional_fields: [
3241
+ {
3242
+ key: "styles/full_screen_audio_player",
3243
+ condition_value: true,
3244
+ },
3245
+ ],
3246
+ },
3247
+ ]
3248
+ )
3249
+ );
3250
+ }
3251
+
3252
+ if (isTV(platform)) {
3253
+ general.fields.push(
3254
+ fieldsGroup(
3255
+ "Samsung and LG TV only",
3256
+ "This section allows you to configure advanced settings for Samsung and LG TV",
3257
+ [
3258
+ {
3259
+ key: "use_legacy_player",
3260
+ label: "Use Enhanced Player",
3261
+ initial_value: true,
3262
+ type: "switch",
3263
+ label_tooltip:
3264
+ "When this option is enabled, the app will use the web optimized / enhanced player on LG, Samsung, and the browser",
2305
3265
  },
2306
3266
  {
2307
- type: "number_input",
2308
- label: "Vizio Font Size",
2309
- key: "vizio_audio_player_summary_font_size",
2310
- initial_value: 20,
3267
+ key: "limit_video_resolution",
3268
+ label: "Limit Video Resolution For Old LG/Samsung TVs",
3269
+ initial_value: false,
3270
+ type: "switch",
3271
+ label_tooltip:
3272
+ "The player will use 1280x720 resolution and lower for old LG/Samsung TVs(2021 and lower) to avoid player buffering issue",
2311
3273
  },
2312
3274
  {
2313
- type: "tvos_font_selector",
2314
- label: "tvOS Font Family",
2315
- key: "tv_os_audio_player_summary_font_family",
2316
- initial_value: "SFProText-Medium",
3275
+ key: "show_debug_overlay",
3276
+ label: "Show Debug Overlay",
3277
+ initial_value: false,
3278
+ type: "switch",
3279
+ label_tooltip:
3280
+ "When this option is enabled, you will have an overlay showing some important stats about the player and content",
3281
+ },
3282
+ {
3283
+ key: "force_recovery_in_unknown_errors",
3284
+ label: "Force Recovery On Unknown Errors",
3285
+ initial_value: false,
3286
+ type: "switch",
3287
+ label_tooltip:
3288
+ "When this option is enabled, player will try to recover from unknown errors by reloading the player",
3289
+ },
3290
+ {
3291
+ key: "advanced_player_config",
3292
+ label: "Advanced Player Configuration",
3293
+ type: "text_input",
3294
+ multiline: true,
3295
+ initial_value:
3296
+ "{ html5: { vhs: { limitRenditionByPlayerDimensions: true } } }",
3297
+ label_tooltip:
3298
+ "This field allows you to override the player configuration / initialization options. i.e. html5: { vhs: { limitRenditionByPlayerDimensions: false } } Please ensure your configuration matches the player you are targeting, and that it is a valid json. See config options here: https://videojs.com/guides/options/",
2317
3299
  },
2318
3300
  {
2319
- type: "number_input",
2320
- label: "tvOS Font Size",
2321
- key: "tv_os_audio_player_summary_font_size",
2322
- initial_value: 20,
3301
+ key: "use_dashjs_player",
3302
+ label: "Use Enhanced Player for DASH streams",
3303
+ initial_value: true,
3304
+ type: "switch",
3305
+ label_tooltip:
3306
+ "When this option is enabled, the app will use the dash.js player for MPEG-DASH streams on LG / Samsung TV and in the browser",
2323
3307
  },
2324
3308
  {
2325
- type: "android_font_selector",
2326
- label: "Android TV Font Family",
2327
- key: "android_tv_audio_player_summary_font_family",
2328
- initial_value: "Roboto-Medium",
3309
+ key: "use_hlsjs_player",
3310
+ label: "Use Enhanced Player for HLS streams",
3311
+ initial_value: false,
3312
+ type: "switch",
3313
+ label_tooltip:
3314
+ "When this option is enabled, the app will use the hls.js player for HLS streams on LG / Samsung TV and in the browser",
2329
3315
  },
2330
3316
  {
2331
- type: "number_input",
2332
- label: "Android TV Font Size",
2333
- key: "android_tv_audio_player_summary_font_size",
2334
- initial_value: 22,
3317
+ key: "use_hlsjs_subtitles",
3318
+ label: "Use HLS JS subtitles",
3319
+ initial_value: false,
3320
+ type: "switch",
3321
+ label_tooltip:
3322
+ "When this option is enabled, the app will use hls.js player funtionality to display subtitles. Otherwise, it will render them in a custom component",
3323
+ rules: "conditional",
3324
+ conditional_fields: [
3325
+ {
3326
+ key: "general/use_hlsjs_player",
3327
+ condition_value: true,
3328
+ },
3329
+ ],
2335
3330
  },
2336
3331
  ]
2337
3332
  ),
2338
3333
  fieldsGroup(
2339
- "Audio Player Background",
2340
- "This section allows you to configure the audio player layout",
3334
+ "Audio Tracks",
3335
+ "This section allows you to configure default audio track behavior for videos with multiple audio tracks",
3336
+ audioTracksSettings
3337
+ ),
3338
+ fieldsGroup("Legacy configuration", "", audioPlayer)
3339
+ );
3340
+ }
3341
+
3342
+ if (isMobile(platform)) {
3343
+ styles.fields.push(
3344
+ fieldsGroup(
3345
+ "Skip Button",
3346
+ "This section allows you to configure the skip button styles",
2341
3347
  [
2342
3348
  {
2343
- key: "audio_player_background_color",
2344
- label: "Background Color",
2345
- label_tooltip:
2346
- "Set a background color using hex format and opacity. If left empty, the default color from the app’s theme will be used.",
2347
- type: "color_picker_rgba",
2348
- initial_value: "rgba(17, 17, 17, 1)",
3349
+ type: "switch",
3350
+ key: "skip_button_enabled",
3351
+ label_tooltip: "Enables Skip button on the player.",
3352
+ label: "Enable",
3353
+ initial_value: true,
2349
3354
  },
2350
3355
  {
2351
- key: "audio_player_background_image",
2352
- label: "Background Image",
3356
+ type: "switch",
3357
+ key: "skip_button_persistent",
2353
3358
  label_tooltip:
2354
- "Upload a background image for the audio player. If no image is provided, the background color will be used as a fallback.",
2355
- type: "uploader",
2356
- default: "",
3359
+ "Show skip button always if enabled, otherwise show only when the user taps on the screen.",
3360
+ label: "Persistent Button Toggle",
3361
+ initial_value: true,
2357
3362
  },
2358
3363
  {
2359
- key: "audio_player_background_image_overlay",
2360
- label: "Background Image Overlay",
2361
- label_tooltip:
2362
- "Add a semi-transparent color overlay to improve text readability over the background image.",
2363
3364
  type: "color_picker_rgba",
2364
- initial_value: "rgba(17, 17, 17, 0.5)",
3365
+ label_tooltip: "",
3366
+ label: "Background Color",
3367
+ key: "skip_button_style_button_background_color",
3368
+ initial_value: "rgba(0, 0, 0, 0.3)",
2365
3369
  },
2366
3370
  {
2367
- type: "text_input",
2368
- label: "Item Image Key",
2369
- key: "audio_player_artwork_image_key",
2370
- label_tooltip:
2371
- "Define the key used to fetch the item’s image. If left empty, a default image will be shown.",
2372
- initial_value: "image_base",
3371
+ type: "color_picker_rgba",
3372
+ label_tooltip: "",
3373
+ label: "Background Color Pressed",
3374
+ key: "skip_button_style_button_pressed_background_color",
3375
+ initial_value: "rgba(0, 0, 0, 0.3)",
2373
3376
  },
2374
3377
  {
2375
- key: "audio_player_artwork_border_radius",
2376
- label: "Item Image Corner Radius",
2377
- label_tooltip:
2378
- "Set the corner radius (in pixels) for item images. Leave empty for sharp corners (0px).",
2379
3378
  type: "number_input",
2380
- initial_value: 16,
3379
+ label_tooltip: "",
3380
+ label: "Border Width",
3381
+ key: "skip_button_style_button_border_width",
3382
+ initial_value: 1.5,
2381
3383
  },
2382
- ]
2383
- ),
2384
- // Player Time Font Family
2385
- fieldsGroup(
2386
- "Player Time Indicator Text",
2387
- "Player Time Indicator Text Label Styles",
2388
- [
2389
3384
  {
2390
- type: "lg_tv_font_selector",
2391
- label: "LG Font Family",
2392
- key: "lg_tv_player_time_font_family",
2393
- initial_value: "Museo-Bold",
3385
+ type: "color_picker_rgba",
3386
+ label_tooltip: "",
3387
+ label: "Border Color",
3388
+ key: "skip_button_style_button_border_color",
3389
+ initial_value: "rgba(255, 255, 255, 1)",
3390
+ },
3391
+ {
3392
+ type: "color_picker_rgba",
3393
+ label_tooltip: "",
3394
+ label: "Border Color Pressed",
3395
+ key: "skip_button_style_button_pressed_border_color",
3396
+ initial_value: "rgba(255, 255, 255, 0.5)",
2394
3397
  },
2395
3398
  {
2396
3399
  type: "number_input",
2397
- label: "LG Font Size",
2398
- key: "lg_tv_player_time_font_size",
2399
- initial_value: 20,
3400
+ label_tooltip: "",
3401
+ label: "Corner Radius",
3402
+ key: "skip_button_style_button_border_radius",
3403
+ initial_value: 4,
2400
3404
  },
2401
3405
  {
2402
- type: "samsung_font_selector",
2403
- label: "Samsung Font Family",
2404
- key: "samsung_tv_player_time_font_family",
2405
- initial_value: "SamsungOne-800",
3406
+ type: "number_input",
3407
+ label_tooltip: "",
3408
+ label: "Margin Top",
3409
+ key: "skip_button_style_button_margin_top",
3410
+ initial_value: 0,
2406
3411
  },
2407
3412
  {
2408
3413
  type: "number_input",
2409
- label: "Samsung Font Size",
2410
- key: "samsung_tv_player_time_font_size",
2411
- initial_value: 20,
3414
+ label_tooltip: "",
3415
+ label: "Margin Right",
3416
+ key: "skip_button_style_button_margin_right",
3417
+ initial_value: 8,
2412
3418
  },
2413
3419
  {
2414
- type: "vizio_font_selector",
2415
- label: "Vizio Font Family",
2416
- key: "vizio_player_time_font_family",
2417
- initial_value: "Ubuntu-Bold",
3420
+ type: "number_input",
3421
+ label_tooltip: "",
3422
+ label: "Margin Bottom",
3423
+ key: "skip_button_style_button_margin_bottom",
3424
+ initial_value: 0,
2418
3425
  },
2419
3426
  {
2420
3427
  type: "number_input",
2421
- label: "Vizio Font Size",
2422
- key: "vizio_player_time_font_size",
2423
- initial_value: 20,
3428
+ label_tooltip: "",
3429
+ label: "Margin Left",
3430
+ key: "skip_button_style_button_margin_left",
3431
+ initial_value: 0,
2424
3432
  },
2425
3433
  {
2426
3434
  type: "android_font_selector",
2427
- label: "Android TV Font Family",
2428
- key: "android_tv_player_time_font_family",
2429
- initial_value: "Roboto-Bold",
3435
+ label_tooltip: "",
3436
+ label: "Android Font Family",
3437
+ key: "skip_button_style_text_android_font_family",
3438
+ initial_value: "Roboto-Medium",
2430
3439
  },
2431
3440
  {
2432
3441
  type: "number_input",
3442
+ label_tooltip: "",
2433
3443
  label: "Android Font Size",
2434
- key: "android_tv_player_time_font_size",
2435
- initial_value: 20,
3444
+ key: "skip_button_style_text_android_font_size",
3445
+ initial_value: 12,
2436
3446
  },
2437
3447
  {
2438
- type: "android_font_selector",
2439
- label: "Fire TV Font Family",
2440
- key: "amazon_player_time_font_family",
2441
- initial_value: "Roboto-Bold",
3448
+ type: "number_input",
3449
+ label_tooltip: "",
3450
+ label: "Android Letter Spacing",
3451
+ key: "skip_button_style_text_android_letter_spacing",
3452
+ initial_value: 0,
2442
3453
  },
2443
3454
  {
2444
3455
  type: "number_input",
2445
- label: "Fire TV Font Size",
2446
- key: "amazon_player_time_font_size",
3456
+ label_tooltip: "",
3457
+ label: "Android Line Height",
3458
+ key: "skip_button_style_text_android_line_height",
2447
3459
  initial_value: 20,
2448
3460
  },
2449
- ]
2450
- ),
2451
- // Player Run Time Font
2452
- fieldsGroup(
2453
- "Player Run Time Indicator Text",
2454
- "Player Run Time Indicator Text Label Styles",
2455
- [
2456
3461
  {
2457
- type: "lg_tv_font_selector",
2458
- label: "LG Font Family",
2459
- key: "lg_tv_audio_player_run_time_font_family",
2460
- initial_value: "Museo-Bold",
3462
+ type: "ios_font_selector",
3463
+ label_tooltip: "",
3464
+ label: "iOS Font Family",
3465
+ key: "skip_button_style_text_ios_font_family",
3466
+ initial_value: "SFProText-Semibold",
2461
3467
  },
2462
3468
  {
2463
3469
  type: "number_input",
2464
- label: "LG Font Size",
2465
- key: "lg_tv_audio_player_run_time_font_size",
2466
- initial_value: 20,
3470
+ label_tooltip: "",
3471
+ label: "iOS Font Size",
3472
+ key: "skip_button_style_text_ios_font_size",
3473
+ initial_value: 12,
2467
3474
  },
2468
3475
  {
2469
- type: "samsung_font_selector",
2470
- label: "Samsung Font Family",
2471
- key: "samsung_tv_audio_player_run_time_font_family",
2472
- initial_value: "SamsungOne-800",
3476
+ type: "number_input",
3477
+ label_tooltip: "",
3478
+ label: "iOS Letter Spacing",
3479
+ key: "skip_button_style_text_ios_letter_spacing",
3480
+ initial_value: -0.2,
2473
3481
  },
2474
3482
  {
2475
3483
  type: "number_input",
2476
- label: "Samsung Font Size",
2477
- key: "samsung_tv_audio_player_run_time_font_size",
3484
+ label_tooltip: "",
3485
+ label: "iOS Line Height",
3486
+ key: "skip_button_style_text_ios_line_height",
2478
3487
  initial_value: 20,
2479
3488
  },
2480
3489
  {
2481
- type: "vizio_font_selector",
2482
- label: "Vizio Font Family",
2483
- key: "vizio_audio_player_run_time_font_family",
2484
- initial_value: "Ubuntu-Bold",
3490
+ type: "color_picker_rgba",
3491
+ label_tooltip: "",
3492
+ label: "Font Color",
3493
+ key: "skip_button_style_text_color",
3494
+ initial_value: "rgba(255, 255, 255, 1)",
2485
3495
  },
2486
3496
  {
2487
- type: "number_input",
2488
- label: "Vizio Font Size",
2489
- key: "vizio_audio_player_run_time_font_size",
2490
- initial_value: 20,
3497
+ type: "color_picker_rgba",
3498
+ label_tooltip: "",
3499
+ label: "Font Color Pressed",
3500
+ key: "skip_button_style_text_pressed_color",
3501
+ initial_value: "rgba(255, 255, 255, 0.5)",
2491
3502
  },
2492
3503
  {
2493
- type: "tvos_font_selector",
2494
- label: "tvOS Font Family",
2495
- key: "tv_os_audio_player_run_time_font_family",
2496
- initial_value: "SFProText-Medium",
3504
+ type: "select",
3505
+ options: [
3506
+ {
3507
+ text: "None",
3508
+ value: "none",
3509
+ },
3510
+ {
3511
+ text: "Uppercase",
3512
+ value: "uppercase",
3513
+ },
3514
+ {
3515
+ text: "Lowercase",
3516
+ value: "lowercase",
3517
+ },
3518
+ {
3519
+ text: "Capitalize",
3520
+ value: "capitalize",
3521
+ },
3522
+ ],
3523
+ label: "Text Transform",
3524
+ key: "skip_button_style_text_text_transform",
3525
+ initial_value: "none",
2497
3526
  },
2498
3527
  {
2499
3528
  type: "number_input",
2500
- label: "tvOS Font Size",
2501
- key: "tv_os_audio_player_run_time_font_size",
2502
- initial_value: 20,
3529
+ label_tooltip: "",
3530
+ label: "Padding Top",
3531
+ key: "skip_button_style_text_padding_top",
3532
+ initial_value: 7,
2503
3533
  },
2504
3534
  {
2505
- type: "android_font_selector",
2506
- label: "Android TV Font Family",
2507
- key: "android_tv_audio_player_run_time_font_family",
2508
- initial_value: "Roboto-Medium",
3535
+ type: "number_input",
3536
+ label_tooltip: "",
3537
+ label: "Padding Right",
3538
+ key: "skip_button_style_text_padding_right",
3539
+ initial_value: 10,
2509
3540
  },
2510
3541
  {
2511
3542
  type: "number_input",
2512
- label: "Android TV Font Size",
2513
- key: "android_tv_audio_player_run_time_font_size",
2514
- initial_value: 25,
3543
+ label_tooltip: "",
3544
+ label: "Padding Bottom",
3545
+ key: "skip_button_style_text_padding_bottom",
3546
+ initial_value: 7,
3547
+ },
3548
+ {
3549
+ type: "number_input",
3550
+ label_tooltip: "",
3551
+ label: "Padding Left",
3552
+ key: "skip_button_style_text_padding_left",
3553
+ initial_value: 10,
2515
3554
  },
2516
3555
  ]
2517
- ),
2518
- // Player Buttons
2519
- fieldsGroup("Player Buttons", "Player Buttons styles", [
2520
- {
2521
- type: "color_picker_rgba",
2522
- label: "Border color",
2523
- key: "button_border_color",
2524
- initial_value: "rgba(239, 239, 239, 1)",
2525
- },
2526
- {
2527
- type: "color_picker_rgba",
2528
- label: "Background color",
2529
- key: "button_background_color",
2530
- initial_value: "rgba(255, 255, 255, 0)",
2531
- },
2532
- {
2533
- type: "color_picker_rgba",
2534
- label: "Focused border color",
2535
- key: "button_focused_border_color",
2536
- initial_value: "rgba(239, 239, 239, 1)",
2537
- },
2538
- {
2539
- type: "color_picker_rgba",
2540
- label: "Focused background color",
2541
- key: "button_focused_background_color",
2542
- initial_value: "rgba(239, 239, 239, 1)",
2543
- },
2544
- ]),
2545
- // Player progress bar
2546
- fieldsGroup("Player progress bar", "Progress bar styles", [
2547
- {
2548
- type: "color_picker_rgba",
2549
- label: "Background color",
2550
- key: "progress_bar_background_color",
2551
- initial_value: "rgba(239, 239, 239, 1)",
2552
- },
2553
- ])
3556
+ )
2554
3557
  );
2555
3558
  }
2556
3559
 
2557
- // ---- Audio player background - TV & mobile ---- //
2558
-
2559
- styles.fields.push(
2560
- fieldsGroup(
2561
- "Audio Player",
2562
- "This section allows you to configure the audio player layout",
2563
- [
2564
- {
2565
- key: "audio_player_background_color",
2566
- label: "Audio player background color",
2567
- type: "colorpicker",
2568
- initial_value: "#00000066",
2569
- },
2570
- {
2571
- key: "audio_player_title_color",
2572
- label: "Audio player title color",
2573
- type: "colorpicker",
2574
- initial_value: "#efefefcc",
2575
- },
2576
- {
2577
- key: "audio_player_summary_color",
2578
- label: "Audio player summary color",
2579
- type: "colorpicker",
2580
- initial_value: "#efefefcc",
2581
- },
2582
- {
2583
- key: "audio_player_background_image",
2584
- type: "uploader",
2585
- default: "https://i.imgur.com/USTctfL.png",
2586
- },
2587
- {
2588
- key: "audio_player_artwork_aspect_ratio",
2589
- label: "Audio Player Artwork Aspect Ratio",
2590
- initial_value: "16:9",
2591
- type: "dropdown",
2592
- options: ["1:1", "4:3", "16:9", ""],
2593
- multiple: false,
2594
- label_tooltip: "Choose the default aspect ratio for the artwork",
2595
- },
2596
- {
2597
- key: "audio_player_artwork_border_radius",
2598
- label: "Audio Player Artwork Corner Radius",
2599
- type: "number_input",
2600
- initial_value: 16,
2601
- },
2602
- ]
2603
- )
2604
- );
3560
+ const customConfigurationWarning = {
3561
+ label:
3562
+ "These fields are deprecated and now moved to screen configuration inside the Studio. If you have your player setup as a screen in Studio, these fields will be overwritten with a screen configuration.",
3563
+ type: "link",
3564
+ };
2605
3565
 
2606
- return {
3566
+ const manifest = {
2607
3567
  styles,
2608
3568
  general,
2609
3569
  localizations,
2610
- custom_configuration_fields: remapConditionalFieldsForPluginGallery(
2611
- ...styles.fields,
2612
- ...general.fields
2613
- ),
3570
+ custom_configuration_fields: [
3571
+ customConfigurationWarning,
3572
+ ...remapConditionalFieldsForPluginGallery(
3573
+ ...styles.fields,
3574
+ ...general.fields
3575
+ ),
3576
+ ],
2614
3577
  };
3578
+
3579
+ if (platform.includes("android") || platform.includes("amazon")) {
3580
+ manifest.npm_dependencies = [
3581
+ `@applicaster/zapp-react-native-default-player@${version}`,
3582
+ ];
3583
+
3584
+ manifest.project_dependencies = [
3585
+ {
3586
+ "zapp-react-native-default-player":
3587
+ "node_modules/@applicaster/zapp-react-native-default-player/android",
3588
+ },
3589
+ ];
3590
+
3591
+ manifest.extra_dependencies = [];
3592
+ }
3593
+
3594
+ if (platform.includes("ios") || platform.includes("tvos")) {
3595
+ manifest.npm_dependencies = [
3596
+ `@applicaster/zapp-react-native-default-player@${version}`,
3597
+ ];
3598
+
3599
+ manifest.extra_dependencies = [
3600
+ {
3601
+ DefaultPlayer:
3602
+ ":path =\u003e './node_modules/@applicaster/zapp-react-native-default-player/apple/DefaultPlayer.podspec'",
3603
+ },
3604
+ ];
3605
+ }
3606
+
3607
+ return manifest;
2615
3608
  }
2616
3609
 
2617
3610
  const player = (options) => getPlayerConfiguration(options);