@applicaster/zapp-react-native-utils 14.0.0-rc.5 → 14.0.0-rc.51

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 (94) hide show
  1. package/actionsExecutor/ActionExecutorContext.tsx +1 -1
  2. package/analyticsUtils/AnalyticsEvents/helper.ts +81 -0
  3. package/analyticsUtils/AnalyticsEvents/sendHeaderClickEvent.ts +1 -1
  4. package/analyticsUtils/AnalyticsEvents/sendMenuClickEvent.ts +2 -1
  5. package/analyticsUtils/AnalyticsEvents/sendOnClickEvent.ts +14 -4
  6. package/analyticsUtils/__tests__/analyticsUtils.test.js +14 -0
  7. package/analyticsUtils/events.ts +8 -0
  8. package/analyticsUtils/index.tsx +3 -4
  9. package/analyticsUtils/manager.ts +1 -1
  10. package/appUtils/HooksManager/Hook.ts +4 -4
  11. package/appUtils/HooksManager/index.ts +11 -1
  12. package/appUtils/accessibilityManager/index.ts +7 -4
  13. package/appUtils/focusManager/__tests__/__snapshots__/focusManager.test.js.snap +5 -0
  14. package/appUtils/focusManager/__tests__/focusManager.test.js +1 -1
  15. package/appUtils/focusManager/index.ios.ts +10 -0
  16. package/appUtils/focusManager/index.ts +82 -11
  17. package/appUtils/focusManager/treeDataStructure/Tree/index.js +1 -1
  18. package/appUtils/focusManagerAux/utils/index.ts +106 -3
  19. package/appUtils/playerManager/OverlayObserver/OverlaysObserver.ts +0 -15
  20. package/appUtils/playerManager/useChapterMarker.tsx +0 -1
  21. package/appUtils/playerManager/usePlayerControllerSetup.tsx +16 -0
  22. package/arrayUtils/__tests__/isEmptyArray.test.ts +63 -0
  23. package/arrayUtils/__tests__/isFilledArray.test.ts +1 -1
  24. package/arrayUtils/index.ts +8 -3
  25. package/audioPlayerUtils/__tests__/getArtworkImage.test.ts +144 -0
  26. package/audioPlayerUtils/__tests__/getBackgroundImage.test.ts +72 -0
  27. package/audioPlayerUtils/__tests__/getImageFromEntry.test.ts +110 -0
  28. package/audioPlayerUtils/assets/index.ts +2 -0
  29. package/audioPlayerUtils/index.ts +242 -0
  30. package/componentsUtils/__tests__/isTabsScreen.test.ts +38 -0
  31. package/componentsUtils/index.ts +4 -1
  32. package/conf/player/__tests__/selectors.test.ts +34 -0
  33. package/conf/player/selectors.ts +10 -0
  34. package/configurationUtils/__tests__/configurationUtils.test.js +0 -31
  35. package/configurationUtils/__tests__/getMediaItems.test.ts +65 -0
  36. package/configurationUtils/__tests__/imageSrcFromMediaItem.test.ts +34 -0
  37. package/configurationUtils/__tests__/manifestKeyParser.test.ts +546 -0
  38. package/configurationUtils/index.ts +63 -34
  39. package/configurationUtils/manifestKeyParser.ts +57 -32
  40. package/focusManager/FocusManager.ts +26 -16
  41. package/focusManager/Tree.ts +25 -21
  42. package/focusManager/__tests__/FocusManager.test.ts +50 -8
  43. package/index.d.ts +0 -9
  44. package/manifestUtils/_internals/getDefaultConfiguration.js +28 -0
  45. package/manifestUtils/{_internals.js → _internals/index.js} +2 -25
  46. package/manifestUtils/createConfig.js +4 -1
  47. package/manifestUtils/defaultManifestConfigurations/player.js +1239 -200
  48. package/manifestUtils/progressBar/__tests__/mobileProgressBar.test.js +0 -30
  49. package/manifestUtils/sharedConfiguration/screenPicker/stylesFields.js +1 -2
  50. package/navigationUtils/__tests__/mapContentTypesToRivers.test.ts +130 -0
  51. package/navigationUtils/index.ts +6 -4
  52. package/package.json +2 -3
  53. package/playerUtils/__tests__/configurationUtils.test.ts +1 -65
  54. package/playerUtils/__tests__/getPlayerActionButtons.test.ts +54 -0
  55. package/playerUtils/_internals/__tests__/utils.test.ts +71 -0
  56. package/playerUtils/_internals/index.ts +1 -0
  57. package/playerUtils/_internals/utils.ts +31 -0
  58. package/playerUtils/configurationUtils.ts +0 -44
  59. package/playerUtils/getPlayerActionButtons.ts +17 -0
  60. package/playerUtils/index.ts +53 -0
  61. package/playerUtils/useValidatePlayerConfig.tsx +22 -19
  62. package/reactHooks/autoscrolling/__tests__/useTrackedView.test.tsx +15 -14
  63. package/reactHooks/debugging/__tests__/index.test.js +0 -1
  64. package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +39 -88
  65. package/reactHooks/feed/useBatchLoading.ts +11 -9
  66. package/reactHooks/feed/useFeedLoader.tsx +12 -8
  67. package/reactHooks/feed/usePipesCacheReset.ts +3 -3
  68. package/reactHooks/flatList/useSequentialRenderItem.tsx +3 -3
  69. package/reactHooks/layout/__tests__/index.test.tsx +3 -1
  70. package/reactHooks/layout/isTablet/index.ts +12 -5
  71. package/reactHooks/layout/useDimensions/__tests__/useDimensions.test.ts +34 -36
  72. package/reactHooks/layout/useDimensions/useDimensions.ts +2 -3
  73. package/reactHooks/layout/useLayoutVersion.ts +5 -5
  74. package/reactHooks/navigation/index.ts +7 -5
  75. package/reactHooks/navigation/useIsScreenActive.ts +9 -5
  76. package/reactHooks/resolvers/__tests__/useCellResolver.test.tsx +4 -0
  77. package/reactHooks/screen/useScreenContext.ts +1 -1
  78. package/reactHooks/state/__tests__/ZStoreProvider.test.tsx +2 -1
  79. package/reactHooks/state/index.ts +1 -1
  80. package/reactHooks/state/useHomeRiver.ts +4 -2
  81. package/reactHooks/state/useRivers.ts +7 -8
  82. package/riverComponetsMeasurementProvider/index.tsx +1 -1
  83. package/screenPickerUtils/index.ts +7 -0
  84. package/services/js2native.ts +1 -0
  85. package/testUtils/index.tsx +7 -8
  86. package/time/BackgroundTimer.ts +6 -4
  87. package/utils/__tests__/find.test.ts +36 -0
  88. package/utils/__tests__/pathOr.test.ts +37 -0
  89. package/utils/__tests__/startsWith.test.ts +30 -0
  90. package/utils/find.ts +3 -0
  91. package/utils/index.ts +24 -1
  92. package/utils/pathOr.ts +5 -0
  93. package/utils/startsWith.ts +9 -0
  94. 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,31 +2319,31 @@ 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
