@applicaster/zapp-react-native-utils 13.0.0-rc.99 → 14.0.0-alpha.1235043154

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 (77) hide show
  1. package/actionsExecutor/ActionExecutorContext.tsx +55 -6
  2. package/actionsExecutor/consts.ts +4 -0
  3. package/analyticsUtils/AnalyticsEvents/sendHeaderClickEvent.ts +1 -1
  4. package/analyticsUtils/AnalyticsEvents/sendMenuClickEvent.ts +2 -1
  5. package/analyticsUtils/index.tsx +3 -4
  6. package/analyticsUtils/manager.ts +1 -1
  7. package/appUtils/__tests__/__snapshots__/localizationsHelper.test.ts.snap +151 -0
  8. package/appUtils/__tests__/allZappLocales.ts +79 -0
  9. package/appUtils/__tests__/{localizationsHelper.test.js → localizationsHelper.test.ts} +11 -0
  10. package/appUtils/accessibilityManager/const.ts +18 -0
  11. package/appUtils/accessibilityManager/index.ts +4 -1
  12. package/appUtils/focusManager/__tests__/__snapshots__/focusManager.test.js.snap +1 -0
  13. package/appUtils/focusManager/index.ios.ts +14 -4
  14. package/appUtils/focusManager/utils/__tests__/findChild.test.ts +35 -0
  15. package/appUtils/focusManager/utils/index.ts +5 -0
  16. package/appUtils/localizationsHelper.ts +10 -2
  17. package/appUtils/playerManager/playerHooks/usePlayerCurrentTime.tsx +11 -7
  18. package/arrayUtils/__tests__/isEmptyArray.test.ts +63 -0
  19. package/arrayUtils/__tests__/isFilledArray.test.ts +1 -1
  20. package/arrayUtils/index.ts +7 -2
  21. package/audioPlayerUtils/__tests__/getArtworkImage.test.ts +144 -0
  22. package/audioPlayerUtils/__tests__/getBackgroundImage.test.ts +72 -0
  23. package/audioPlayerUtils/__tests__/getImageFromEntry.test.ts +110 -0
  24. package/audioPlayerUtils/assets/index.ts +2 -0
  25. package/audioPlayerUtils/index.ts +242 -0
  26. package/cellUtils/index.ts +9 -5
  27. package/componentsUtils/index.ts +8 -1
  28. package/conf/player/__tests__/selectors.test.ts +34 -0
  29. package/conf/player/selectors.ts +10 -0
  30. package/configurationUtils/__tests__/configurationUtils.test.js +0 -31
  31. package/configurationUtils/__tests__/getMediaItems.test.ts +65 -0
  32. package/configurationUtils/__tests__/imageSrcFromMediaItem.test.ts +34 -0
  33. package/configurationUtils/index.ts +63 -34
  34. package/localizationUtils/index.ts +3 -3
  35. package/manifestUtils/_internals/getDefaultConfiguration.js +28 -0
  36. package/manifestUtils/{_internals.js → _internals/index.js} +2 -25
  37. package/manifestUtils/createConfig.js +4 -1
  38. package/manifestUtils/defaultManifestConfigurations/generalContent.js +13 -0
  39. package/manifestUtils/defaultManifestConfigurations/player.js +1228 -205
  40. package/manifestUtils/index.js +2 -0
  41. package/manifestUtils/keys.js +27 -2
  42. package/manifestUtils/progressBar/__tests__/mobileProgressBar.test.js +0 -30
  43. package/manifestUtils/sharedConfiguration/screenPicker/stylesFields.js +1 -2
  44. package/navigationUtils/__tests__/navigationUtils.test.js +0 -65
  45. package/navigationUtils/index.ts +0 -31
  46. package/package.json +2 -2
  47. package/playerUtils/__tests__/configurationUtils.test.ts +1 -65
  48. package/playerUtils/__tests__/getPlayerActionButtons.test.ts +54 -0
  49. package/playerUtils/_internals/__tests__/utils.test.ts +71 -0
  50. package/playerUtils/_internals/index.ts +1 -0
  51. package/playerUtils/_internals/utils.ts +31 -0
  52. package/playerUtils/configurationUtils.ts +0 -44
  53. package/playerUtils/getPlayerActionButtons.ts +17 -0
  54. package/playerUtils/index.ts +25 -0
  55. package/playerUtils/useValidatePlayerConfig.tsx +22 -19
  56. package/reactHooks/app/useAppState.ts +2 -2
  57. package/reactHooks/autoscrolling/__tests__/useTrackedView.test.tsx +12 -13
  58. package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +39 -88
  59. package/reactHooks/feed/useBatchLoading.ts +12 -14
  60. package/reactHooks/navigation/{useGetTabBarHeight.ts → getTabBarHeight.ts} +1 -1
  61. package/reactHooks/navigation/index.ts +2 -2
  62. package/reactHooks/navigation/useGetBottomTabBarHeight.ts +10 -3
  63. package/reactHooks/navigation/useNavigationPluginData.ts +8 -4
  64. package/reactHooks/navigation/useNavigationType.ts +4 -2
  65. package/reactHooks/screen/__tests__/useScreenBackgroundColor.test.tsx +69 -0
  66. package/reactHooks/screen/useScreenBackgroundColor.ts +3 -15
  67. package/reactHooks/state/README.md +79 -0
  68. package/reactHooks/state/ZStoreProvider.tsx +71 -0
  69. package/reactHooks/state/__tests__/ZStoreProvider.test.tsx +66 -0
  70. package/reactHooks/state/index.ts +2 -0
  71. package/reactHooks/useListenEventBusEvent.ts +1 -1
  72. package/reactUtils/index.ts +9 -0
  73. package/testUtils/index.tsx +7 -8
  74. package/typeGuards/index.ts +3 -0
  75. package/utils/index.ts +12 -1
  76. package/zappFrameworkUtils/localStorageHelper.ts +32 -10
  77. package/playerUtils/configurationGenerator.ts +0 -2588
@@ -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,60 +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_query",
47
- label: "Audio Player Image Query",
48
- initial_value: "",
49
102
  type: "text_input",
50
- label_tooltip:
51
- "Set the query params which control the size of the image e.g width, height. This will help to optimize the loading time, when magic background is enabled.",
103
+ label: "Sleep Timer Modal Title",
104
+ key: "playback_sleep_title",
105
+ initial_value: "Sleep Timer Modal Title",
52
106
  },
53
107
  {
54
- key: "audio_player_background_image_default_color",
55
- label: "Audio Player Background Image Default Color",
56
- initial_value: "",
57
108
  type: "text_input",
58
- label_tooltip:
59
- "Set the default color for the audio player background image if not image or set of gradient colors are not provided.",
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",
60
118
  },
61
- ],
62
- };
63
-
64
- const styles = {
65
- fields: [],
66
- };
67
-
68
- const localizations = {
69
- fields: [],
70
- };
71
119
 
72
- if (getDevice(platform) === "mobile") {
73
- 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
+ },
74
126
  {
75
127
  type: "text_input",
76
128
  label: "Locked message",
@@ -82,14 +134,407 @@ function getPlayerConfiguration({ platform }) {
82
134
  label: "Unlock message",
83
135
  key: "message_unlock",
84
136
  initial_value: "Tap again to unlock screen",
85
- }
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
+ )
86
511
  );
512
+ }
87
513
 
