rx-player 4.0.0-beta.0 → 4.0.0-beta.2

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 (297) hide show
  1. package/.eslintrc.js +8 -0
  2. package/CHANGELOG.md +93 -0
  3. package/CONTRIBUTING.md +48 -168
  4. package/FILES.md +40 -92
  5. package/VERSION +1 -1
  6. package/dist/_esm5.processed/compat/browser_detection.d.ts +25 -12
  7. package/dist/_esm5.processed/compat/browser_detection.js +85 -38
  8. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +2 -2
  9. package/dist/_esm5.processed/compat/eme/close_session.js +2 -2
  10. package/dist/_esm5.processed/compat/eme/load_session.js +1 -1
  11. package/dist/_esm5.processed/compat/event_listeners.js +1 -1
  12. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.d.ts +21 -0
  13. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +26 -0
  14. package/dist/_esm5.processed/config.d.ts +4 -0
  15. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +9 -6
  16. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +18 -1
  17. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +106 -25
  18. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +6 -6
  19. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +8 -5
  20. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.d.ts +19 -1
  21. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +1 -1
  22. package/dist/_esm5.processed/core/api/debug/buffer_graph.d.ts +28 -0
  23. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +175 -0
  24. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.d.ts +10 -0
  25. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +104 -0
  26. package/dist/_esm5.processed/core/api/debug/constants.d.ts +2 -0
  27. package/dist/_esm5.processed/core/api/debug/constants.js +2 -0
  28. package/dist/_esm5.processed/core/api/debug/index.d.ts +2 -0
  29. package/dist/_esm5.processed/core/api/debug/index.js +2 -0
  30. package/dist/_esm5.processed/core/api/debug/modules/general_info.d.ts +3 -0
  31. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +180 -0
  32. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.d.ts +4 -0
  33. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +121 -0
  34. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.d.ts +3 -0
  35. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +35 -0
  36. package/dist/_esm5.processed/core/api/debug/render.d.ts +3 -0
  37. package/dist/_esm5.processed/core/api/debug/render.js +32 -0
  38. package/dist/_esm5.processed/core/api/debug/utils.d.ts +39 -0
  39. package/dist/_esm5.processed/core/api/debug/utils.js +57 -0
  40. package/dist/_esm5.processed/core/api/playback_observer.js +4 -2
  41. package/dist/_esm5.processed/core/api/public_api.d.ts +60 -3
  42. package/dist/_esm5.processed/core/api/public_api.js +280 -60
  43. package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +10 -1
  44. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +13 -1
  45. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +30 -15
  46. package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +3 -1
  47. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +67 -152
  48. package/dist/_esm5.processed/core/api/utils.d.ts +10 -0
  49. package/dist/_esm5.processed/core/api/utils.js +23 -3
  50. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +27 -8
  51. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +28 -7
  52. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +1 -1
  53. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +1 -1
  54. package/dist/_esm5.processed/core/decrypt/find_key_system.js +29 -6
  55. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +42 -32
  56. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +4 -0
  57. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +2 -0
  58. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +5 -1
  59. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.d.ts +17 -8
  60. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +10 -6
  61. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +5 -4
  62. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +22 -5
  63. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +37 -21
  64. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +21 -23
  65. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +17 -7
  66. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +2 -2
  67. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +74 -41
  68. package/dist/_esm5.processed/core/init/types.d.ts +9 -1
  69. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +28 -1
  70. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +24 -11
  71. package/dist/_esm5.processed/core/init/utils/create_media_source.js +3 -12
  72. package/dist/_esm5.processed/core/init/utils/end_of_stream.js +6 -3
  73. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +2 -1
  74. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +9 -5
  75. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +2 -1
  76. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.d.ts +58 -0
  77. package/dist/_esm5.processed/core/init/utils/{media_duration_updater.js → media_source_duration_updater.js} +87 -86
  78. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +36 -2
  79. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +83 -3
  80. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +6 -4
  81. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +1 -1
  82. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +18 -7
  83. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +38 -50
  84. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +8 -0
  85. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +16 -2
  86. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +8 -0
  87. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +12 -0
  88. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +11 -4
  89. package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
  90. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +13 -9
  91. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +30 -16
  92. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +47 -0
  93. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +70 -0
  94. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +41 -20
  95. package/dist/_esm5.processed/core/stream/period/period_stream.js +12 -11
  96. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +37 -28
  97. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.d.ts +4 -2
  98. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +3 -3
  99. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +16 -6
  100. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +3 -2
  101. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +8 -8
  102. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +2 -2
  103. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +2 -3
  104. package/dist/_esm5.processed/core/stream/utils/create_reload_request.js +1 -1
  105. package/dist/_esm5.processed/default_config.d.ts +41 -0
  106. package/dist/_esm5.processed/default_config.js +46 -2
  107. package/dist/_esm5.processed/errors/index.d.ts +2 -2
  108. package/dist/_esm5.processed/errors/media_error.d.ts +23 -1
  109. package/dist/_esm5.processed/errors/media_error.js +18 -5
  110. package/dist/_esm5.processed/experimental/features/debug_element.d.ts +8 -0
  111. package/dist/_esm5.processed/experimental/features/debug_element.js +10 -0
  112. package/dist/_esm5.processed/experimental/features/index.d.ts +1 -0
  113. package/dist/_esm5.processed/experimental/features/index.js +1 -0
  114. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +1 -1
  115. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +8 -7
  116. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +7 -4
  117. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +24 -12
  118. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +0 -2
  119. package/dist/_esm5.processed/features/features_object.js +1 -0
  120. package/dist/_esm5.processed/features/initialize_features.js +13 -10
  121. package/dist/_esm5.processed/features/types.d.ts +3 -0
  122. package/dist/_esm5.processed/manifest/adaptation.d.ts +21 -2
  123. package/dist/_esm5.processed/manifest/adaptation.js +80 -1
  124. package/dist/_esm5.processed/manifest/manifest.js +2 -0
  125. package/dist/_esm5.processed/manifest/period.js +2 -2
  126. package/dist/_esm5.processed/manifest/representation.d.ts +33 -2
  127. package/dist/_esm5.processed/manifest/representation.js +32 -4
  128. package/dist/_esm5.processed/manifest/utils.js +1 -3
  129. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +105 -137
  130. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +25 -5
  131. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.d.ts +1 -1
  132. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +1 -1
  133. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -0
  134. package/dist/_esm5.processed/public_types.d.ts +13 -3
  135. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +1 -1
  136. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +15 -11
  137. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +2 -2
  138. package/dist/_esm5.processed/transports/dash/manifest_parser.js +1 -1
  139. package/dist/_esm5.processed/transports/dash/segment_loader.js +4 -4
  140. package/dist/_esm5.processed/transports/local/segment_loader.js +13 -26
  141. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.d.ts +4 -6
  142. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +4 -6
  143. package/dist/_esm5.processed/transports/smooth/segment_loader.js +4 -4
  144. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
  145. package/dist/_esm5.processed/utils/cancellable_sleep.js +4 -10
  146. package/dist/_esm5.processed/utils/create_cancellable_promise.d.ts +26 -0
  147. package/dist/_esm5.processed/utils/create_cancellable_promise.js +52 -0
  148. package/dist/_esm5.processed/utils/is_null_or_undefined.d.ts +1 -1
  149. package/dist/_esm5.processed/utils/is_null_or_undefined.js +1 -1
  150. package/dist/_esm5.processed/utils/reference.js +6 -0
  151. package/dist/_esm5.processed/utils/request/xhr.js +1 -1
  152. package/dist/_esm5.processed/utils/task_canceller.d.ts +34 -15
  153. package/dist/_esm5.processed/utils/task_canceller.js +55 -22
  154. package/dist/mpd-parser.wasm +0 -0
  155. package/dist/rx-player.js +5424 -4712
  156. package/dist/rx-player.min.js +1 -1
  157. package/jest.config.js +1 -5
  158. package/package.json +44 -40
  159. package/scripts/build/constants.d.ts +1 -0
  160. package/scripts/build/generate_build.js +1 -1
  161. package/scripts/fast_demo_build.js +40 -40
  162. package/scripts/generate_full_demo.js +1 -1
  163. package/sonar-project.properties +1 -1
  164. package/src/compat/browser_detection.ts +105 -52
  165. package/src/compat/can_reuse_media_keys.ts +5 -2
  166. package/src/compat/eme/close_session.ts +2 -2
  167. package/src/compat/eme/load_session.ts +1 -1
  168. package/src/compat/event_listeners.ts +1 -1
  169. package/src/compat/has_issues_with_high_media_source_duration.ts +27 -0
  170. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +147 -48
  171. package/src/core/adaptive/adaptive_representation_selector.ts +11 -6
  172. package/src/core/adaptive/buffer_based_chooser.ts +144 -26
  173. package/src/core/adaptive/guess_based_chooser.ts +9 -8
  174. package/src/core/adaptive/network_analyzer.ts +9 -4
  175. package/src/core/adaptive/utils/representation_score_calculator.ts +22 -2
  176. package/src/core/api/debug/buffer_graph.ts +247 -0
  177. package/src/core/api/debug/buffer_size_graph.ts +130 -0
  178. package/src/core/api/debug/constants.ts +2 -0
  179. package/src/core/api/debug/index.ts +3 -0
  180. package/src/core/api/debug/modules/general_info.ts +184 -0
  181. package/src/core/api/debug/modules/segment_buffer_content.ts +155 -0
  182. package/src/core/api/debug/modules/segment_buffer_size.ts +48 -0
  183. package/src/core/api/debug/render.ts +40 -0
  184. package/src/core/api/debug/utils.ts +103 -0
  185. package/src/core/api/playback_observer.ts +5 -2
  186. package/src/core/api/public_api.ts +334 -73
  187. package/src/core/api/track_management/media_element_tracks_store.ts +17 -8
  188. package/src/core/api/track_management/track_dispatcher.ts +37 -14
  189. package/src/core/api/track_management/tracks_store.ts +77 -167
  190. package/src/core/api/utils.ts +29 -3
  191. package/src/core/decrypt/__tests__/__global__/utils.ts +61 -40
  192. package/src/core/decrypt/attach_media_keys.ts +1 -1
  193. package/src/core/decrypt/content_decryptor.ts +1 -1
  194. package/src/core/decrypt/find_key_system.ts +25 -11
  195. package/src/core/decrypt/session_events_listener.ts +45 -39
  196. package/src/core/decrypt/utils/check_key_statuses.ts +6 -0
  197. package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +2 -1
  198. package/src/core/decrypt/utils/loaded_sessions_store.ts +8 -1
  199. package/src/core/fetchers/cdn_prioritizer.ts +18 -9
  200. package/src/core/fetchers/manifest/manifest_fetcher.ts +5 -4
  201. package/src/core/fetchers/segment/segment_fetcher.ts +36 -14
  202. package/src/core/fetchers/segment/task_prioritizer.ts +25 -30
  203. package/src/core/fetchers/utils/schedule_request.ts +18 -7
  204. package/src/core/init/directfile_content_initializer.ts +2 -1
  205. package/src/core/init/media_source_content_initializer.ts +89 -50
  206. package/src/core/init/types.ts +9 -1
  207. package/src/core/init/utils/content_time_boundaries_observer.ts +48 -12
  208. package/src/core/init/utils/create_media_source.ts +4 -16
  209. package/src/core/init/utils/end_of_stream.ts +6 -3
  210. package/src/core/init/utils/get_loaded_reference.ts +2 -1
  211. package/src/core/init/utils/initial_seek_and_play.ts +9 -5
  212. package/src/core/init/utils/initialize_content_decryption.ts +2 -1
  213. package/src/core/init/utils/{media_duration_updater.ts → media_source_duration_updater.ts} +103 -110
  214. package/src/core/init/utils/rebuffering_controller.ts +115 -4
  215. package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +6 -4
  216. package/src/core/init/utils/throw_on_media_error.ts +1 -1
  217. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +63 -66
  218. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +20 -2
  219. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +16 -0
  220. package/src/core/segment_buffers/implementations/types.ts +16 -4
  221. package/src/core/segment_buffers/index.ts +2 -0
  222. package/src/core/segment_buffers/segment_buffers_store.ts +16 -13
  223. package/src/core/stream/adaptation/adaptation_stream.ts +33 -19
  224. package/src/core/stream/adaptation/utils/create_representation_estimator.ts +114 -0
  225. package/src/core/stream/orchestrator/stream_orchestrator.ts +42 -20
  226. package/src/core/stream/period/period_stream.ts +13 -11
  227. package/src/core/stream/representation/representation_stream.ts +49 -37
  228. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +9 -4
  229. package/src/core/stream/representation/utils/downloading_queue.ts +16 -4
  230. package/src/core/stream/representation/utils/push_init_segment.ts +11 -6
  231. package/src/core/stream/representation/utils/push_media_segment.ts +3 -3
  232. package/src/core/stream/utils/create_reload_request.ts +1 -1
  233. package/src/default_config.ts +59 -11
  234. package/src/errors/__tests__/media_error.test.ts +6 -6
  235. package/src/errors/index.ts +4 -1
  236. package/src/errors/media_error.ts +67 -1
  237. package/src/experimental/features/__tests__/debug_element.test.ts +26 -0
  238. package/src/experimental/features/debug_element.ts +13 -0
  239. package/src/experimental/features/index.ts +1 -0
  240. package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +10 -7
  241. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +7 -4
  242. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +25 -10
  243. package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -4
  244. package/src/features/__tests__/initialize_features.test.ts +11 -0
  245. package/src/features/features_object.ts +1 -0
  246. package/src/features/initialize_features.ts +15 -10
  247. package/src/features/types.ts +9 -0
  248. package/src/manifest/__tests__/manifest.test.ts +7 -7
  249. package/src/manifest/__tests__/period.test.ts +90 -45
  250. package/src/manifest/adaptation.ts +96 -1
  251. package/src/manifest/manifest.ts +4 -0
  252. package/src/manifest/period.ts +4 -2
  253. package/src/manifest/representation.ts +77 -5
  254. package/src/manifest/utils.ts +1 -3
  255. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +116 -151
  256. package/src/parsers/manifest/dash/common/parse_representations.ts +21 -4
  257. package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +1 -1
  258. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -0
  259. package/src/parsers/texttracks/ttml/parse_ttml.ts +1 -1
  260. package/src/public_types.ts +16 -1
  261. package/src/tools/TextTrackRenderer/text_track_renderer.ts +1 -1
  262. package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +31 -22
  263. package/src/transports/dash/low_latency_segment_loader.ts +2 -2
  264. package/src/transports/dash/manifest_parser.ts +1 -1
  265. package/src/transports/dash/segment_loader.ts +4 -4
  266. package/src/transports/local/segment_loader.ts +14 -30
  267. package/src/transports/smooth/isobmff/create_boxes.ts +4 -6
  268. package/src/transports/smooth/segment_loader.ts +4 -4
  269. package/src/transports/utils/call_custom_manifest_loader.ts +3 -3
  270. package/src/typings/globals.d.ts +21 -19
  271. package/src/utils/cancellable_sleep.ts +5 -14
  272. package/src/utils/create_cancellable_promise.ts +69 -0
  273. package/src/utils/is_null_or_undefined.ts +1 -1
  274. package/src/utils/reference.ts +6 -0
  275. package/src/utils/request/xhr.ts +1 -1
  276. package/src/utils/task_canceller.ts +63 -34
  277. package/tsconfig.json +1 -1
  278. package/tsconfig.modules.json +1 -1
  279. package/dist/_esm5.processed/core/init/utils/media_duration_updater.d.ts +0 -56
  280. package/locked_reps.js +0 -46
  281. package/scripts/doc-generator/construct_table_of_contents.js +0 -76
  282. package/scripts/doc-generator/convert_MD_to_HMTL.js +0 -26
  283. package/scripts/doc-generator/create_documentation.js +0 -331
  284. package/scripts/doc-generator/create_documentation_page.js +0 -209
  285. package/scripts/doc-generator/create_page.js +0 -210
  286. package/scripts/doc-generator/generate_header_html.js +0 -147
  287. package/scripts/doc-generator/generate_page_html.js +0 -115
  288. package/scripts/doc-generator/generate_page_list_html.js +0 -92
  289. package/scripts/doc-generator/generate_sidebar_html.js +0 -85
  290. package/scripts/doc-generator/get_search_data_for_content.js +0 -137
  291. package/scripts/doc-generator/index.js +0 -34
  292. package/scripts/doc-generator/parse_doc_configs.js +0 -327
  293. package/scripts/doc-generator/scripts/lunr.js +0 -10
  294. package/scripts/doc-generator/scripts/script.js +0 -451
  295. package/scripts/doc-generator/styles/code.css +0 -99
  296. package/scripts/doc-generator/styles/style.css +0 -835
  297. package/scripts/doc-generator/utils.js +0 -74