@@ -1752,7 +2361,7 @@ function getPlayerConfiguration({ platform }) {
1752
2361
  type: "lg_font_selector",
1753
2362
  label: "LG Font Family",
1754
2363
  key: "menu_header_lg_font_family",
1755
- initial_value: "Museo-Bold",
2364
+ initial_value: "Ubuntu-Bold",
1756
2365
  },
1757
2366
  {
1758
2367
  type: "number_input",
@@ -1776,7 +2385,7 @@ function getPlayerConfiguration({ platform }) {
1776
2385
  type: "samsung_font_selector",
1777
2386
  label: "Samsung Font Family",
1778
2387
  key: "menu_header_samsung_font_family",
1779
- initial_value: "SmsungOneUI-Bold",
2388
+ initial_value: "Ubuntu-Bold",
1780
2389
  },
1781
2390
  {
1782
2391
  type: "number_input",
@@ -1800,7 +2409,7 @@ function getPlayerConfiguration({ platform }) {
1800
2409
  type: "vizio_font_selector",
1801
2410
  label: "Vizio Font Family",
1802
2411
  key: "menu_header_vizio_font_family",
1803
- initial_value: "SmsungOneUI-Bold",
2412
+ initial_value: "Ubuntu-Bold",
1804
2413
  },
1805
2414
  {
1806
2415
  type: "number_input",
@@ -1855,7 +2464,7 @@ function getPlayerConfiguration({ platform }) {
1855
2464
  type: "lg_font_selector",
1856
2465
  label: "LG Font Family",
1857
2466
  key: "menu_item_lg_font_family",
1858
- initial_value: "Museo-Bold",
2467
+ initial_value: "Ubuntu-Medium",
1859
2468
  },
1860
2469
  {
1861
2470
  type: "number_input",
@@ -1879,7 +2488,7 @@ function getPlayerConfiguration({ platform }) {
1879
2488
  type: "samsung_font_selector",
1880
2489
  label: "Samsung Font Family",
1881
2490
  key: "menu_item_samsung_font_family",
1882
- initial_value: "SmsungOneUI-Bold",
2491
+ initial_value: "Ubuntu-Medium",
1883
2492
  },
1884
2493
  {
1885
2494
  type: "number_input",
@@ -1903,7 +2512,7 @@ function getPlayerConfiguration({ platform }) {
1903
2512
  type: "vizio_font_selector",
1904
2513
  label: "Vizio Font Family",
1905
2514
  key: "menu_item_vizio_font_family",
1906
- initial_value: "SmsungOneUI-Bold",
2515
+ initial_value: "Ubuntu-Medium",
1907
2516
  },
1908
2517
  {
1909
2518
  type: "number_input",
@@ -1964,7 +2573,7 @@ function getPlayerConfiguration({ platform }) {
1964
2573
  type: "number_input",
1965
2574
  label: "Border Thickness",
1966
2575
  key: "menu_item_border_thickness",
1967
- initial_value: 5,
2576
+ initial_value: 4,
1968
2577
  },
1969
2578
  ]
1970
2579
  ),
@@ -1986,8 +2595,17 @@ function getPlayerConfiguration({ platform }) {
1986
2595
 
1987
2596
  // ---- TV fields ---- //
1988
2597
 
1989
- if (getDevice(platform) === "tv") {
2598
+ if (isTV(platform)) {
1990
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
+ ]),
1991
2609
  // Scrub colors
1992
2610
  fieldsGroup(
1993
2611
  "Scrub bar",
@@ -1998,7 +2616,7 @@ function getPlayerConfiguration({ platform }) {
1998
2616
  key: "scrub_total",
1999
2617
  label: "Scrub bar color",
2000
2618
  type: "color_picker_rgba",
2001
- initial_value: "rgba(255, 255, 255, 0.35)",
2619
+ initial_value: "rgba(239, 239, 239, 0.35)",
2002
2620
  label_tooltip:
2003
2621
  "Select the bar color for the player's scrub / progress bar",
2004
2622
  },
@@ -2007,7 +2625,7 @@ function getPlayerConfiguration({ platform }) {
2007
2625
  key: "scrub_buffer",
2008
2626
  label: "Scrub bar buffer color",
2009
2627
  type: "color_picker_rgba",
2010
- initial_value: "rgba(255, 255, 255, 0.8)",
2628
+ initial_value: "rgba(239, 239, 239, 0.65)",
2011
2629
  label_tooltip:
2012
2630
  "Select the buffer bar color for the player's scrub / progress bar",
2013
2631
  },
@@ -2016,7 +2634,7 @@ function getPlayerConfiguration({ platform }) {
2016
2634
  key: "scrub_progress",
2017
2635
  label: "Scrub bar progress color",
2018
2636
  type: "color_picker_rgba",
2019
- initial_value: "rgba(4, 207, 153, 1)",
2637
+ initial_value: "rgba(254, 20, 72, 1)",
2020
2638
  label_tooltip:
2021
2639
  "Select the progress bar color for the player's scrub / progress bar",
2022
2640
  },
@@ -2025,7 +2643,7 @@ function getPlayerConfiguration({ platform }) {
2025
2643
  key: "scrub_handle",
2026
2644
  label: "Scrub bar handle color",
2027
2645
  type: "color_picker_rgba",
2028
- initial_value: "rgba(255, 255, 255, 1)",
2646
+ initial_value: "rgba(239, 239, 239, 1)",
2029
2647
  label_tooltip:
2030
2648
  "Select the bar handle / marker color for the player's scrub / progress bar",
2031
2649
  },
@@ -2046,25 +2664,25 @@ function getPlayerConfiguration({ platform }) {
2046
2664
  type: "lg_tv_font_selector",
2047
2665
  label: "LG Font Family",
2048
2666
  key: "lg_tv_video_player_title_font_family",
2049
- initial_value: "Museo-Bold",
2667
+ initial_value: "Ubuntu-Bold",
2050
2668
  },
2051
2669
  {
2052
2670
  type: "number_input",
2053
2671
  label: "LG Font Size",
2054
2672
  key: "lg_tv_video_player_title_font_size",
2055
- initial_value: 64,
2673
+ initial_value: 58,
2056
2674
  },
2057
2675
  {
2058
2676
  type: "samsung_font_selector",
2059
2677
  label: "Samsung Font Family",
2060
2678
  key: "samsung_tv_video_player_title_font_family",
2061
- initial_value: "SamsungOne-800",
2679
+ initial_value: "Ubuntu-Bold",
2062
2680
  },
2063
2681
  {
2064
2682
  type: "number_input",
2065
2683
  label: "Samsung Font Size",
2066
2684
  key: "samsung_tv_video_player_title_font_size",
2067
- initial_value: 64,
2685
+ initial_value: 58,
2068
2686
  },
2069
2687
  {
2070
2688
  type: "vizio_font_selector",
@@ -2076,43 +2694,43 @@ function getPlayerConfiguration({ platform }) {
2076
2694
  type: "number_input",
2077
2695
  label: "Vizio Font Size",
2078
2696
  key: "vizio_video_player_title_font_size",
2079
- initial_value: 64,
2697
+ initial_value: 58,
2080
2698
  },
2081
2699
  {
2082
2700
  type: "tvos_font_selector",
2083
2701
  label: "tvOS Font Family",
2084
2702
  key: "tv_os_video_player_title_font_family",
2085
- initial_value: "SFProText-Medium",
2703
+ initial_value: "Ubuntu-Bold",
2086
2704
  },
2087
2705
  {
2088
2706
  type: "number_input",
2089
2707
  label: "tvOS Font Size",
2090
2708
  key: "tv_os_video_player_title_font_size",
2091
- initial_value: 48,
2709
+ initial_value: 58,
2092
2710
  },
2093
2711
  {
2094
2712
  type: "android_font_selector",
2095
2713
  label: "Android TV Font Family",
2096
2714
  key: "android_tv_video_player_title_font_family",
2097
- initial_value: "Roboto-Bold",
2098
- },
2099
- {
2100
- type: "android_font_selector",
2101
- label: "Fire TV Font Family",
2102
- key: "amazon_video_player_title_font_family",
2103
- initial_value: "Roboto-Bold",
2715
+ initial_value: "Ubuntu-Bold",
2104
2716
  },
2105
2717
  {
2106
2718
  type: "number_input",
2107
2719
  label: "Android TV Font Size",
2108
2720
  key: "android_tv_video_player_title_font_size",
2109
- 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",
2110
2728
  },
2111
2729
  {
2112
2730
  type: "number_input",
2113
2731
  label: "Fire TV Font Size",
2114
2732
  key: "amazon_video_player_title_font_size",
2115
- initial_value: 50,
2733
+ initial_value: 58,
2116
2734
  },
2117
2735
  ]
2118
2736
  ),
@@ -2131,7 +2749,7 @@ function getPlayerConfiguration({ platform }) {
2131
2749
  type: "lg_tv_font_selector",
2132
2750
  label: "LG Font Family",
2133
2751
  key: "lg_tv_video_player_summary_font_family",
2134
- initial_value: "Museo-Bold",
2752
+ initial_value: "Ubuntu-Medium",
2135
2753
  },
2136
2754
  {
2137
2755
  type: "number_input",
@@ -2143,7 +2761,7 @@ function getPlayerConfiguration({ platform }) {
2143
2761
  type: "samsung_font_selector",
2144
2762
  label: "Samsung Font Family",
2145
2763
  key: "samsung_tv_video_player_summary_font_family",
2146
- initial_value: "SamsungOne-800",
2764
+ initial_value: "Ubuntu-Medium",
2147
2765
  },
2148
2766
  {
2149
2767
  type: "number_input",
@@ -2155,7 +2773,7 @@ function getPlayerConfiguration({ platform }) {
2155
2773
  type: "vizio_font_selector",
2156
2774
  label: "Vizio Font Family",
2157
2775
  key: "vizio_video_player_summary_font_family",
2158
- initial_value: "Ubuntu-Bold",
2776
+ initial_value: "Ubuntu-Medium",
2159
2777
  },
2160
2778
  {
2161
2779
  type: "number_input",
@@ -2167,37 +2785,37 @@ function getPlayerConfiguration({ platform }) {
2167
2785
  type: "tvos_font_selector",
2168
2786
  label: "tvOS Font Family",
2169
2787
  key: "tv_os_video_player_summary_font_family",
2170
- initial_value: "SFProText-Medium",
2788
+ initial_value: "Ubuntu-Medium",
2171
2789
  },
2172
2790
  {
2173
2791
  type: "number_input",
2174
2792
  label: "tvOS Font Size",
2175
2793
  key: "tv_os_video_player_summary_font_size",
2176
- initial_value: 24,
2794
+ initial_value: 30,
2177
2795
  },
2178
2796
  {
2179
2797
  type: "android_font_selector",
2180
2798
  label: "Android TV Font Family",
2181
2799
  key: "android_tv_video_player_summary_font_family",
2182
- initial_value: "Roboto-Medium",
2183
- },
2184
- {
2185
- type: "android_font_selector",
2186
- label: "Fire TV Font Family",
2187
- key: "amazon_video_player_summary_font_family",
2188
- initial_value: "Roboto-Medium",
2800
+ initial_value: "Ubuntu-Medium",
2189
2801
  },
2190
2802
  {
2191
2803
  type: "number_input",
2192
2804
  label: "Android TV Font Size",
2193
2805
  key: "android_tv_video_player_summary_font_size",
2194
- 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",
2195
2813
  },
2196
2814
  {
2197
2815
  type: "number_input",
2198
2816
  label: "Fire TV Font Size",
2199
2817
  key: "amazon_video_player_summary_font_size",
2200
- initial_value: 25,
2818
+ initial_value: 30,
2201
2819
  },
2202
2820
  ]
2203
2821
  ),
@@ -2206,65 +2824,71 @@ function getPlayerConfiguration({ platform }) {
2206
2824
  "Audio Player - Title Text",
2207
2825
  "Audio Player Title Text Label Styles",
2208
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
+ },
2209
2833
  {
2210
2834
  type: "lg_tv_font_selector",
2211
2835
  label: "LG Font Family",
2212
2836
  key: "lg_tv_audio_player_title_font_family",
2213
- initial_value: "Museo-Bold",
2837
+ initial_value: "Ubuntu-Bold",
2214
2838
  },
2215
2839
  {
2216
2840
  type: "number_input",
2217
2841
  label: "LG Font Size",
2218
2842
  key: "lg_tv_audio_player_title_font_size",
2219
- initial_value: 38,
2843
+ initial_value: 40,
2220
2844
  },
2221
2845
  {
2222
2846
  type: "samsung_font_selector",
2223
2847
  label: "Samsung Font Family",
2224
2848
  key: "samsung_tv_audio_player_title_font_family",
2225
- initial_value: "SamsungOne-800",
2849
+ initial_value: "Ubuntu-Bold",
2226
2850
  },
2227
2851
  {
2228
2852
  type: "number_input",
2229
2853
  label: "Samsung Font Size",
2230
2854
  key: "samsung_tv_audio_player_title_font_size",
2231
- initial_value: 38,
2855
+ initial_value: 40,
2232
2856
  },
2233
2857
  {
2234
2858
  type: "vizio_font_selector",
2235
2859
  label: "Vizio Font Family",
2236
- key: "vizio_tv_audio_player_title_font_family",
2860
+ key: "vizio_audio_player_title_font_family",
2237
2861
  initial_value: "Ubuntu-Bold",
2238
2862
  },
2239
2863
  {
2240
2864
  type: "number_input",
2241
2865
  label: "Vizio Font Size",
2242
2866
  key: "vizio_audio_player_title_font_size",
2243
- initial_value: 38,
2867
+ initial_value: 40,
2244
2868
  },
2245
2869
  {
2246
2870
  type: "tvos_font_selector",
2247
2871
  label: "tvOS Font Family",
2248
2872
  key: "tv_os_audio_player_title_font_family",
2249
- initial_value: "SFProText-Medium",
2873
+ initial_value: "Ubuntu-Bold",
2250
2874
  },
2251
2875
  {
2252
2876
  type: "number_input",
2253
2877
  label: "tvOS Font Size",
2254
2878
  key: "tv_os_audio_player_title_font_size",
2255
- initial_value: 38,
2879
+ initial_value: 40,
2256
2880
  },
2257
2881
  {
2258
2882
  type: "android_font_selector",
2259
2883
  label: "Android TV Font Family",
2260
2884
  key: "android_tv_audio_player_title_font_family",
2261
- initial_value: "Roboto-Bold",
2885
+ initial_value: "Ubuntu-Bold",
2262
2886
  },
2263
2887
  {
2264
2888
  type: "number_input",
2265
2889
  label: "Android TV Font Size",
2266
2890
  key: "android_tv_audio_player_title_font_size",
2267
- initial_value: 50,
2891
+ initial_value: 40,
2268
2892
  },
2269
2893
  ]
2270
2894
  ),
@@ -2273,65 +2897,117 @@ function getPlayerConfiguration({ platform }) {
2273
2897
  "Audio Player - Summary Text",
2274
2898
  "Audio Player Summary Text Label Styles",
2275
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
+ },
2276
2906
  {
2277
2907
  type: "lg_tv_font_selector",
2278
2908
  label: "LG Font Family",
2279
2909
  key: "lg_tv_audio_player_summary_font_family",
2280
- initial_value: "Museo-Bold",
2910
+ initial_value: "Ubuntu-Medium",
2281
2911
  },
2282
2912
  {
2283
2913
  type: "number_input",
2284
2914
  label: "LG Font Size",
2285
2915
  key: "lg_tv_audio_player_summary_font_size",
2286
- initial_value: 20,
2916
+ initial_value: 22,
2287
2917
  },
2288
2918
  {
2289
2919
  type: "samsung_font_selector",
2290
2920
  label: "Samsung Font Family",
2291
2921
  key: "samsung_tv_audio_player_summary_font_family",
2292
- initial_value: "SamsungOne-800",
2922
+ initial_value: "Ubuntu-Medium",
2293
2923
  },
2294
2924
  {
2295
2925
  type: "number_input",
2296
2926
  label: "Samsung Font Size",
2297
2927
  key: "samsung_tv_audio_player_summary_font_size",
2298
- initial_value: 20,
2928
+ initial_value: 22,
2299
2929
  },
2300
2930
  {
2301
2931
  type: "vizio_font_selector",
2302
2932
  label: "Vizio Font Family",
2303
2933
  key: "vizio_audio_player_summary_font_family",
2304
- initial_value: "Ubuntu-Bold",
2934
+ initial_value: "Ubuntu-Medium",
2305
2935
  },
2306
2936
  {
2307
2937
  type: "number_input",
2308
2938
  label: "Vizio Font Size",
2309
2939
  key: "vizio_audio_player_summary_font_size",
2310
- initial_value: 20,
2940
+ initial_value: 22,
2311
2941
  },
2312
2942
  {
2313
2943
  type: "tvos_font_selector",
2314
2944
  label: "tvOS Font Family",
2315
2945
  key: "tv_os_audio_player_summary_font_family",
2316
- initial_value: "SFProText-Medium",
2946
+ initial_value: "Ubuntu-Medium",
2317
2947
  },
2318
2948
  {
2319
2949
  type: "number_input",
2320
2950
  label: "tvOS Font Size",
2321
2951
  key: "tv_os_audio_player_summary_font_size",
2322
- initial_value: 20,
2952
+ initial_value: 22,
2323
2953
  },
2324
2954
  {
2325
2955
  type: "android_font_selector",
2326
2956
  label: "Android TV Font Family",
2327
2957
  key: "android_tv_audio_player_summary_font_family",
2328
- initial_value: "Roboto-Medium",
2958
+ initial_value: "Ubuntu-Medium",
2329
2959
  },
2330
2960
  {
2331
2961
  type: "number_input",
2332
2962
  label: "Android TV Font Size",
2333
2963
  key: "android_tv_audio_player_summary_font_size",
2334
- 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
+ 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)",
2995
+ },
2996
+ {
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",
3003
+ },
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).",
3009
+ type: "number_input",
3010
+ initial_value: 16,
2335
3011
  },
2336
3012
  ]