514
+ if (isMobile(platform)) {
88
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
+ },
89
535
  {
90
536
  key: "seek_duration",
91
537
  label: "Seek duration",
92
- // @ts-ignore wrong derived value
93
538
  initial_value: 10,
94
539
  type: "number_input",
95
540
  label_tooltip: "Duration of fast forward / rewind",
@@ -109,31 +554,58 @@ function getPlayerConfiguration({ platform }) {
109
554
  label_tooltip:
110
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",
111
556
  type: "text_input",
112
- }
113
- );
114
-
115
- if (platform.includes("ios")) {
116
- 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
+ {
117
574
  key: "pictureInPictureEnabled",
118
- label: "Picture and picture enabled",
575
+ label: "Picture in picture enabled",
119
576
  initial_value: false,
120
577
  type: "switch",
121
578
  label_tooltip:
122
- "Enable this option to have a floating video player when the app is in the background (experimental)",
123
- });
124
- }
579
+ "Enable this option to have a floating video player when the app is in the background.",
580
+ }
581
+ );
125
582
 
126
- 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
+ ) {
127
589
  general.fields.push({
128
590
  key: "user_agent",
129
591
  label: "User agent",
130
- // @ts-ignore wrong derived value
131
592
  initial_value: "",
132
593
  type: "text_input",
133
594
  label_tooltip: "Override default user agent string",
134
595
  });
135
596
  }
136
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
+
137
609
  styles.fields.push(
138
610
  fieldsGroup(
139
611
  "Player Styles",
@@ -147,6 +619,12 @@ function getPlayerConfiguration({ platform }) {
147
619
  label_tooltip:
148
620
  "Select the background overlay color for the player. The alpha channel is ignored, and a gradient is created from the provided RGB colors",
149
621
  },
622
+ {
623
+ type: "text_input",
624
+ label: "Background image key",
625
+ key: "player_preview_image_key",
626
+ initial_value: "",
627
+ },
150
628
  {
151
629
  key: "use_video_modal",
152
630
  label: "Use video modal",
@@ -200,6 +678,21 @@ function getPlayerConfiguration({ platform }) {
200
678
  },
201
679
  ],
202
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
+ },
203
696
  {
204
697
  type: "switch",
205
698
  label: "Display live badge",
@@ -529,6 +1022,67 @@ function getPlayerConfiguration({ platform }) {
529
1022
  },
530
1023
  ],
531
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
+ },
532
1086
  ]
533
1087
  ),
534
1088
  fieldsGroup(
@@ -928,6 +1482,15 @@ function getPlayerConfiguration({ platform }) {
928
1482
  },
929
1483
  ]