@@ -1,835 +0,0 @@
1
- * {
2
- -webkit-box-sizing: border-box;
3
- -moz-box-sizing: border-box;
4
- box-sizing: border-box;
5
- }
6
-
7
- body {
8
- font-family: "Open Sans", sans-serif;
9
- line-height: 1.5;
10
- color: #333;
11
- background-color: #fff;
12
- margin: 0px;
13
- word-break: normal;
14
- overflow-wrap: anywhere;
15
- }
16
-
17
- h1, h2, h3, h4, h5, h6 {
18
- font-family: inherit;
19
- font-weight: 500;
20
- line-height: 1.1;
21
- color: inherit;
22
- }
23
-
24
- h1 {
25
- font-size: 2.2rem;
26
- margin-bottom: 3rem;
27
- }
28
-
29
- h2 {
30
- display: block;
31
- font-size: 1.5rem;
32
- border-bottom: 1px dotted #aaa;
33
- padding-bottom: 7px;
34
- margin-bottom: 1.5rem;
35
- margin-top: 50px;
36
- }
37
-
38
- h3 {
39
- font-size: 1.15rem;
40
- margin-bottom: 1.5rem;
41
- font-weight: bold;
42
- margin-top: 3rem;
43
- }
44
-
45
- h4 {
46
- margin-top: 25px;
47
- margin-bottom: 10px;
48
- font-size: 1.2rem;
49
- font-style: italic;
50
- }
51
-
52
- pre {
53
- display: block;
54
- padding: 9.5px;
55
- margin: 0 0 10px;
56
- font-size: 13px;
57
- line-height: 1.42857143;
58
- color: #333;
59
- word-break: break-all;
60
- word-wrap: break-word;
61
- background-color: #f8f8f8;
62
- border: 1px solid #ccc;
63
- border-radius: 4px;
64
- }
65
-
66
- a {
67
- color: #001090;
68
- }
69
-
70
- a:hover {
71
- color: #0023ce;
72
- text-decoration: underline;
73
- }
74
-
75
- code {
76
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
77
- padding: 2px 4px;
78
- font-size: 90%;
79
- color: #484848;
80
- background-color: #f9f2f4;
81
- border-radius: 4px;
82
- }
83
-
84
- pre code {
85
- padding: 0;
86
- font-size: inherit;
87
- color: inherit;
88
- white-space: pre-wrap;
89
- background-color: transparent;
90
- border-radius: 0;
91
- }
92
-
93
- .language-js {
94
- padding: 9.5px;
95
- display: block;
96
- overflow-x: auto;
97
- padding: 0.5em;
98
- color: #333;
99
- background: #f8f8f8;
100
- }
101
-
102
- .nav-icon {
103
- margin-right: 6px;
104
- }
105
-
106
- .sidebar a {
107
- color: #364149;
108
- text-decoration: none;
109
- }
110
-
111
- .sidebar a:hover {
112
- text-decoration: none;
113
- color: #008cff;
114
- }
115
-
116
- .sidebar ul {
117
- list-style-type: none;
118
- padding-left: 10px;
119
- }
120
-
121
- table {
122
- padding: 0;
123
- border-collapse: collapse;
124
- }
125
-
126
- table tr {
127
- border-top: 1px solid #cccccc;
128
- background-color: white;
129
- margin: 0;
130
- padding: 0;
131
- }
132
-
133
- table tr:nth-child(2n) {
134
- background-color: #f8f8f8;
135
- }
136
-
137
- table tr th {
138
- font-weight: bold;
139
- border: 1px solid #cccccc;
140
- text-align: left;
141
- margin: 0;
142
- padding: 6px 13px;
143
- }
144
-
145
- table tr td {
146
- border: 1px solid #cccccc;
147
- text-align: left;
148
- margin: 0;
149
- padding: 6px 13px;
150
- }
151
-
152
- .content-wrapper {
153
- position: relative;
154
- top: 50px;
155
- left: 0px;
156
- padding-left: 340px;
157
- padding-right: 20px;
158
- background-color: #fff;
159
- display: flex;
160
- /* overflow: hidden; */
161
- max-width: 1650px;
162
- }
163
-
164
- /* ========= Search ======== */
165
-
166
- .no-js .search-icon {
167
- display: none;
168
- }
169
-
170
- .search-icon {
171
- cursor: pointer;
172
- }
173
-
174
- .search-icon.active {
175
- fill: #0064bd;
176
- }
177
-
178
- #searchbar {
179
- width: 100%;
180
- font-size: 1.1rem;
181
- }
182
-
183
- #search-wrapper {
184
- display: none;
185
- }
186
-
187
- #search-wrapper.active {
188
- display: block;
189
- }
190
-
191
- .search-result-item {
192
- margin: 17px 0px;
193
- }
194
-
195
- #search-results {
196
- margin-top: 20px;
197
- padding-bottom: 20px;
198
- border-bottom: 1px dashed black;
199
- }
200
-
201
- #search-results .message {
202
- font-style: italic;
203
- }
204
-
205
- .search-result-location {
206
- margin-bottom: 5px;
207
- }
208
-
209
- .search-result-location a {
210
- text-decoration: none;
211
- font-size: 1.05rem;
212
- }
213
-
214
- .search-result-body {
215
- margin-left: 10px;
216
- }
217
-
218
- /* ========== Navbar (header bar) ========== */
219
-
220
- .hamburger-opener {
221
- display: none;
222
- background: none;
223
- border: none;
224
- color: inherit;
225
- cursor: pointer;
226
- font-family: inherit;
227
- padding: 0;
228
- margin: 0px 10px 0px 0px;
229
- }
230
-
231
- .navbar-parent {
232
- position: fixed;
233
- top: 0;
234
- width: 100%;
235
- z-index: 4;
236
- transition: transform 200ms ease;
237
- box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px, rgba(0, 0, 0, 0.05) 0px 1px 4px 0px, rgba(0, 0, 0, 0.05) 0px 2px 8px 0px;
238
- }
239
-
240
- .no-js .navbar-parent {
241
- position: relative;
242
- }
243
-
244
- .navbar-parent.hidden {
245
- transform: translate(0,calc(-100% - 2px));
246
- }
247
-
248
- .navbar-wrapper {
249
- padding: 10px 25px;
250
- font-size: 16px;
251
- height: 60px;
252
- border-bottom: 1px solid #cacaca;
253
- background-color: #fff;
254
- white-space: nowrap;
255
- overflow: auto;
256
- overflow-y: hidden;
257
- }
258
-
259
- .navbar-items {
260
- display: flex;
261
- justify-content: start;
262
- align-items: center;
263
- }
264
-
265
- .navbar-items .version-item {
266
- font-style: italic;
267
- font-size: 0.94rem;
268
- text-decoration: underline;
269
- }
270
-
271
- .navbar-item.first-right {
272
- margin-left: auto;
273
- }
274
-
275
- .navbar-item.last-left {
276
- margin-right: 25px;
277
- }
278
-
279
- .navbar-item {
280
- display: inline-block;
281
- padding: 0.25 0.75;
282
- font-size: 1.00rem;
283
- }
284
-
285
- .navbar-item svg {
286
- height: 24px;
287
- width: 24px;
288
- }
289
-
290
- .navbar-item svg:hover {
291
- fill: #0064bd;
292
- }
293
-
294
- .navbar-item {
295
- text-decoration: none;
296
- color: #000;
297
- margin: 5px 0px 5px 25px;
298
- }
299
-
300
- a.navbar-item:hover {
301
- color: rgba(36,122,183,1);
302
- }
303
-
304
- a.navbar-active {
305
- color: rgba(36,122,183,1);
306
- }
307
-
308
- .navbar-item-logo {
309
- height: 20px;
310
- margin: 0px;
311
- }
312
-
313
- /* ========== ToC (Table of Contents) bar ========== */
314
-
315
- .tocbar-wrapper {
316
- z-index: 1;
317
- margin: 25px 5px 25px 25px;
318
- line-height: 1.8em;
319
- color: #5b5b5b;
320
- min-width: 320px;
321
- }
322
-
323
- .tocbar-wrapper a {
324
- color: #666;
325
- text-decoration: none;
326
- font-size: 0.95em;
327
- }
328
-
329
- .tocbar-wrapper a:hover {
330
- text-decoration: none;
331
- color: rgba(36,122,183,1);
332
- }
333
-
334
- .tocbar-wrapper li {
335
- list-style-type: circle;
336
- margin-top: 5px;
337
- font-size: 0.875rem;
338
- }
339
-
340
- .tocbar-wrapper ul {
341
- list-style-type: circle;
342
- padding-left: 20px;
343
- margin-top: 5px;
344
- }
345
-
346
- /*
347
- * TODO make that thing "position: sticky" instead!
348
- * I decidedly do not understand why it doesn't just werks :(
349
- */
350
- .tocbar {
351
- padding: 5px 20px;
352
- position: fixed;
353
- border-left: 1px solid #e0e0e0;
354
- overflow: auto;
355
- max-height: calc(100vh - 115px);
356
- max-width: 325px;
357
- scrollbar-width: thin;
358
- }
359
-
360
- .tocbar p {
361
- margin-top: 0px;
362
- margin-bottom: 0px;
363
- }
364
-
365
- .tocbar p:first-child a {
366
- font-weight: bold;
367
- color: #555;
368
- }
369
-
370
- /* ========== Main content ========== */
371
-
372
- .content {
373
- margin: 25px 15px;
374
- max-width: 920px;
375
- }
376
-
377
- .content img {
378
- width: 100%;
379
- }
380
-
381
- .warning {
382
- background-color: #ffa;
383
- margin: 10px;
384
- padding: 15px;
385
- }
386
-
387
- .warning::before {
388
- content: "Warning:\A";
389
- color: #ac5100;
390
- font-weight: bold;
391
- white-space: pre;
392
- margin-bottom: 5px;
393
- display: block;
394
- }
395
-
396
- .note {
397
- background-color: #e3efff;
398
- margin: 10px;
399
- padding: 15px;
400
- }
401
-
402
- .note::before {
403
- content: "Note:\A";
404
- color: #6c8aac;
405
- font-weight: bold;
406
- white-space: pre;
407
- margin-bottom: 5px;
408
- display: block;
409
- }
410
-
411
-
412
- /* ========== Hamburger bar ========== */
413
-
414
- .no-js .hamburger-bar {
415
- display: none;
416
- }
417
-
418
- .overlay {
419
- position: fixed;
420
- z-index: 500;
421
- top: 0px;
422
- left: 0px;
423
- width: 100%;
424
- height: 100%;
425
- background-color: rgba(0, 0, 0, 0.7);
426
- opacity: 0;
427
- transition-duration: .2s;
428
- transition-property: opacity,visibility;
429
- }
430
-
431
- .hamburger-bar {
432
- z-index: 1000;
433
- background-color: #f9fafb;
434
- position: fixed;
435
- transform: translate3d(-100%,0,0);
436
- transition-duration: .25s;
437
- transition-property: opacity,visibility,transform;
438
- bottom: 0;
439
- transition-timing-function: ease-in-out;
440
- top: 0;
441
- left: 0;
442
- padding: 0px 5px;
443
- box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
444
- }
445
-
446
- .hamburger-bar.opened {
447
- transform: translateZ(0);
448
- }
449
-
450
- .hamburger-header {
451
- height: 41px;
452
- display: flex;
453
- justify-content: space-between;
454
- align-items: center;
455
- margin: 10px;
456
- border-bottom: 1px dotted black;
457
- padding: 0px 10px;
458
- }
459
-
460
- .hamburger-title {
461
- font-weight: bold;
462
- font-size: 1.05em;
463
- }
464
-
465
- .hamburger-bar-closer {
466
- background: none;
467
- border: none;
468
- color: inherit;
469
- cursor: pointer;
470
- font-family: inherit;
471
- padding: 0;
472
- }
473
-
474
- .page-list-wrapper {
475
- padding: 0px;
476
- margin: 0px;
477
- overflow-x: hidden;
478
- list-style: none;
479
- width: auto;
480
- min-width: 300px;
481
- color: #333;
482
- overflow-y: auto;
483
- height: calc(100% - 61px);
484
- padding: 0px 10px;
485
- }
486
-
487
- .page-list-wrapper svg {
488
- height: 24px;
489
- width: 24px;
490
- }
491
-
492
- .page-list-group.active, .page-list-item.active a {
493
- color: rgba(36,122,183,1);
494
- }
495
-
496
- .page-list-group {
497
- display: flex;
498
- flex-wrap: wrap;
499
- justify-content: space-between;
500
- align-items: center;
501
- cursor: pointer;
502
- padding: 5px 0px 5px 5px;
503
- padding-left: 5px;
504
- margin-top: 2px;
505
- width: 100%;
506
- }
507
-
508
- .no-js .page-list-group {
509
- cursor: default;
510
- }
511
- .no-js .page-list-group::after {
512
- cursor: default;
513
- transform: rotate(180deg);
514
- }
515
-
516
- .page-list-group.opened::after {
517
- transform: rotate(180deg);
518
- }
519
-
520
- .page-list-group::after {
521
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(0,0,0,0.5)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>') 50%/2rem 2rem;
522
- content: " ";
523
- height: 1.25rem;
524
- min-width: 1.25rem;
525
- transform: rotate(90deg);
526
- transition: transform 0.2s linear;
527
- }
528
-
529
- .page-list-group.active::after {
530
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(60,134,187,1)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>') 50%/2rem 2rem;
531
- content: " ";
532
- height: 1.25rem;
533
- min-width: 1.25rem;
534
- transition: transform 0.2s linear;
535
- }
536
-
537
- .page-list-item ul {
538
- display: none;
539
- will-change: height;
540
- overflow: hidden;
541
- }
542
-
543
- .no-js .page-list-item ul {
544
- display: block;
545
- }
546
-
547
- .page-list-item {
548
- display: flex;
549
- flex-wrap: wrap;
550
- justify-content: space-between;
551
- align-items: center;
552
- width: 100%;
553
- color: #454545;
554
- /* padding: 5px 12px; */
555
- width: 100%;
556
- border-radius: 4px;
557
- font-size: 0.9rem;
558
- }
559
-
560
- .page-list-group:hover {
561
- background-color: #e4f3ff;
562
- }
563
-
564
- .no-js .page-list-group:hover {
565
- background-color: transparent;
566
- }
567
-
568
- .page-list-item a:hover {
569
- background-color: #e4f3ff;
570
- }
571
-
572
- .page-list-item a.active {
573
- background-color: #cfebff;
574
- }
575
-
576
- li.page-list-item {
577
- margin-top: 2px;
578
- }
579
-
580
- .page-list-item ul {
581
- list-style: none;
582
- margin: 0px;
583
- padding-left: 10px;
584
- width: 100%;
585
- }
586
-
587
- .page-list-item a {
588
- text-decoration: none;
589
- color: #454545;
590
- padding: 5px 0px 5px 5px;
591
- width: 100%;
592
- border-radius: 4px;
593
- }
594
-
595
-
596
- /* ========== sidebar ========== */
597
-
598
- .sidebar-parent {
599
- position: fixed;
600
- z-index: 1;
601
- left: 0px;
602
- overflow-x: hidden;
603
- padding: 10px 0px;
604
- height: 100%;
605
- list-style: none;
606
- width: 315px;
607
- top: 0px;
608
- color: #333;
609
- background-color: #f9fafb;
610
- }
611
-
612
- .sidebar-header {
613
- height: 50px;
614
- padding: 7px 15px 15px 25px;
615
- }
616
-
617
- .sidebar-header a {
618
- text-decoration: none;
619
- }
620
-
621
- .sidebar-header .version-item {
622
- font-weight: bold;
623
- font-size: 0.9rem;
624
- color: #2e2e2e;
625
- font-style: italic;
626
- }
627
-
628
- .sidebar-header-logo {
629
- height: 20px;
630
- padding-right: 7px;
631
- }
632
-
633
- .sidebar-wrapper {
634
- height: calc(100% - 50px);
635
- position: relative;
636
- overflow: auto;
637
- scrollbar-width: thin;
638
- }
639
-
640
- .sidebar {
641
- height: 100%;
642
- width: 315px;
643
- position: fixed;
644
- z-index: 1;
645
- top: 0;
646
- left: 0;
647
- background-color: #fafafa;
648
- overflow-x: hidden;
649
- padding: 5px 20px;
650
- }
651
-
652
- .sidebar-nav {
653
- display: flex;
654
- flex-direction: row;
655
- flex-wrap: nowrap;
656
- justify-content: space-between;
657
- border-bottom: 1px dotted #364149;
658
- }
659
-
660
- .sidebar-item-group.active {
661
- color: rgba(36,122,183,1);
662
- }
663
-
664
- .sidebar-item-group {
665
- cursor: pointer;
666
- }
667
-
668
- .no-js .sidebar-item-group {
669
- cursor: default;
670
- }
671
- .no-js .sidebar-item-group::after {
672
- cursor: default;
673
- transform: rotate(180deg);
674
- }
675
-
676
- .sidebar-item-group.opened::after {
677
- transform: rotate(180deg);
678
- }
679
-
680
- .sidebar-item-group::after {
681
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(0,0,0,0.5)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>') 50%/2rem 2rem;
682
- content: " ";
683
- height: 1.25rem;
684
- min-width: 1.25rem;
685
- transform: rotate(90deg);
686
- transition: transform 0.2s linear;
687
- }
688
-
689
- .sidebar-item-group.active::after {
690
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(60,134,187,1)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>') 50%/2rem 2rem;
691
- content: " ";
692
- height: 1.25rem;
693
- min-width: 1.25rem;
694
- transition: transform 0.2s linear;
695
- }
696
-
697
- .sidebar-item ul {
698
- display: none;
699
- will-change: height;
700
- overflow: hidden;
701
- }
702
-
703
- .no-js .sidebar-item ul {
704
- display: block;
705
- }
706
-
707
- .sidebar-item {
708
- display: flex;
709
- flex-wrap: wrap;
710
- justify-content: space-between;
711
- align-items: center;
712
- width: 100%;
713
- color: #454545;
714
- padding: 5px 12px;
715
- width: 100%;
716
- border-radius: 4px;
717
- font-size: 0.9rem;
718
- }
719
-
720
- .sidebar-item-group:hover {
721
- background-color: #e4f3ff;
722
- }
723
-
724
- .no-js .sidebar-item-group:hover {
725
- background-color: transparent;
726
- }
727
-
728
- .sidebar-item a:hover {
729
- background-color: #e4f3ff;
730
- }
731
-
732
- .sidebar-item a.active {
733
- background-color: #cfebff;
734
- }
735
-
736
- li.sidebar-item {
737
- margin-top: 2px;
738
- }
739
-
740
- .sidebar-item ul {
741
- list-style: none;
742
- margin: 0px;
743
- padding-left: 5px;
744
- width: 100%;
745
- }
746
-
747
- .sidebar-item a {
748
- text-decoration: none;
749
- color: #454545;
750
- padding: 5px 12px;
751
- width: 100%;
752
- border-radius: 4px;
753
- }
754
-
755
- /* ======== Next/Previous page ======== */
756
-
757
- .next-previous-page-wrapper {
758
- margin-top: 3rem;
759
- display: flex;
760
- }
761
-
762
- .next-or-previous-page {
763
- display: flex;
764
- flex: 1 50%;
765
- max-width: 50%;
766
- }
767
-
768
- .next-or-previous-page a {
769
- color: #008cff;
770
- text-decoration: none;
771
- }
772
-
773
- .next-or-previous-page-link {
774
- border: 1px solid #dadde1;
775
- border-radius: 0.4rem;
776
- flex-grow: 1;
777
- line-height: 1.25;
778
- padding: 1rem;
779
- }
780
-
781
- .next-or-previous-page-link:hover {
782
- border-color: #008cff;
783
- }
784
-
785
- .next-or-previous-page-link-label {
786
- color: #525860;
787
- font-size: 0.875rem;
788
- font-weight: 500;
789
- margin-bottom: .25rem;
790
- }
791
-
792
- .next-or-previous-page-link-name {
793
- font-weight: 700;
794
- word-break: break-word;
795
- }
796
-
797
- .next-page {
798
- margin-left: 1rem;
799
- text-align: right;
800
- }
801
-
802
- /* ==== Responsive settings ==== */
803
-
804
- @media (max-width: 1300px) {
805
- .tocbar-wrapper {
806
- display: none;
807
- }
808
- }
809
-
810
- @media (max-width: 910px) {
811
- .sidebar-parent {
812
- display: none;
813
- }
814
-
815
- .content-wrapper {
816
- padding-left: 7px;
817
- padding-right: 7px;
818
- }
819
-
820
- .hideable {
821
- display: none;
822
- }
823
-
824
- .no-js .hamburger-opener {
825
- display: none;
826
- }
827
-
828
- .hamburger-opener {
829
- display: block;
830
- }
831
-
832
- .navbar-item.last-left {
833
- margin-right: 0px;
834
- }
835
- }