2337
3013
  ),
@@ -2344,7 +3020,7 @@ function getPlayerConfiguration({ platform }) {
2344
3020
  type: "lg_tv_font_selector",
2345
3021
  label: "LG Font Family",
2346
3022
  key: "lg_tv_player_time_font_family",
2347
- initial_value: "Museo-Bold",
3023
+ initial_value: "Ubuntu-Medium",
2348
3024
  },
2349
3025
  {
2350
3026
  type: "number_input",
@@ -2356,7 +3032,7 @@ function getPlayerConfiguration({ platform }) {
2356
3032
  type: "samsung_font_selector",
2357
3033
  label: "Samsung Font Family",
2358
3034
  key: "samsung_tv_player_time_font_family",
2359
- initial_value: "SamsungOne-800",
3035
+ initial_value: "Ubuntu-Medium",
2360
3036
  },
2361
3037
  {
2362
3038
  type: "number_input",
@@ -2367,12 +3043,12 @@ function getPlayerConfiguration({ platform }) {
2367
3043
  {
2368
3044
  type: "vizio_font_selector",
2369
3045
  label: "Vizio Font Family",
2370
- key: "vizio_player_time_font_family",
2371
- initial_value: "Ubuntu-Bold",
3046
+ key: "vizio_tv_player_time_font_family",
3047
+ initial_value: "Ubuntu-Medium",
2372
3048
  },
2373
3049
  {
2374
3050
  type: "number_input",
2375
- label: "Vizio Font Size",
3051
+ label: "vizio Font Size",
2376
3052
  key: "vizio_player_time_font_size",
2377
3053
  initial_value: 20,
2378
3054
  },
@@ -2380,7 +3056,7 @@ function getPlayerConfiguration({ platform }) {
2380
3056
  type: "android_font_selector",
2381
3057
  label: "Android TV Font Family",
2382
3058
  key: "android_tv_player_time_font_family",
2383
- initial_value: "Roboto-Bold",
3059
+ initial_value: "Ubuntu-Medium",
2384
3060
  },
2385
3061
  {
2386
3062
  type: "number_input",
@@ -2392,7 +3068,7 @@ function getPlayerConfiguration({ platform }) {
2392
3068
  type: "android_font_selector",
2393
3069
  label: "Fire TV Font Family",
2394
3070
  key: "amazon_player_time_font_family",
2395
- initial_value: "Roboto-Bold",
3071
+ initial_value: "Ubuntu-Medium",
2396
3072
  },
2397
3073
  {
2398
3074
  type: "number_input",
@@ -2411,7 +3087,7 @@ function getPlayerConfiguration({ platform }) {
2411
3087
  type: "lg_tv_font_selector",
2412
3088
  label: "LG Font Family",
2413
3089
  key: "lg_tv_audio_player_run_time_font_family",
2414
- initial_value: "Museo-Bold",
3090
+ initial_value: "Ubuntu-Medium",
2415
3091
  },
2416
3092
  {
2417
3093
  type: "number_input",
@@ -2423,7 +3099,7 @@ function getPlayerConfiguration({ platform }) {
2423
3099
  type: "samsung_font_selector",
2424
3100
  label: "Samsung Font Family",
2425
3101
  key: "samsung_tv_audio_player_run_time_font_family",
2426
- initial_value: "SamsungOne-800",
3102
+ initial_value: "Ubuntu-Medium",
2427
3103
  },
2428
3104
  {
2429
3105
  type: "number_input",
@@ -2435,7 +3111,7 @@ function getPlayerConfiguration({ platform }) {
2435
3111
  type: "vizio_font_selector",
2436
3112
  label: "Vizio Font Family",
2437
3113
  key: "vizio_audio_player_run_time_font_family",
2438
- initial_value: "Ubuntu-Bold",
3114
+ initial_value: "Ubuntu-Medium",
2439
3115
  },
2440
3116
  {
2441
3117
  type: "number_input",
@@ -2447,7 +3123,7 @@ function getPlayerConfiguration({ platform }) {
2447
3123
  type: "tvos_font_selector",
2448
3124
  label: "tvOS Font Family",
2449
3125
  key: "tv_os_audio_player_run_time_font_family",
2450
- initial_value: "SFProText-Medium",
3126
+ initial_value: "Ubuntu-Medium",
2451
3127
  },
2452
3128
  {
2453
3129
  type: "number_input",
@@ -2459,13 +3135,13 @@ function getPlayerConfiguration({ platform }) {
2459
3135
  type: "android_font_selector",
2460
3136
  label: "Android TV Font Family",
2461
3137
  key: "android_tv_audio_player_run_time_font_family",
2462
- initial_value: "Roboto-Medium",
3138
+ initial_value: "Ubuntu-Medium",
2463
3139
  },
2464
3140
  {
2465
3141
  type: "number_input",
2466
3142
  label: "Android TV Font Size",
2467
3143
  key: "android_tv_audio_player_run_time_font_size",
2468
- initial_value: 25,
3144
+ initial_value: 20,
2469
3145
  },
2470
3146
  ]
2471
3147
  ),
@@ -2481,7 +3157,7 @@ function getPlayerConfiguration({ platform }) {
2481
3157
  type: "color_picker_rgba",
2482
3158
  label: "Background color",
2483
3159
  key: "button_background_color",
2484
- initial_value: "rgba(255, 255, 255, 0)",
3160
+ initial_value: "rgba(0, 0, 0, 0)",
2485
3161
  },
2486
3162
  {
2487
3163
  type: "color_picker_rgba",
@@ -2493,7 +3169,7 @@ function getPlayerConfiguration({ platform }) {
2493
3169
  type: "color_picker_rgba",
2494
3170
  label: "Focused background color",
2495
3171
  key: "button_focused_background_color",
2496
- initial_value: "rgba(239, 239, 239, 1)",
3172
+ initial_value: "rgba(0, 0, 0, 0)",
2497
3173
  },
2498
3174
  ]),
2499
3175
  // Player progress bar
@@ -2502,70 +3178,433 @@ function getPlayerConfiguration({ platform }) {
2502
3178
  type: "color_picker_rgba",
2503
3179
  label: "Background color",
2504
3180
  key: "progress_bar_background_color",
2505
- initial_value: "rgba(239, 239, 239, 1)",
3181
+ initial_value: "rgba(254, 20, 72, 1)",
2506
3182
  },
2507
3183
  ])
2508
3184
  );
2509
3185
  }
2510
3186
 
2511
- // ---- Audio player background - TV & mobile ---- //
3187
+ // ---- Audio player (mobile) ---- //
2512
3188
 
2513
- styles.fields.push(
2514
- fieldsGroup(
2515
- "Audio Player",
2516
- "This section allows you to configure the audio player layout",
2517
- [
2518
- {
2519
- key: "audio_player_background_color",
2520
- label: "Audio player background color",
2521
- type: "colorpicker",
2522
- initial_value: "#00000066",
2523
- },
2524
- {
2525
- key: "audio_player_title_color",
2526
- label: "Audio player title color",
2527
- type: "colorpicker",
2528
- initial_value: "#efefefcc",
2529
- },
2530
- {
2531
- key: "audio_player_summary_color",
2532
- label: "Audio player summary color",
2533
- type: "colorpicker",
2534
- initial_value: "#efefefcc",
2535
- },
2536
- {
2537
- key: "audio_player_background_image",
2538
- type: "uploader",
2539
- default: "https://i.imgur.com/USTctfL.png",
2540
- },
2541
- {
2542
- key: "audio_player_artwork_aspect_ratio",
2543
- label: "Audio Player Artwork Aspect Ratio",
2544
- initial_value: "16:9",
2545
- type: "dropdown",
2546
- options: ["1:1", "4:3", "16:9", ""],
2547
- multiple: false,
2548
- label_tooltip: "Choose the default aspect ratio for the artwork",
2549
- },
2550
- {
2551
- key: "audio_player_artwork_border_radius",
2552
- label: "Audio Player Artwork Corner Radius",
2553
- type: "number_input",
2554
- initial_value: 16,
2555
- },
2556
- ]
2557
- )
2558
- );
3189
+ if (isMobile(platform)) {
3190
+ styles.fields.push(
3191
+ fieldsGroup(
3192
+ "Audio Player",
3193
+ "This section allows you to configure the audio player layout",
3194
+ [
3195
+ {
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",
3202
+ },
3203
+ {
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",
3210
+ },
3211
+ {
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: "",
3218
+ },
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",
3224
+ type: "number_input",
3225
+ initial_value: 16,
3226
+ rules: "conditional",
3227
+ conditional_fields: [
3228
+ {
3229
+ key: "styles/full_screen_audio_player",
3230
+ condition_value: true,
3231
+ },
3232
+ ],
3233
+ },
3234
+ {
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",
3265
+ },
3266
+ {
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",
3273
+ },
3274
+ {
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/",
3299
+ },
3300
+ {
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",
3307
+ },
3308
+ {
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",
3315
+ },
3316
+ {
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
+ ],
3330
+ },
3331
+ ]
3332
+ ),
3333
+ fieldsGroup(
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",
3347
+ [
3348
+ {
3349
+ type: "switch",
3350
+ key: "skip_button_enabled",
3351
+ label_tooltip: "Enables Skip button on the player.",
3352
+ label: "Enable",
3353
+ initial_value: true,
3354
+ },
3355
+ {
3356
+ type: "switch",
3357
+ key: "skip_button_persistent",
3358
+ label_tooltip:
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,
3362
+ },
3363
+ {
3364
+ type: "color_picker_rgba",
3365
+ label_tooltip: "",
3366
+ label: "Background Color",
3367
+ key: "skip_button_style_button_background_color",
3368
+ initial_value: "rgba(0, 0, 0, 0.3)",
3369
+ },
3370
+ {
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)",
3376
+ },
3377
+ {
3378
+ type: "number_input",
3379
+ label_tooltip: "",
3380
+ label: "Border Width",
3381
+ key: "skip_button_style_button_border_width",
3382
+ initial_value: 1.5,
3383
+ },
3384
+ {
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)",
3397
+ },
3398
+ {
3399
+ type: "number_input",
3400
+ label_tooltip: "",
3401
+ label: "Corner Radius",
3402
+ key: "skip_button_style_button_border_radius",
3403
+ initial_value: 4,
3404
+ },
3405
+ {
3406
+ type: "number_input",
3407
+ label_tooltip: "",
3408
+ label: "Margin Top",
3409
+ key: "skip_button_style_button_margin_top",
3410
+ initial_value: 0,
3411
+ },
3412
+ {
3413
+ type: "number_input",
3414
+ label_tooltip: "",
3415
+ label: "Margin Right",
3416
+ key: "skip_button_style_button_margin_right",
3417
+ initial_value: 8,
3418
+ },
3419
+ {
3420
+ type: "number_input",
3421
+ label_tooltip: "",
3422
+ label: "Margin Bottom",
3423
+ key: "skip_button_style_button_margin_bottom",
3424
+ initial_value: 0,
3425
+ },
3426
+ {
3427
+ type: "number_input",
3428
+ label_tooltip: "",
3429
+ label: "Margin Left",
3430
+ key: "skip_button_style_button_margin_left",
3431
+ initial_value: 0,
3432
+ },
3433
+ {
3434
+ type: "android_font_selector",
3435
+ label_tooltip: "",
3436
+ label: "Android Font Family",
3437
+ key: "skip_button_style_text_android_font_family",
3438
+ initial_value: "Roboto-Medium",
3439
+ },
3440
+ {
3441
+ type: "number_input",
3442
+ label_tooltip: "",
3443
+ label: "Android Font Size",
3444
+ key: "skip_button_style_text_android_font_size",
3445
+ initial_value: 12,
3446
+ },
3447
+ {
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,
3453
+ },
3454
+ {
3455
+ type: "number_input",
3456
+ label_tooltip: "",
3457
+ label: "Android Line Height",
3458
+ key: "skip_button_style_text_android_line_height",
3459
+ initial_value: 20,
3460
+ },
3461
+ {
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",
3467
+ },
3468
+ {
3469
+ type: "number_input",
3470
+ label_tooltip: "",
3471
+ label: "iOS Font Size",
3472
+ key: "skip_button_style_text_ios_font_size",
3473
+ initial_value: 12,
3474
+ },
3475
+ {
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,
3481
+ },
3482
+ {
3483
+ type: "number_input",
3484
+ label_tooltip: "",
3485
+ label: "iOS Line Height",
3486
+ key: "skip_button_style_text_ios_line_height",
3487
+ initial_value: 20,
3488
+ },
3489
+ {
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)",
3495
+ },
3496
+ {
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)",
3502
+ },
3503
+ {
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",
3526
+ },
3527
+ {
3528
+ type: "number_input",
3529
+ label_tooltip: "",
3530
+ label: "Padding Top",
3531
+ key: "skip_button_style_text_padding_top",
3532
+ initial_value: 7,
3533
+ },
3534
+ {
3535
+ type: "number_input",
3536
+ label_tooltip: "",
3537
+ label: "Padding Right",
3538
+ key: "skip_button_style_text_padding_right",
3539
+ initial_value: 10,
3540
+ },
3541
+ {
3542
+ type: "number_input",
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,
3554
+ },
3555
+ ]
3556
+ )
3557
+ );
3558
+ }
2559
3559
 
2560
- return {
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
+ };
3565
+
3566
+ const manifest = {
2561
3567
  styles,
2562
3568
  general,
2563
3569
  localizations,
2564
- custom_configuration_fields: remapConditionalFieldsForPluginGallery(
2565
- ...styles.fields,
2566
- ...general.fields
2567
- ),
3570
+ custom_configuration_fields: [
3571
+ customConfigurationWarning,
3572
+ ...remapConditionalFieldsForPluginGallery(
3573
+ ...styles.fields,
3574
+ ...general.fields
3575
+ ),
3576
+ ],
2568
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;
2569
3608
  }
2570
3609
 
2571
3610
  const player = (options) => getPlayerConfiguration(options);