930
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
+ ]),
931
1494
  fieldsGroup(
932
1495
  "Player Content Subtitle",
933
1496
  "this section enables you to configure the styles of the content meta data displayed on top of the player",
@@ -1308,7 +1871,7 @@ function getPlayerConfiguration({ platform }) {
1308
1871
  key: "scrub_color",
1309
1872
  label: "Scrub font color",
1310
1873
  type: "color_picker_rgba",
1311
- initial_value: "rgba(255, 255, 255, 1)",
1874
+ initial_value: "rgba(239, 239, 239, 1)", // #EFEFEF
1312
1875
  label_tooltip:
1313
1876
  "Select the font color for the player's scrub / progress bar",
1314
1877
  },
@@ -1317,7 +1880,7 @@ function getPlayerConfiguration({ platform }) {
1317
1880
  key: "scrub_color_duration_inline",
1318
1881
  label: "Scrub total duration font color (inline player)",
1319
1882
  type: "color_picker_rgba",
1320
- initial_value: "rgba(255, 255, 255, 0.65)",
1883
+ initial_value: "rgba(239, 239, 239, 0.65)", // #EFEFEF
1321
1884
  label_tooltip:
1322
1885
  "Select the font color for the player's progress bar total duration label in inline mode",
1323
1886
  conditional_fields: [
@@ -1332,7 +1895,7 @@ function getPlayerConfiguration({ platform }) {
1332
1895
  key: "scrub_fontsize_android",
1333
1896
  label: "Android scrub font size",
1334
1897
  type: "number_input",
1335
- initial_value: 13,
1898
+ initial_value: 12,
1336
1899
  label_tooltip:
1337
1900
  "Select the font size for the android player's scrub / progress bar",
1338
1901
  },
@@ -1341,7 +1904,7 @@ function getPlayerConfiguration({ platform }) {
1341
1904
  key: "scrub_fontsize_ios",
1342
1905
  label: "iOS scrub font size",
1343
1906
  type: "number_input",
1344
- initial_value: 13,
1907
+ initial_value: 12,
1345
1908
  label_tooltip:
1346
1909
  "Select the font size for the iOS player's scrub / progress bar",
1347
1910
  },
@@ -1350,7 +1913,7 @@ function getPlayerConfiguration({ platform }) {
1350
1913
  key: "scrub_lineheight_android",
1351
1914
  label: "Android scrub line height",
1352
1915
  type: "number_input",
1353
- initial_value: 16,
1916
+ initial_value: 20,
1354
1917
  label_tooltip:
1355
1918
  "Select the line height for the android player's scrub / progress bar",
1356
1919
  },
@@ -1359,7 +1922,7 @@ function getPlayerConfiguration({ platform }) {
1359
1922
  key: "scrub_lineheight_ios",
1360
1923
  label: "iOS scrub line height",
1361
1924
  type: "number_input",
1362
- initial_value: 16,
1925
+ initial_value: 20,
1363
1926
  label_tooltip:
1364
1927
  "Select the line height for the iOS player's scrub / progress bar",
1365
1928
  },
@@ -1368,7 +1931,7 @@ function getPlayerConfiguration({ platform }) {
1368
1931
  key: "scrub_letterspacing_android",
1369
1932
  label: "Android scrub letter spacing",
1370
1933
  type: "number_input",
1371
- initial_value: 0,
1934
+ initial_value: -0.4,
1372
1935
  label_tooltip:
1373
1936
  "Select the letter spacing for the android player's scrub / progress bar",
1374
1937
  },
@@ -1377,7 +1940,7 @@ function getPlayerConfiguration({ platform }) {
1377
1940
  key: "scrub_letterspacing_ios",
1378
1941
  label: "iOS scrub letter spacing",
1379
1942
  type: "number_input",
1380
- initial_value: 0,
1943
+ initial_value: -0.4,
1381
1944
  label_tooltip:
1382
1945
  "Select the letter spacing for the iOS player's scrub / progress bar",
1383
1946
  },
@@ -1456,7 +2019,7 @@ function getPlayerConfiguration({ platform }) {
1456
2019
  },
1457
2020
  {
1458
2021
  key: "lock_controls_when_player_opens",
1459
- label: "Lock controls when player opens",
2022
+ label: "Lock controls each time the player opens",
1460
2023
  initial_value: false,
1461
2024
  type: "switch",
1462
2025
  label_tooltip:
@@ -1656,18 +2219,50 @@ function getPlayerConfiguration({ platform }) {
1656
2219
  );
1657
2220
  }
1658
2221
 
1659
- // ---- Web Platforms fields ---- //
1660
-
1661
- // Temporary option to disable not-working track selector on JW streams
1662
- if (platform.includes("samsung")) {
1663
- styles.fields.push({
2222
+ compact([
2223
+ {
2224
+ key: "liveCatchUpEnabled",
2225
+ label: "Live Catch Up",
2226
+ initial_value: true,
1664
2227
  type: "switch",
1665
- label: "Disable captions overlay",
1666
- key: "disable_captions",
1667
- initial_value: false,
1668
- });
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
+ );
1669
2262
  }
1670
2263
 
2264
+ // ---- Web Platforms fields ---- //
2265
+
1671
2266
  if (
1672
2267
  platform.includes("lg") ||
1673
2268
  platform.includes("samsung") ||
@@ -1676,13 +2271,19 @@ function getPlayerConfiguration({ platform }) {
1676
2271
  platform.includes("vizio")
1677
2272
  ) {
1678
2273
  styles.fields.push(
1679
- // Captions Menu
2274
+ // Captions Menu for TV
1680
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
+ },
1681
2282
  {
1682
2283
  type: "color_picker_rgba",
1683
2284
  label: "Video Overlay",
1684
2285
  key: "overlay_color",
1685
- initial_value: "rgba(0, 0, 0, 0.5)",
2286
+ initial_value: "rgba(17, 17, 17, 0.5)",
1686
2287
  },
1687
2288
  ]),
1688
2289
  // Captions Menu - Close
@@ -1691,7 +2292,7 @@ function getPlayerConfiguration({ platform }) {
1691
2292
  type: "color_picker_rgba",
1692
2293
  label: "Background Color",
1693
2294
  key: "close_background_color",
1694
- initial_value: "rgba(16, 16, 16, 1)",
2295
+ initial_value: "rgba(30, 30, 30, 1)",
1695
2296
  },
1696
2297
  {
1697
2298
  type: "color_picker_rgba",
@@ -1718,31 +2319,31 @@ function getPlayerConfiguration({ platform }) {
1718
2319
  type: "color_picker_rgba",
1719
2320
  label: "Background Color",
1720
2321
  key: "menu_background_color",
1721
- initial_value: "rgba(16, 16, 16, 1)",
2322
+ initial_value: "rgba(30, 30, 30, 1)",
1722
2323
  },
1723
2324
  {
1724
2325
  type: "color_picker_rgba",
1725
2326
  label: "Top Gradient - Start",
1726
2327
  key: "menu_top_gradient_start_color",
1727
- initial_value: "rgba(16, 16, 16, 1)",
2328
+ initial_value: "rgba(30, 30, 30, 1)",
1728
2329
  },
1729
2330
  {
1730
2331
  type: "color_picker_rgba",
1731
2332
  label: "Top Gradient - End",
1732
2333
  key: "menu_top_gradient_end_color",
1733
- initial_value: "rgba(16, 16, 16, 0)",
2334
+ initial_value: "rgba(30, 30, 30, 0)",
1734
2335
  },
1735
2336
  {
1736
2337
  type: "color_picker_rgba",
1737
2338
  label: "Bottom Gradient - Start",
1738
2339
  key: "menu_bottom_gradient_start_color",
1739
- initial_value: "rgba(16, 16, 16, 1)",
2340
+ initial_value: "rgba(30, 30, 30, 1)",
1740
2341
  },
1741
2342
  {
1742
2343
  type: "color_picker_rgba",
1743
2344
  label: "Bottom Gradient - End",
1744
2345
  key: "menu_bottom_gradient_end_color",
1745
- initial_value: "rgba(16, 16, 16, 0)",
2346
+ initial_value: "rgba(30, 30, 30, 0)",
1746
2347
  },
1747
2348
  ]),
1748
2349
  // Captions Menu - Header Text Label
@@ -1760,7 +2361,7 @@ function getPlayerConfiguration({ platform }) {
1760
2361
  type: "lg_font_selector",
1761
2362
  label: "LG Font Family",
1762
2363
  key: "menu_header_lg_font_family",
1763
- initial_value: "Museo-Bold",
2364
+ initial_value: "Ubuntu-Bold",
1764
2365
  },
1765
2366
  {
1766
2367
  type: "number_input",
@@ -1784,7 +2385,7 @@ function getPlayerConfiguration({ platform }) {
1784
2385
  type: "samsung_font_selector",
1785
2386
  label: "Samsung Font Family",
1786
2387
  key: "menu_header_samsung_font_family",
1787
- initial_value: "SmsungOneUI-Bold",
2388
+ initial_value: "Ubuntu-Bold",
1788
2389
  },
1789
2390
  {
1790
2391
  type: "number_input",
@@ -1808,7 +2409,7 @@ function getPlayerConfiguration({ platform }) {
1808
2409
  type: "vizio_font_selector",
1809
2410
  label: "Vizio Font Family",
1810
2411
  key: "menu_header_vizio_font_family",
1811
- initial_value: "SmsungOneUI-Bold",
2412
+ initial_value: "Ubuntu-Bold",
1812
2413
  },
1813
2414
  {
1814
2415
  type: "number_input",
@@ -1863,7 +2464,7 @@ function getPlayerConfiguration({ platform }) {
1863
2464
  type: "lg_font_selector",
1864
2465
  label: "LG Font Family",
1865
2466
  key: "menu_item_lg_font_family",
1866
- initial_value: "Museo-Bold",
2467
+ initial_value: "Ubuntu-Medium",
1867
2468
  },
1868
2469
  {
1869
2470
  type: "number_input",
@@ -1887,7 +2488,7 @@ function getPlayerConfiguration({ platform }) {
1887
2488
  type: "samsung_font_selector",
1888
2489
  label: "Samsung Font Family",
1889
2490
  key: "menu_item_samsung_font_family",
1890
- initial_value: "SmsungOneUI-Bold",
2491
+ initial_value: "Ubuntu-Medium",
1891
2492
  },
1892
2493
  {
1893
2494
  type: "number_input",
@@ -1911,7 +2512,7 @@ function getPlayerConfiguration({ platform }) {
1911
2512
  type: "vizio_font_selector",
1912
2513
  label: "Vizio Font Family",
1913
2514
  key: "menu_item_vizio_font_family",
1914
- initial_value: "SmsungOneUI-Bold",
2515
+ initial_value: "Ubuntu-Medium",
1915
2516
  },
1916
2517
  {
1917
2518
  type: "number_input",
@@ -1972,7 +2573,7 @@ function getPlayerConfiguration({ platform }) {
1972
2573
  type: "number_input",
1973
2574
  label: "Border Thickness",
1974
2575
  key: "menu_item_border_thickness",
1975
- initial_value: 5,
2576
+ initial_value: 4,
1976
2577
  },
1977
2578
  ]
1978
2579
  ),
@@ -1994,8 +2595,17 @@ function getPlayerConfiguration({ platform }) {
1994
2595
 
1995
2596
  // ---- TV fields ---- //
1996
2597
 
1997
- if (getDevice(platform) === "tv") {
2598
+ if (isTV(platform)) {
1998
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
+ ]),
1999
2609
  // Scrub colors
2000
2610
  fieldsGroup(
2001
2611
  "Scrub bar",
@@ -2006,7 +2616,7 @@ function getPlayerConfiguration({ platform }) {
2006
2616
  key: "scrub_total",
2007
2617
  label: "Scrub bar color",
2008
2618
  type: "color_picker_rgba",
2009
- initial_value: "rgba(255, 255, 255, 0.35)",
2619
+ initial_value: "rgba(239, 239, 239, 0.35)",
2010
2620
  label_tooltip:
2011
2621
  "Select the bar color for the player's scrub / progress bar",
2012
2622
  },
@@ -2015,7 +2625,7 @@ function getPlayerConfiguration({ platform }) {
2015
2625
  key: "scrub_buffer",
2016
2626
  label: "Scrub bar buffer color",
2017
2627
  type: "color_picker_rgba",
2018
- initial_value: "rgba(255, 255, 255, 0.8)",
2628
+ initial_value: "rgba(239, 239, 239, 0.65)",
2019
2629
  label_tooltip:
2020
2630
  "Select the buffer bar color for the player's scrub / progress bar",
2021
2631
  },
@@ -2024,7 +2634,7 @@ function getPlayerConfiguration({ platform }) {
2024
2634
  key: "scrub_progress",
2025
2635
  label: "Scrub bar progress color",
2026
2636
  type: "color_picker_rgba",
2027
- initial_value: "rgba(4, 207, 153, 1)",
2637
+ initial_value: "rgba(254, 20, 72, 1)",
2028
2638
  label_tooltip:
2029
2639
  "Select the progress bar color for the player's scrub / progress bar",
2030
2640
  },
@@ -2033,7 +2643,7 @@ function getPlayerConfiguration({ platform }) {
2033
2643
  key: "scrub_handle",
2034
2644
  label: "Scrub bar handle color",
2035
2645
  type: "color_picker_rgba",
2036
- initial_value: "rgba(255, 255, 255, 1)",
2646
+ initial_value: "rgba(239, 239, 239, 1)",
2037
2647
  label_tooltip:
2038
2648
  "Select the bar handle / marker color for the player's scrub / progress bar",
2039
2649
  },
@@ -2054,25 +2664,25 @@ function getPlayerConfiguration({ platform }) {
2054
2664
  type: "lg_tv_font_selector",
2055
2665
  label: "LG Font Family",
2056
2666
  key: "lg_tv_video_player_title_font_family",
2057
- initial_value: "Museo-Bold",
2667
+ initial_value: "Ubuntu-Bold",
2058
2668
  },
2059
2669
  {
2060
2670
  type: "number_input",
2061
2671
  label: "LG Font Size",
2062
2672
  key: "lg_tv_video_player_title_font_size",
2063
- initial_value: 64,
2673
+ initial_value: 58,
2064
2674
  },
2065
2675
  {
2066
2676
  type: "samsung_font_selector",
2067
2677
  label: "Samsung Font Family",
2068
2678
  key: "samsung_tv_video_player_title_font_family",
2069
- initial_value: "SamsungOne-800",
2679
+ initial_value: "Ubuntu-Bold",
2070
2680
  },
2071
2681
  {
2072
2682
  type: "number_input",
2073
2683
  label: "Samsung Font Size",
2074
2684
  key: "samsung_tv_video_player_title_font_size",
2075
- initial_value: 64,
2685
+ initial_value: 58,
2076
2686
  },
2077
2687
  {
2078
2688
  type: "vizio_font_selector",
@@ -2084,43 +2694,43 @@ function getPlayerConfiguration({ platform }) {
2084
2694
  type: "number_input",
2085
2695
  label: "Vizio Font Size",
2086
2696
  key: "vizio_video_player_title_font_size",
2087
- initial_value: 64,
2697
+ initial_value: 58,
2088
2698
  },
2089
2699
  {
2090
2700
  type: "tvos_font_selector",
2091
2701
  label: "tvOS Font Family",
2092
2702
  key: "tv_os_video_player_title_font_family",
2093
- initial_value: "SFProText-Medium",
2703
+ initial_value: "Ubuntu-Bold",
2094
2704
  },
2095
2705
  {
2096
2706
  type: "number_input",
2097
2707
  label: "tvOS Font Size",
2098
2708
  key: "tv_os_video_player_title_font_size",
2099
- initial_value: 48,
2709
+ initial_value: 58,
2100
2710
  },
2101
2711
  {
2102
2712
  type: "android_font_selector",
2103
2713
  label: "Android TV Font Family",
2104
2714
  key: "android_tv_video_player_title_font_family",
2105
- initial_value: "Roboto-Bold",
2106
- },
2107
- {
2108
- type: "android_font_selector",
2109
- label: "Fire TV Font Family",
2110
- key: "amazon_video_player_title_font_family",
2111
- initial_value: "Roboto-Bold",
2715
+ initial_value: "Ubuntu-Bold",
2112
2716
  },
2113
2717
  {
2114
2718
  type: "number_input",
2115
2719
  label: "Android TV Font Size",
2116
2720
  key: "android_tv_video_player_title_font_size",
2117
- initial_value: 50,
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",
2118
2728
  },
2119
2729
  {
2120
2730
  type: "number_input",
2121
2731
  label: "Fire TV Font Size",
2122
2732
  key: "amazon_video_player_title_font_size",
2123
- initial_value: 50,
2733
+ initial_value: 58,
2124
2734
  },
2125
2735
  ]
2126
2736
  ),
@@ -2139,7 +2749,7 @@ function getPlayerConfiguration({ platform }) {
2139
2749
  type: "lg_tv_font_selector",
2140
2750
  label: "LG Font Family",
2141
2751
  key: "lg_tv_video_player_summary_font_family",
2142
- initial_value: "Museo-Bold",
2752
+ initial_value: "Ubuntu-Medium",
2143
2753
  },
2144
2754
  {
2145
2755
  type: "number_input",
@@ -2151,7 +2761,7 @@ function getPlayerConfiguration({ platform }) {
2151
2761
  type: "samsung_font_selector",
2152
2762
  label: "Samsung Font Family",
2153
2763
  key: "samsung_tv_video_player_summary_font_family",
2154
- initial_value: "SamsungOne-800",
2764
+ initial_value: "Ubuntu-Medium",
2155
2765
  },
2156
2766
  {
2157
2767
  type: "number_input",
@@ -2163,7 +2773,7 @@ function getPlayerConfiguration({ platform }) {
2163
2773
  type: "vizio_font_selector",
2164
2774
  label: "Vizio Font Family",
2165
2775
  key: "vizio_video_player_summary_font_family",
2166
- initial_value: "Ubuntu-Bold",
2776
+ initial_value: "Ubuntu-Medium",
2167
2777
  },
2168
2778
  {
2169
2779
  type: "number_input",
@@ -2175,37 +2785,37 @@ function getPlayerConfiguration({ platform }) {
2175
2785
  type: "tvos_font_selector",
2176
2786
  label: "tvOS Font Family",
2177
2787
  key: "tv_os_video_player_summary_font_family",
2178
- initial_value: "SFProText-Medium",
2788
+ initial_value: "Ubuntu-Medium",
2179
2789
  },
2180
2790
  {
2181
2791
  type: "number_input",
2182
2792
  label: "tvOS Font Size",
2183
2793
  key: "tv_os_video_player_summary_font_size",
2184
- initial_value: 24,
2794
+ initial_value: 30,
2185
2795
  },
2186
2796
  {
2187
2797
  type: "android_font_selector",
2188
2798
  label: "Android TV Font Family",
2189
2799
  key: "android_tv_video_player_summary_font_family",
2190
- initial_value: "Roboto-Medium",
2191
- },
2192
- {
2193
- type: "android_font_selector",
2194
- label: "Fire TV Font Family",
2195
- key: "amazon_video_player_summary_font_family",
2196
- initial_value: "Roboto-Medium",
2800
+ initial_value: "Ubuntu-Medium",
2197
2801
  },
2198
2802
  {
2199
2803
  type: "number_input",
2200
2804
  label: "Android TV Font Size",
2201
2805
  key: "android_tv_video_player_summary_font_size",
2202
- initial_value: 25,
2806
+ initial_value: 30,
2807
+ },
2808
+ {
2809
+ type: "android_font_selector",
2810
+ label: "Fire TV Font Family",
2811
+ key: "amazon_video_player_summary_font_family",
2812
+ initial_value: "Ubuntu-Medium",
2203
2813
  },
2204
2814
  {
2205
2815
  type: "number_input",
2206
2816
  label: "Fire TV Font Size",
2207
2817
  key: "amazon_video_player_summary_font_size",
2208
- initial_value: 25,
2818
+ initial_value: 30,
2209
2819
  },
2210
2820
  ]
2211
2821
  ),
@@ -2214,65 +2824,71 @@ function getPlayerConfiguration({ platform }) {
2214
2824
  "Audio Player - Title Text",
2215
2825
  "Audio Player Title Text Label Styles",
2216
2826
  [
2827
+ {
2828
+ key: "audio_player_title_color",
2829
+ label: "Audio player title color",
2830
+ type: "color_picker_rgba",
2831
+ initial_value: "rgba(239, 239, 239, 1)",
2832
+ },
2217
2833
  {
2218
2834
  type: "lg_tv_font_selector",
2219
2835
  label: "LG Font Family",
2220
2836
  key: "lg_tv_audio_player_title_font_family",
2221
- initial_value: "Museo-Bold",
2837
+ initial_value: "Ubuntu-Bold",
2222
2838
  },
2223
2839
  {
2224
2840
  type: "number_input",
2225
2841
  label: "LG Font Size",
2226
2842
  key: "lg_tv_audio_player_title_font_size",
2227
- initial_value: 38,
2843
+ initial_value: 40,
2228
2844
  },
2229
2845
  {
2230
2846
  type: "samsung_font_selector",
2231
2847
  label: "Samsung Font Family",
2232
2848
  key: "samsung_tv_audio_player_title_font_family",
2233
- initial_value: "SamsungOne-800",
2849
+ initial_value: "Ubuntu-Bold",
2234
2850
  },
2235
2851
  {
2236
2852
  type: "number_input",
2237
2853
  label: "Samsung Font Size",
2238
2854
  key: "samsung_tv_audio_player_title_font_size",
2239
- initial_value: 38,
2855
+ initial_value: 40,
2240
2856
  },
2241
2857
  {
2242
2858
  type: "vizio_font_selector",
2243
2859
  label: "Vizio Font Family",
2244
- key: "vizio_tv_audio_player_title_font_family",
2860
+ key: "vizio_audio_player_title_font_family",
2245
2861
  initial_value: "Ubuntu-Bold",
2246
2862
  },
2247
2863
  {
2248
2864
  type: "number_input",
2249
2865
  label: "Vizio Font Size",
2250
2866
  key: "vizio_audio_player_title_font_size",
2251
- initial_value: 38,
2867
+ initial_value: 40,
2252
2868
  },
2253
2869
  {
2254
2870
  type: "tvos_font_selector",
2255
2871
  label: "tvOS Font Family",
2256
2872
  key: "tv_os_audio_player_title_font_family",
2257
- initial_value: "SFProText-Medium",
2873
+ initial_value: "Ubuntu-Bold",
2258
2874
  },
2259
2875
  {
2260
2876
  type: "number_input",
2261
2877
  label: "tvOS Font Size",
2262
2878
  key: "tv_os_audio_player_title_font_size",
2263
- initial_value: 38,
2879
+ initial_value: 40,
2264
2880
  },
2265
2881
  {
2266
2882
  type: "android_font_selector",
2267
2883
  label: "Android TV Font Family",
2268
2884
  key: "android_tv_audio_player_title_font_family",
2269
- initial_value: "Roboto-Bold",
2885
+ initial_value: "Ubuntu-Bold",
2270
2886
  },
2271
2887
  {
2272
2888
  type: "number_input",
2273
2889
  label: "Android TV Font Size",
2274
2890
  key: "android_tv_audio_player_title_font_size",
2275
- initial_value: 50,
2891
+ initial_value: 40,
2276
2892
  },
2277
2893
  ]
2278
2894
  ),
@@ -2281,65 +2897,109 @@ function getPlayerConfiguration({ platform }) {
2281
2897
  "Audio Player - Summary Text",
2282
2898
  "Audio Player Summary Text Label Styles",
2283
2899
  [
2900
+ {
2901
+ key: "audio_player_summary_color",
2902
+ label: "Audio player summary color",
2903
+ type: "color_picker_rgba",
2904
+ initial_value: "rgba(239, 239, 239, 0.8)",
2905
+ },
2284
2906
  {
2285
2907
  type: "lg_tv_font_selector",
2286
2908
  label: "LG Font Family",
2287
2909
  key: "lg_tv_audio_player_summary_font_family",
2288
- initial_value: "Museo-Bold",
2910
+ initial_value: "Ubuntu-Medium",
2289
2911
  },
2290
2912
  {
2291
2913
  type: "number_input",
2292
2914
  label: "LG Font Size",
2293
2915
  key: "lg_tv_audio_player_summary_font_size",
2294
- initial_value: 20,
2916
+ initial_value: 22,
2295
2917
  },
2296
2918
  {
2297
2919
  type: "samsung_font_selector",
2298
2920
  label: "Samsung Font Family",
2299
2921
  key: "samsung_tv_audio_player_summary_font_family",
2300
- initial_value: "SamsungOne-800",
2922
+ initial_value: "Ubuntu-Medium",
2301
2923
  },
2302
2924
  {
2303
2925
  type: "number_input",
2304
2926
  label: "Samsung Font Size",
2305
2927
  key: "samsung_tv_audio_player_summary_font_size",
2306
- initial_value: 20,
2928
+ initial_value: 22,
2307
2929
  },
2308
2930
  {
2309
2931
  type: "vizio_font_selector",
2310
2932
  label: "Vizio Font Family",
2311
2933
  key: "vizio_audio_player_summary_font_family",
2312
- initial_value: "Ubuntu-Bold",
2934
+ initial_value: "Ubuntu-Medium",
2313
2935
  },
2314
2936
  {
2315
2937
  type: "number_input",
2316
2938
  label: "Vizio Font Size",
2317
2939
  key: "vizio_audio_player_summary_font_size",
2318
- initial_value: 20,
2940
+ initial_value: 22,
2319
2941
  },
2320
2942
  {
2321
2943
  type: "tvos_font_selector",
2322
2944
  label: "tvOS Font Family",
2323
2945
  key: "tv_os_audio_player_summary_font_family",
2324
- initial_value: "SFProText-Medium",
2946
+ initial_value: "Ubuntu-Medium",
2325
2947
  },
2326
2948
  {
2327
2949
  type: "number_input",
2328
2950
  label: "tvOS Font Size",
2329
2951
  key: "tv_os_audio_player_summary_font_size",
2330
- initial_value: 20,
2952
+ initial_value: 22,
2331
2953
  },
2332
2954
  {
2333
2955
  type: "android_font_selector",
2334
2956
  label: "Android TV Font Family",
2335
2957
  key: "android_tv_audio_player_summary_font_family",
2336
- initial_value: "Roboto-Medium",
2958
+ initial_value: "Ubuntu-Medium",
2337
2959
  },
2338
2960
  {
2339
2961
  type: "number_input",
2340
2962
  label: "Android TV Font Size",
2341
2963
  key: "android_tv_audio_player_summary_font_size",
2342
- initial_value: 25,
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)",
2979
+ },
2980
+ {
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: "",
2987
+ },
2988
+ {
2989
+ type: "text_input",
2990
+ label: "Item Image Key",
2991
+ key: "audio_player_artwork_image_key",
2992
+ label_tooltip:
2993
+ "Define the key used to fetch the item’s image. If left empty, a default image will be shown.",
2994
+ initial_value: "image_base",
2995
+ },
2996
+ {
2997
+ key: "audio_player_artwork_border_radius",
2998
+ label: "Item Image Corner Radius",
2999
+ label_tooltip:
3000
+ "Set the corner radius (in pixels) for item images. Leave empty for sharp corners (0px).",
3001
+ type: "number_input",
3002
+ initial_value: 16,
2343
3003
  },
2344
3004
  ]
2345
3005
  ),
@@ -2352,7 +3012,7 @@ function getPlayerConfiguration({ platform }) {
2352
3012
  type: "lg_tv_font_selector",
2353
3013
  label: "LG Font Family",
2354
3014
  key: "lg_tv_player_time_font_family",
2355
- initial_value: "Museo-Bold",
3015
+ initial_value: "Ubuntu-Medium",
2356
3016
  },
2357
3017
  {
2358
3018
  type: "number_input",
@@ -2364,7 +3024,7 @@ function getPlayerConfiguration({ platform }) {
2364
3024
  type: "samsung_font_selector",
2365
3025
  label: "Samsung Font Family",
2366
3026
  key: "samsung_tv_player_time_font_family",
2367
- initial_value: "SamsungOne-800",
3027
+ initial_value: "Ubuntu-Medium",
2368
3028
  },
2369
3029
  {
2370
3030
  type: "number_input",
@@ -2375,12 +3035,12 @@ function getPlayerConfiguration({ platform }) {
2375
3035
  {
2376
3036
  type: "vizio_font_selector",
2377
3037
  label: "Vizio Font Family",
2378
- key: "vizio_player_time_font_family",
2379
- initial_value: "Ubuntu-Bold",
3038
+ key: "vizio_tv_player_time_font_family",
3039
+ initial_value: "Ubuntu-Medium",
2380
3040
  },
2381
3041
  {
2382
3042
  type: "number_input",
2383
- label: "Vizio Font Size",
3043
+ label: "vizio Font Size",
2384
3044
  key: "vizio_player_time_font_size",
2385
3045
  initial_value: 20,
2386
3046
  },
@@ -2388,7 +3048,7 @@ function getPlayerConfiguration({ platform }) {
2388
3048
  type: "android_font_selector",
2389
3049
  label: "Android TV Font Family",
2390
3050
  key: "android_tv_player_time_font_family",
2391
- initial_value: "Roboto-Bold",
3051
+ initial_value: "Ubuntu-Medium",
2392
3052
  },
2393
3053
  {
2394
3054
  type: "number_input",
@@ -2400,7 +3060,7 @@ function getPlayerConfiguration({ platform }) {
2400
3060
  type: "android_font_selector",
2401
3061
  label: "Fire TV Font Family",
2402
3062
  key: "amazon_player_time_font_family",
2403
- initial_value: "Roboto-Bold",
3063
+ initial_value: "Ubuntu-Medium",
2404
3064
  },
2405
3065
  {
2406
3066
  type: "number_input",
@@ -2419,7 +3079,7 @@ function getPlayerConfiguration({ platform }) {
2419
3079
  type: "lg_tv_font_selector",
2420
3080
  label: "LG Font Family",
2421
3081
  key: "lg_tv_audio_player_run_time_font_family",
2422
- initial_value: "Museo-Bold",
3082
+ initial_value: "Ubuntu-Medium",
2423
3083
  },
2424
3084
  {
2425
3085
  type: "number_input",
@@ -2431,7 +3091,7 @@ function getPlayerConfiguration({ platform }) {
2431
3091
  type: "samsung_font_selector",
2432
3092
  label: "Samsung Font Family",
2433
3093
  key: "samsung_tv_audio_player_run_time_font_family",
2434
- initial_value: "SamsungOne-800",
3094
+ initial_value: "Ubuntu-Medium",
2435
3095
  },
2436
3096
  {
2437
3097
  type: "number_input",
@@ -2443,7 +3103,7 @@ function getPlayerConfiguration({ platform }) {
2443
3103
  type: "vizio_font_selector",
2444
3104
  label: "Vizio Font Family",
2445
3105
  key: "vizio_audio_player_run_time_font_family",
2446
- initial_value: "Ubuntu-Bold",
3106
+ initial_value: "Ubuntu-Medium",
2447
3107
  },
2448
3108
  {
2449
3109
  type: "number_input",
@@ -2455,7 +3115,7 @@ function getPlayerConfiguration({ platform }) {
2455
3115
  type: "tvos_font_selector",
2456
3116
  label: "tvOS Font Family",
2457
3117
  key: "tv_os_audio_player_run_time_font_family",
2458
- initial_value: "SFProText-Medium",
3118
+ initial_value: "Ubuntu-Medium",
2459
3119
  },
2460
3120
  {
2461
3121
  type: "number_input",
@@ -2467,13 +3127,13 @@ function getPlayerConfiguration({ platform }) {
2467
3127
  type: "android_font_selector",
2468
3128
  label: "Android TV Font Family",
2469
3129
  key: "android_tv_audio_player_run_time_font_family",
2470
- initial_value: "Roboto-Medium",
3130
+ initial_value: "Ubuntu-Medium",
2471
3131
  },
2472
3132
  {
2473
3133
  type: "number_input",
2474
3134
  label: "Android TV Font Size",
2475
3135
  key: "android_tv_audio_player_run_time_font_size",
2476
- initial_value: 25,
3136
+ initial_value: 20,
2477
3137
  },
2478
3138
  ]
2479
3139
  ),
@@ -2489,7 +3149,7 @@ function getPlayerConfiguration({ platform }) {
2489
3149
  type: "color_picker_rgba",
2490
3150
  label: "Background color",
2491
3151
  key: "button_background_color",
2492
- initial_value: "rgba(255, 255, 255, 0)",
3152
+ initial_value: "rgba(0, 0, 0, 0)",
2493
3153
  },
2494
3154
  {
2495
3155
  type: "color_picker_rgba",
@@ -2501,7 +3161,7 @@ function getPlayerConfiguration({ platform }) {
2501
3161
  type: "color_picker_rgba",
2502
3162
  label: "Focused background color",
2503
3163
  key: "button_focused_background_color",
2504
- initial_value: "rgba(239, 239, 239, 1)",
3164
+ initial_value: "rgba(0, 0, 0, 0)",
2505
3165
  },
2506
3166
  ]),
2507
3167
  // Player progress bar
@@ -2510,70 +3170,433 @@ function getPlayerConfiguration({ platform }) {
2510
3170
  type: "color_picker_rgba",
2511
3171
  label: "Background color",
2512
3172
  key: "progress_bar_background_color",
2513
- initial_value: "rgba(239, 239, 239, 1)",
3173
+ initial_value: "rgba(254, 20, 72, 1)",
2514
3174
  },
2515
3175
  ])
2516
3176
  );
2517
3177
  }
2518
3178
 
2519
- // ---- Audio player background - TV & mobile ---- //
3179
+ // ---- Audio player (mobile) ---- //
2520
3180
 
2521
- styles.fields.push(
2522
- fieldsGroup(
2523
- "Audio Player",
2524
- "This section allows you to configure the audio player layout",
2525
- [
2526
- {
2527
- key: "audio_player_background_color",
2528
- label: "Audio player background color",
2529
- type: "colorpicker",
2530
- initial_value: "#00000066",
2531
- },
2532
- {
2533
- key: "audio_player_title_color",
2534
- label: "Audio player title color",
2535
- type: "colorpicker",
2536
- initial_value: "#efefefcc",
2537
- },
2538
- {
2539
- key: "audio_player_summary_color",
2540
- label: "Audio player summary color",
2541
- type: "colorpicker",
2542
- initial_value: "#efefefcc",
2543
- },
2544
- {
2545
- key: "audio_player_background_image",
2546
- type: "uploader",
2547
- default: "https://i.imgur.com/USTctfL.png",
2548
- },
2549
- {
2550
- key: "audio_player_artwork_aspect_ratio",
2551
- label: "Audio Player Artwork Aspect Ratio",
2552
- initial_value: "16:9",
2553
- type: "dropdown",
2554
- options: ["1:1", "4:3", "16:9", ""],
2555
- multiple: false,
2556
- label_tooltip: "Choose the default aspect ratio for the artwork",
2557
- },
2558
- {
2559
- key: "audio_player_artwork_border_radius",
2560
- label: "Audio Player Artwork Corner Radius",
2561
- type: "number_input",
2562
- initial_value: 16,
2563
- },
2564
- ]
2565
- )
2566
- );
3181
+ if (isMobile(platform)) {
3182
+ styles.fields.push(
3183
+ fieldsGroup(
3184
+ "Audio Player",
3185
+ "This section allows you to configure the audio player layout",
3186
+ [
3187
+ {
3188
+ key: "full_screen_audio_player",
3189
+ label: "Use audio player layout",
3190
+ initial_value: true,
3191
+ type: "switch",
3192
+ label_tooltip:
3193
+ "When disabled, audio playback will be shown in the video player layout instead",
3194
+ },
3195
+ {
3196
+ type: "text_input",
3197
+ label: "Image key",
3198
+ key: "audio_player_image_key",
3199
+ label_tooltip:
3200
+ "Specify a key where we could find the image in your entry",
3201
+ initial_value: "image_base",
3202
+ },
3203
+ {
3204
+ key: "audio_player_background_image",
3205
+ label: "Static image",
3206
+ label_tooltip:
3207
+ "If no image key is configured, or no image is found in the feed — this static image will be used instead.",
3208
+ type: "uploader",
3209
+ default: "",
3210
+ },
3211
+ {
3212
+ key: "audio_player_artwork_border_radius",
3213
+ label_tooltip:
3214
+ "Adjust the corner radius of the artwork image in the audio player",
3215
+ label: "Image Corner Radius",
3216
+ type: "number_input",
3217
+ initial_value: 16,
3218
+ rules: "conditional",
3219
+ conditional_fields: [
3220
+ {
3221
+ key: "styles/full_screen_audio_player",
3222
+ condition_value: true,
3223
+ },
3224
+ ],
3225
+ },
3226
+ {
3227
+ key: "audio_player_artwork_shadow_enabled",
3228
+ label: "Image Shadow Enabled",
3229
+ type: "switch",
3230
+ initial_value: true,
3231
+ rules: "conditional",
3232
+ conditional_fields: [
3233
+ {
3234
+ key: "styles/full_screen_audio_player",
3235
+ condition_value: true,
3236
+ },
3237
+ ],
3238
+ },
3239
+ ]
3240
+ )
3241
+ );
3242
+ }
3243
+
3244
+ if (isTV(platform)) {
3245
+ general.fields.push(
3246
+ fieldsGroup(
3247
+ "Samsung and LG TV only",
3248
+ "This section allows you to configure advanced settings for Samsung and LG TV",
3249
+ [
3250
+ {
3251
+ key: "use_legacy_player",
3252
+ label: "Use Enhanced Player",
3253
+ initial_value: true,
3254
+ type: "switch",
3255
+ label_tooltip:
3256
+ "When this option is enabled, the app will use the web optimized / enhanced player on LG, Samsung, and the browser",
3257
+ },
3258
+ {
3259
+ key: "limit_video_resolution",
3260
+ label: "Limit Video Resolution For Old LG/Samsung TVs",
3261
+ initial_value: false,
3262
+ type: "switch",
3263
+ label_tooltip:
3264
+ "The player will use 1280x720 resolution and lower for old LG/Samsung TVs(2021 and lower) to avoid player buffering issue",
3265
+ },
3266
+ {
3267
+ key: "show_debug_overlay",
3268
+ label: "Show Debug Overlay",
3269
+ initial_value: false,
3270
+ type: "switch",
3271
+ label_tooltip:
3272
+ "When this option is enabled, you will have an overlay showing some important stats about the player and content",
3273
+ },
3274
+ {
3275
+ key: "force_recovery_in_unknown_errors",
3276
+ label: "Force Recovery On Unknown Errors",
3277
+ initial_value: false,
3278
+ type: "switch",
3279
+ label_tooltip:
3280
+ "When this option is enabled, player will try to recover from unknown errors by reloading the player",
3281
+ },
3282
+ {
3283
+ key: "advanced_player_config",
3284
+ label: "Advanced Player Configuration",
3285
+ type: "text_input",
3286
+ multiline: true,
3287
+ initial_value:
3288
+ "{ html5: { vhs: { limitRenditionByPlayerDimensions: true } } }",
3289
+ label_tooltip:
3290
+ "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/",
3291
+ },
3292
+ {
3293
+ key: "use_dashjs_player",
3294
+ label: "Use Enhanced Player for DASH streams",
3295
+ initial_value: true,
3296
+ type: "switch",
3297
+ label_tooltip:
3298
+ "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",
3299
+ },
3300
+ {
3301
+ key: "use_hlsjs_player",
3302
+ label: "Use Enhanced Player for HLS streams",
3303
+ initial_value: false,
3304
+ type: "switch",
3305
+ label_tooltip:
3306
+ "When this option is enabled, the app will use the hls.js player for HLS streams on LG / Samsung TV and in the browser",
3307
+ },
3308
+ {
3309
+ key: "use_hlsjs_subtitles",
3310
+ label: "Use HLS JS subtitles",
3311
+ initial_value: false,
3312
+ type: "switch",
3313
+ label_tooltip:
3314
+ "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",
3315
+ rules: "conditional",
3316
+ conditional_fields: [
3317
+ {
3318
+ key: "general/use_hlsjs_player",
3319
+ condition_value: true,
3320
+ },
3321
+ ],
3322
+ },
3323
+ ]
3324
+ ),
3325
+ fieldsGroup(
3326
+ "Audio Tracks",
3327
+ "This section allows you to configure default audio track behavior for videos with multiple audio tracks",
3328
+ audioTracksSettings
3329
+ ),
3330
+ fieldsGroup("Legacy configuration", "", audioPlayer)
3331
+ );
3332
+ }
3333
+
3334
+ if (isMobile(platform)) {
3335
+ styles.fields.push(
3336
+ fieldsGroup(
3337
+ "Skip Button",
3338
+ "This section allows you to configure the skip button styles",
3339
+ [
3340
+ {
3341
+ type: "switch",
3342
+ key: "skip_button_enabled",
3343
+ label_tooltip: "Enables Skip button on the player.",
3344
+ label: "Enable",
3345
+ initial_value: true,
3346
+ },
3347
+ {
3348
+ type: "switch",
3349
+ key: "skip_button_persistent",
3350
+ label_tooltip:
3351
+ "Show skip button always if enabled, otherwise show only when the user taps on the screen.",
3352
+ label: "Persistent Button Toggle",
3353
+ initial_value: true,
3354
+ },
3355
+ {
3356
+ type: "color_picker_rgba",
3357
+ label_tooltip: "",
3358
+ label: "Background Color",
3359
+ key: "skip_button_style_button_background_color",
3360
+ initial_value: "rgba(0, 0, 0, 0.3)",
3361
+ },
3362
+ {
3363
+ type: "color_picker_rgba",
3364
+ label_tooltip: "",
3365
+ label: "Background Color Pressed",
3366
+ key: "skip_button_style_button_pressed_background_color",
3367
+ initial_value: "rgba(0, 0, 0, 0.3)",
3368
+ },
3369
+ {
3370
+ type: "number_input",
3371
+ label_tooltip: "",
3372
+ label: "Border Width",
3373
+ key: "skip_button_style_button_border_width",
3374
+ initial_value: 1.5,
3375
+ },
3376
+ {
3377
+ type: "color_picker_rgba",
3378
+ label_tooltip: "",
3379
+ label: "Border Color",
3380
+ key: "skip_button_style_button_border_color",
3381
+ initial_value: "rgba(255, 255, 255, 1)",
3382
+ },
3383
+ {
3384
+ type: "color_picker_rgba",
3385
+ label_tooltip: "",
3386
+ label: "Border Color Pressed",
3387
+ key: "skip_button_style_button_pressed_border_color",
3388
+ initial_value: "rgba(255, 255, 255, 0.5)",
3389
+ },
3390
+ {
3391
+ type: "number_input",
3392
+ label_tooltip: "",
3393
+ label: "Corner Radius",
3394
+ key: "skip_button_style_button_border_radius",
3395
+ initial_value: 4,
3396
+ },
3397
+ {
3398
+ type: "number_input",
3399
+ label_tooltip: "",
3400
+ label: "Margin Top",
3401
+ key: "skip_button_style_button_margin_top",
3402
+ initial_value: 0,
3403
+ },
3404
+ {
3405
+ type: "number_input",
3406
+ label_tooltip: "",
3407
+ label: "Margin Right",
3408
+ key: "skip_button_style_button_margin_right",
3409
+ initial_value: 8,
3410
+ },
3411
+ {
3412
+ type: "number_input",
3413
+ label_tooltip: "",
3414
+ label: "Margin Bottom",
3415
+ key: "skip_button_style_button_margin_bottom",
3416
+ initial_value: 0,
3417
+ },
3418
+ {
3419
+ type: "number_input",
3420
+ label_tooltip: "",
3421
+ label: "Margin Left",
3422
+ key: "skip_button_style_button_margin_left",
3423
+ initial_value: 0,
3424
+ },
3425
+ {
3426
+ type: "android_font_selector",
3427
+ label_tooltip: "",
3428
+ label: "Android Font Family",
3429
+ key: "skip_button_style_text_android_font_family",
3430
+ initial_value: "Roboto-Medium",
3431
+ },
3432
+ {
3433
+ type: "number_input",
3434
+ label_tooltip: "",
3435
+ label: "Android Font Size",
3436
+ key: "skip_button_style_text_android_font_size",
3437
+ initial_value: 12,
3438
+ },
3439
+ {
3440
+ type: "number_input",
3441
+ label_tooltip: "",
3442
+ label: "Android Letter Spacing",
3443
+ key: "skip_button_style_text_android_letter_spacing",
3444
+ initial_value: 0,
3445
+ },
3446
+ {
3447
+ type: "number_input",
3448
+ label_tooltip: "",
3449
+ label: "Android Line Height",
3450
+ key: "skip_button_style_text_android_line_height",
3451
+ initial_value: 20,
3452
+ },
3453
+ {
3454
+ type: "ios_font_selector",
3455
+ label_tooltip: "",
3456
+ label: "iOS Font Family",
3457
+ key: "skip_button_style_text_ios_font_family",
3458
+ initial_value: "SFProText-Semibold",
3459
+ },
3460
+ {
3461
+ type: "number_input",
3462
+ label_tooltip: "",
3463
+ label: "iOS Font Size",
3464
+ key: "skip_button_style_text_ios_font_size",
3465
+ initial_value: 12,
3466
+ },
3467
+ {
3468
+ type: "number_input",
3469
+ label_tooltip: "",
3470
+ label: "iOS Letter Spacing",
3471
+ key: "skip_button_style_text_ios_letter_spacing",
3472
+ initial_value: -0.2,
3473
+ },
3474
+ {
3475
+ type: "number_input",
3476
+ label_tooltip: "",
3477
+ label: "iOS Line Height",
3478
+ key: "skip_button_style_text_ios_line_height",
3479
+ initial_value: 20,
3480
+ },
3481
+ {
3482
+ type: "color_picker_rgba",
3483
+ label_tooltip: "",
3484
+ label: "Font Color",
3485
+ key: "skip_button_style_text_color",
3486
+ initial_value: "rgba(255, 255, 255, 1)",
3487
+ },
3488
+ {
3489
+ type: "color_picker_rgba",
3490
+ label_tooltip: "",
3491
+ label: "Font Color Pressed",
3492
+ key: "skip_button_style_text_pressed_color",
3493
+ initial_value: "rgba(255, 255, 255, 0.5)",
3494
+ },
3495
+ {
3496
+ type: "select",
3497
+ options: [
3498
+ {
3499
+ text: "None",
3500
+ value: "none",
3501
+ },
3502
+ {
3503
+ text: "Uppercase",
3504
+ value: "uppercase",
3505
+ },
3506
+ {
3507
+ text: "Lowercase",
3508
+ value: "lowercase",
3509
+ },
3510
+ {
3511
+ text: "Capitalize",
3512
+ value: "capitalize",
3513
+ },
3514
+ ],
3515
+ label: "Text Transform",
3516
+ key: "skip_button_style_text_text_transform",
3517
+ initial_value: "none",
3518
+ },
3519
+ {
3520
+ type: "number_input",
3521
+ label_tooltip: "",
3522
+ label: "Padding Top",
3523
+ key: "skip_button_style_text_padding_top",
3524
+ initial_value: 7,
3525
+ },
3526
+ {
3527
+ type: "number_input",
3528
+ label_tooltip: "",
3529
+ label: "Padding Right",
3530
+ key: "skip_button_style_text_padding_right",
3531
+ initial_value: 10,
3532
+ },
3533
+ {
3534
+ type: "number_input",
3535
+ label_tooltip: "",
3536
+ label: "Padding Bottom",
3537
+ key: "skip_button_style_text_padding_bottom",
3538
+ initial_value: 7,
3539
+ },
3540
+ {
3541
+ type: "number_input",
3542
+ label_tooltip: "",
3543
+ label: "Padding Left",
3544
+ key: "skip_button_style_text_padding_left",
3545
+ initial_value: 10,
3546
+ },
3547
+ ]
3548
+ )
3549
+ );
3550
+ }
2567
3551
 
2568
- return {
3552
+ const customConfigurationWarning = {
3553
+ label:
3554
+ "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.",
3555
+ type: "link",
3556
+ };
3557
+
3558
+ const manifest = {
2569
3559
  styles,
2570
3560
  general,
2571
3561
  localizations,
2572
- custom_configuration_fields: remapConditionalFieldsForPluginGallery(
2573
- ...styles.fields,
2574
- ...general.fields
2575
- ),
3562
+ custom_configuration_fields: [
3563
+ customConfigurationWarning,
3564
+ ...remapConditionalFieldsForPluginGallery(
3565
+ ...styles.fields,
3566
+ ...general.fields
3567
+ ),
3568
+ ],
2576
3569
  };
3570
+
3571
+ if (platform.includes("android") || platform.includes("amazon")) {
3572
+ manifest.npm_dependencies = [
3573
+ `@applicaster/zapp-react-native-default-player@${version}`,
3574
+ ];
3575
+
3576
+ manifest.project_dependencies = [
3577
+ {
3578
+ "zapp-react-native-default-player":
3579
+ "node_modules/@applicaster/zapp-react-native-default-player/android",
3580
+ },
3581
+ ];
3582
+
3583
+ manifest.extra_dependencies = [];
3584
+ }
3585
+
3586
+ if (platform.includes("ios") || platform.includes("tvos")) {
3587
+ manifest.npm_dependencies = [
3588
+ `@applicaster/zapp-react-native-default-player@${version}`,
3589
+ ];
3590
+
3591
+ manifest.extra_dependencies = [
3592
+ {
3593
+ DefaultPlayer:
3594
+ ":path =\u003e './node_modules/@applicaster/zapp-react-native-default-player/apple/DefaultPlayer.podspec'",
3595
+ },
3596
+ ];
3597
+ }
3598
+
3599
+ return manifest;
2577
3600
  }
2578
3601
 
2579
3602
  const player = (options) => getPlayerConfiguration(options);