rx-player 4.0.0-beta.1 → 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 (169) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/CONTRIBUTING.md +48 -168
  3. package/FILES.md +40 -92
  4. package/VERSION +1 -1
  5. package/dist/_esm5.processed/compat/browser_detection.d.ts +3 -1
  6. package/dist/_esm5.processed/compat/browser_detection.js +7 -2
  7. package/dist/_esm5.processed/compat/eme/load_session.js +1 -1
  8. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.d.ts +21 -0
  9. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +26 -0
  10. package/dist/_esm5.processed/config.d.ts +2 -0
  11. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +5 -4
  12. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +18 -1
  13. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +106 -25
  14. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +6 -6
  15. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +8 -5
  16. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.d.ts +19 -1
  17. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +1 -1
  18. package/dist/_esm5.processed/core/api/debug/render.js +1 -1
  19. package/dist/_esm5.processed/core/api/playback_observer.js +1 -0
  20. package/dist/_esm5.processed/core/api/public_api.d.ts +54 -1
  21. package/dist/_esm5.processed/core/api/public_api.js +232 -35
  22. package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +10 -1
  23. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +13 -1
  24. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +30 -15
  25. package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +3 -1
  26. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +67 -152
  27. package/dist/_esm5.processed/core/api/utils.d.ts +10 -0
  28. package/dist/_esm5.processed/core/api/utils.js +20 -0
  29. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +7 -1
  30. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +2 -0
  31. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +5 -1
  32. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +1 -1
  33. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +47 -10
  34. package/dist/_esm5.processed/core/init/types.d.ts +9 -1
  35. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +28 -1
  36. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +22 -9
  37. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.d.ts +58 -0
  38. package/dist/_esm5.processed/core/init/utils/{media_duration_updater.js → media_source_duration_updater.js} +84 -87
  39. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +36 -2
  40. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +82 -2
  41. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +18 -7
  42. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +31 -40
  43. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +8 -0
  44. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +12 -0
  45. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +8 -0
  46. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +12 -0
  47. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +11 -4
  48. package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
  49. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +47 -0
  50. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +70 -0
  51. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +15 -8
  52. package/dist/_esm5.processed/core/stream/period/period_stream.js +1 -1
  53. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +22 -13
  54. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.d.ts +4 -2
  55. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +2 -2
  56. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +3 -2
  57. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +8 -8
  58. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +2 -2
  59. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +2 -3
  60. package/dist/_esm5.processed/default_config.d.ts +25 -0
  61. package/dist/_esm5.processed/default_config.js +27 -2
  62. package/dist/_esm5.processed/errors/index.d.ts +2 -2
  63. package/dist/_esm5.processed/errors/media_error.d.ts +23 -1
  64. package/dist/_esm5.processed/errors/media_error.js +18 -5
  65. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +1 -1
  66. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +8 -7
  67. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +17 -9
  68. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +0 -2
  69. package/dist/_esm5.processed/manifest/adaptation.d.ts +21 -2
  70. package/dist/_esm5.processed/manifest/adaptation.js +76 -1
  71. package/dist/_esm5.processed/manifest/manifest.js +1 -1
  72. package/dist/_esm5.processed/manifest/period.js +2 -2
  73. package/dist/_esm5.processed/manifest/representation.d.ts +33 -2
  74. package/dist/_esm5.processed/manifest/representation.js +21 -0
  75. package/dist/_esm5.processed/manifest/utils.js +1 -3
  76. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.d.ts +1 -1
  77. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +1 -1
  78. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -0
  79. package/dist/_esm5.processed/public_types.d.ts +13 -3
  80. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +1 -1
  81. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.d.ts +4 -6
  82. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +4 -6
  83. package/dist/_esm5.processed/utils/is_null_or_undefined.d.ts +1 -1
  84. package/dist/_esm5.processed/utils/is_null_or_undefined.js +1 -1
  85. package/dist/mpd-parser.wasm +0 -0
  86. package/dist/rx-player.js +4709 -4218
  87. package/dist/rx-player.min.js +1 -1
  88. package/package.json +42 -36
  89. package/scripts/build/generate_build.js +1 -1
  90. package/scripts/fast_demo_build.js +4 -3
  91. package/scripts/generate_full_demo.js +1 -1
  92. package/sonar-project.properties +1 -1
  93. package/src/compat/browser_detection.ts +7 -1
  94. package/src/compat/eme/load_session.ts +1 -1
  95. package/src/compat/has_issues_with_high_media_source_duration.ts +27 -0
  96. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +147 -48
  97. package/src/core/adaptive/adaptive_representation_selector.ts +7 -4
  98. package/src/core/adaptive/buffer_based_chooser.ts +144 -26
  99. package/src/core/adaptive/guess_based_chooser.ts +9 -8
  100. package/src/core/adaptive/network_analyzer.ts +9 -4
  101. package/src/core/adaptive/utils/representation_score_calculator.ts +22 -2
  102. package/src/core/api/debug/render.ts +1 -1
  103. package/src/core/api/playback_observer.ts +1 -0
  104. package/src/core/api/public_api.ts +277 -44
  105. package/src/core/api/track_management/media_element_tracks_store.ts +17 -8
  106. package/src/core/api/track_management/track_dispatcher.ts +37 -14
  107. package/src/core/api/track_management/tracks_store.ts +77 -167
  108. package/src/core/api/utils.ts +26 -0
  109. package/src/core/decrypt/session_events_listener.ts +6 -1
  110. package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +2 -1
  111. package/src/core/decrypt/utils/loaded_sessions_store.ts +8 -1
  112. package/src/core/init/directfile_content_initializer.ts +1 -0
  113. package/src/core/init/media_source_content_initializer.ts +52 -9
  114. package/src/core/init/types.ts +9 -1
  115. package/src/core/init/utils/content_time_boundaries_observer.ts +46 -10
  116. package/src/core/init/utils/{media_duration_updater.ts → media_source_duration_updater.ts} +100 -112
  117. package/src/core/init/utils/rebuffering_controller.ts +114 -3
  118. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +56 -55
  119. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +16 -0
  120. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +16 -0
  121. package/src/core/segment_buffers/implementations/types.ts +16 -4
  122. package/src/core/segment_buffers/index.ts +2 -0
  123. package/src/core/stream/adaptation/utils/create_representation_estimator.ts +114 -0
  124. package/src/core/stream/orchestrator/stream_orchestrator.ts +16 -8
  125. package/src/core/stream/period/period_stream.ts +2 -1
  126. package/src/core/stream/representation/representation_stream.ts +34 -22
  127. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +8 -3
  128. package/src/core/stream/representation/utils/push_init_segment.ts +11 -6
  129. package/src/core/stream/representation/utils/push_media_segment.ts +3 -3
  130. package/src/default_config.ts +29 -2
  131. package/src/errors/__tests__/media_error.test.ts +6 -6
  132. package/src/errors/index.ts +4 -1
  133. package/src/errors/media_error.ts +67 -1
  134. package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +10 -7
  135. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +17 -6
  136. package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -4
  137. package/src/manifest/__tests__/manifest.test.ts +7 -7
  138. package/src/manifest/__tests__/period.test.ts +90 -45
  139. package/src/manifest/adaptation.ts +89 -1
  140. package/src/manifest/manifest.ts +1 -1
  141. package/src/manifest/period.ts +4 -2
  142. package/src/manifest/representation.ts +67 -1
  143. package/src/manifest/utils.ts +1 -3
  144. package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +1 -1
  145. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -0
  146. package/src/parsers/texttracks/ttml/parse_ttml.ts +1 -1
  147. package/src/public_types.ts +16 -1
  148. package/src/tools/TextTrackRenderer/text_track_renderer.ts +1 -1
  149. package/src/transports/smooth/isobmff/create_boxes.ts +4 -6
  150. package/src/typings/globals.d.ts +20 -20
  151. package/src/utils/is_null_or_undefined.ts +1 -1
  152. package/dist/_esm5.processed/core/init/utils/media_duration_updater.d.ts +0 -56
  153. package/scripts/doc-generator/construct_table_of_contents.js +0 -76
  154. package/scripts/doc-generator/convert_MD_to_HMTL.js +0 -26
  155. package/scripts/doc-generator/create_documentation.js +0 -331
  156. package/scripts/doc-generator/create_documentation_page.js +0 -209
  157. package/scripts/doc-generator/create_page.js +0 -210
  158. package/scripts/doc-generator/generate_header_html.js +0 -147
  159. package/scripts/doc-generator/generate_page_html.js +0 -115
  160. package/scripts/doc-generator/generate_page_list_html.js +0 -92
  161. package/scripts/doc-generator/generate_sidebar_html.js +0 -85
  162. package/scripts/doc-generator/get_search_data_for_content.js +0 -137
  163. package/scripts/doc-generator/index.js +0 -34
  164. package/scripts/doc-generator/parse_doc_configs.js +0 -327
  165. package/scripts/doc-generator/scripts/lunr.js +0 -10
  166. package/scripts/doc-generator/scripts/script.js +0 -451
  167. package/scripts/doc-generator/styles/code.css +0 -99
  168. package/scripts/doc-generator/styles/style.css +0 -835
  169. 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
- }