profile-viewer 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. checksums.yaml +7 -0
  2. data/dist/022efb839d22fa54a716.svg +28 -0
  3. data/dist/0c510afd6169a0a83f97.svg +14 -0
  4. data/dist/0d5cf282780cd1a5ec64.svg +8 -0
  5. data/dist/119.cc58ce313e67f80f50f3.bundle.js +2 -0
  6. data/dist/119.cc58ce313e67f80f50f3.bundle.js.map +1 -0
  7. data/dist/11c5dca6d97c9e10e5b7.svg +9 -0
  8. data/dist/131.c21d348572deab4ece66.bundle.js +2 -0
  9. data/dist/131.c21d348572deab4ece66.bundle.js.map +1 -0
  10. data/dist/18e7fdd45099134897d2.svg +8 -0
  11. data/dist/2d4b477bc424d35a0245.svg +25 -0
  12. data/dist/2e43ad991eb141fc017f.svg +9 -0
  13. data/dist/2ea5b50b7361e6de561c.svg +11 -0
  14. data/dist/308.4d236ce7e6451807cb54.bundle.js +2 -0
  15. data/dist/308.4d236ce7e6451807cb54.bundle.js.map +1 -0
  16. data/dist/31fe933f3a12be1aa7f3.svg +4 -0
  17. data/dist/390aa266f451c1005f61.svg +10 -0
  18. data/dist/3c3fda7c08bcc9544c64.svg +6 -0
  19. data/dist/4260d5db8309a6f83637.svg +10 -0
  20. data/dist/4536fd0738f36c3463bc.svg +1 -0
  21. data/dist/490065792b7e903c9f3e.svg +6 -0
  22. data/dist/49da6a2153f62ef73d17.svg +7 -0
  23. data/dist/4d26f0e38c22eedde178.jpg +0 -0
  24. data/dist/4ecb077d8715f89c0f87.svg +13 -0
  25. data/dist/524e896f487119a0b832.svg +13 -0
  26. data/dist/58c5415e952fb6dddd6b.png +0 -0
  27. data/dist/6bd0589a27236471fdab.svg +4 -0
  28. data/dist/6c6b49af3a86dfdd44e6.svg +4 -0
  29. data/dist/6c8063be3afa1d95c902.svg +3 -0
  30. data/dist/71730566d6c47ffdc965.svg +12 -0
  31. data/dist/7273fadce89da05535e5.svg +4 -0
  32. data/dist/731673c749e57bf6f544.svg +13 -0
  33. data/dist/76e5b29823c9fd62d90d.svg +3 -0
  34. data/dist/7853c71223701f30d495.svg +19 -0
  35. data/dist/79856ce399cb305fafb8.svg +19 -0
  36. data/dist/79eaad4fc0c398100809.svg +6 -0
  37. data/dist/7c7ac3c7df370340cfd2.svg +7 -0
  38. data/dist/7e3ac9afb25cfe809520.svg +1 -0
  39. data/dist/81762b0b1aacd3686a6b.svg +12 -0
  40. data/dist/86e81402ef76d28ff55f.svg +15 -0
  41. data/dist/8aae7b979b04407f71a4.svg +3 -0
  42. data/dist/8b8b909e42722172d494.svg +7 -0
  43. data/dist/8dab2a6ba757bcc6e9a5.svg +3 -0
  44. data/dist/9.071a712ea648c8b30416.bundle.js +2 -0
  45. data/dist/9.071a712ea648c8b30416.bundle.js.map +1 -0
  46. data/dist/9103e94f1d34c15d44be.svg +6 -0
  47. data/dist/914.b9bc213d93173ce6b0cb.bundle.js +2 -0
  48. data/dist/914.b9bc213d93173ce6b0cb.bundle.js.map +1 -0
  49. data/dist/9a7bd6ec36312a2baa7e.svg +1 -0
  50. data/dist/9d858d1a3ab57f8ee2e1.svg +4 -0
  51. data/dist/9eb1fab2684d1e1f0e26.svg +13 -0
  52. data/dist/_headers +37 -0
  53. data/dist/_redirects +2 -0
  54. data/dist/a3196e840709b18a3119.svg +1 -0
  55. data/dist/aa867391c311267af5a9.svg +4 -0
  56. data/dist/acb8393f3fb9c59b15c9.svg +20 -0
  57. data/dist/ad13da76642d8099fe70.module.wasm +0 -0
  58. data/dist/b45b29da558efa211628.jpg +0 -0
  59. data/dist/b5698a02eef37ce29146.svg +10 -0
  60. data/dist/b805360fcc91834556c9.svg +4 -0
  61. data/dist/before-load.js +1 -0
  62. data/dist/c3432220f657733ed05f.svg +10 -0
  63. data/dist/ca2af827049e9039ef9c.svg +8 -0
  64. data/dist/contribute.json +37 -0
  65. data/dist/d09537c705fb0878eb63.svg +4 -0
  66. data/dist/d9c199b3e3e469cc5713.svg +10 -0
  67. data/dist/da1f21c60c7217745dd8.svg +1 -0
  68. data/dist/docs/README.md +7 -0
  69. data/dist/docs/_navbar.md +3 -0
  70. data/dist/docs/_sidebar.md +27 -0
  71. data/dist/docs/advanced-topics.md +9 -0
  72. data/dist/docs/bunny-2.md +78 -0
  73. data/dist/docs/bunny.md +281 -0
  74. data/dist/docs/case-studies.md +5 -0
  75. data/dist/docs/css/style-overrides.css +160 -0
  76. data/dist/docs/css/vue_v4.12.2.min.css +858 -0
  77. data/dist/docs/gitpod.md +39 -0
  78. data/dist/docs/guide-android-profiling.md +46 -0
  79. data/dist/docs/guide-filtering-call-trees.md +87 -0
  80. data/dist/docs/guide-getting-started.md +115 -0
  81. data/dist/docs/guide-perf-profiling.md +76 -0
  82. data/dist/docs/guide-profiler-fundamentals.md +33 -0
  83. data/dist/docs/guide-profiling-android-directly-on-device.md +34 -0
  84. data/dist/docs/guide-profiling-firefox-android.md +7 -0
  85. data/dist/docs/guide-remote-profiling.md +90 -0
  86. data/dist/docs/guide-removing-profiler.md +4 -0
  87. data/dist/docs/guide-stack-samples-and-call-trees.md +57 -0
  88. data/dist/docs/guide-startup-shutdown.md +108 -0
  89. data/dist/docs/guide-ui-tour-panels.md +95 -0
  90. data/dist/docs/guide-ui-tour-timeline.md +76 -0
  91. data/dist/docs/images/about-debugging-remote-profiling-panel.png +0 -0
  92. data/dist/docs/images/about-debugging-remote.png +0 -0
  93. data/dist/docs/images/about-url.png +0 -0
  94. data/dist/docs/images/allocation-calltree-2019-12-11.png +0 -0
  95. data/dist/docs/images/allocation-feature.png +0 -0
  96. data/dist/docs/images/allocation-flame-graph-2019-12-11.png +0 -0
  97. data/dist/docs/images/allocation-js.png +0 -0
  98. data/dist/docs/images/allocation-track.png +0 -0
  99. data/dist/docs/images/bunny-analysis/bunny.png +0 -0
  100. data/dist/docs/images/bunny-analysis/clone-flame-content.png +0 -0
  101. data/dist/docs/images/bunny-analysis/clone-flame-worker.png +0 -0
  102. data/dist/docs/images/bunny-analysis/clone-thread-list.png +0 -0
  103. data/dist/docs/images/bunny-analysis/fillstyle-thread-list-measure.png +0 -0
  104. data/dist/docs/images/bunny-analysis/fillstyle-thread-list.png +0 -0
  105. data/dist/docs/images/bunny-analysis/flame-graph-content.png +0 -0
  106. data/dist/docs/images/bunny-analysis/flame-graph-set-fillstyle.png +0 -0
  107. data/dist/docs/images/bunny-analysis/flame-graph-worker.png +0 -0
  108. data/dist/docs/images/bunny-analysis/focus-subtree.png +0 -0
  109. data/dist/docs/images/bunny-analysis/threads-list-measure.png +0 -0
  110. data/dist/docs/images/bunny-analysis/threads-list.png +0 -0
  111. data/dist/docs/images/bunny-analysis/threads-parallel.png +0 -0
  112. data/dist/docs/images/bunny-analysis/threads-sync.png +0 -0
  113. data/dist/docs/images/bunny-analysis/threads-work-parallel.png +0 -0
  114. data/dist/docs/images/bunny-analysis/threads-work-sync.png +0 -0
  115. data/dist/docs/images/call-tree-running-time.svg +82 -0
  116. data/dist/docs/images/call-tree-self-time.svg +82 -0
  117. data/dist/docs/images/call-tree.svg +131 -0
  118. data/dist/docs/images/favicon.svg +4 -0
  119. data/dist/docs/images/filter-search.svg +78 -0
  120. data/dist/docs/images/getting-started-delete-profile.png +0 -0
  121. data/dist/docs/images/getting-started-devtools-panel.png +0 -0
  122. data/dist/docs/images/getting-started-enable-popup.png +0 -0
  123. data/dist/docs/images/getting-started-list-uploaded-profiles.png +0 -0
  124. data/dist/docs/images/getting-started-naming-profiles.png +0 -0
  125. data/dist/docs/images/getting-started-popup.png +0 -0
  126. data/dist/docs/images/getting-started-upload-permalink.webm +0 -0
  127. data/dist/docs/images/getting-started-upload.png +0 -0
  128. data/dist/docs/images/getting-started-use-icon.webm +0 -0
  129. data/dist/docs/images/getting-started-use-popup.webm +0 -0
  130. data/dist/docs/images/implementation-2022-06-16.png +0 -0
  131. data/dist/docs/images/implementation-filter.svg +101 -0
  132. data/dist/docs/images/interval-2020-05.png +0 -0
  133. data/dist/docs/images/invert-2022-06-16.png +0 -0
  134. data/dist/docs/images/invert-after.svg +161 -0
  135. data/dist/docs/images/invert-before.svg +144 -0
  136. data/dist/docs/images/invert-call-tree.svg +113 -0
  137. data/dist/docs/images/ipc-messages-feature.png +0 -0
  138. data/dist/docs/images/ipc-messages-io-threads.png +0 -0
  139. data/dist/docs/images/ipc-messages-popup.png +0 -0
  140. data/dist/docs/images/popup.png +0 -0
  141. data/dist/docs/images/qr-gve-nightly.gif +0 -0
  142. data/dist/docs/images/qr-reference-browser-nightly.gif +0 -0
  143. data/dist/docs/images/samples.svg +116 -0
  144. data/dist/docs/images/screenshot-2022-04-25.png +0 -0
  145. data/dist/docs/images/search-2022-06-16.png +0 -0
  146. data/dist/docs/images/secret-menu-toast.png +0 -0
  147. data/dist/docs/images/settings-menu.png +0 -0
  148. data/dist/docs/images/simple-call-tree-self-time.svg +41 -0
  149. data/dist/docs/images/simple-call-tree.svg +41 -0
  150. data/dist/docs/images/simple-stacks-self-time.svg +96 -0
  151. data/dist/docs/images/simple-stacks.svg +118 -0
  152. data/dist/docs/images/start-profiler.png +0 -0
  153. data/dist/docs/images/transform-collapse-direct-recursion.svg +47 -0
  154. data/dist/docs/images/transform-collapse-resource.svg +83 -0
  155. data/dist/docs/images/transform-focus-function.svg +81 -0
  156. data/dist/docs/images/transform-focus-node.svg +86 -0
  157. data/dist/docs/images/transform-merge-function.svg +95 -0
  158. data/dist/docs/images/transform-merge-node.svg +96 -0
  159. data/dist/docs/images/transforms-2022-06-16.png +0 -0
  160. data/dist/docs/images/ui-tour-activity-graph.png +0 -0
  161. data/dist/docs/images/ui-tour-panels-call-tree.png +0 -0
  162. data/dist/docs/images/ui-tour-panels-flame-graph.png +0 -0
  163. data/dist/docs/images/ui-tour-panels-marker-chart.png +0 -0
  164. data/dist/docs/images/ui-tour-panels-network-chart.png +0 -0
  165. data/dist/docs/images/ui-tour-panels-stack-chart.png +0 -0
  166. data/dist/docs/images/ui-tour-panels.png +0 -0
  167. data/dist/docs/images/ui-tour-ranges.png +0 -0
  168. data/dist/docs/images/ui-tour-selection.webm +0 -0
  169. data/dist/docs/images/ui-tour-timeline-markers.png +0 -0
  170. data/dist/docs/images/ui-tour-timeline-memory.png +0 -0
  171. data/dist/docs/images/ui-tour-timeline-network.png +0 -0
  172. data/dist/docs/images/ui-tour-timeline-screenshots.png +0 -0
  173. data/dist/docs/images/ui-tour-timeline-track-selection.png +0 -0
  174. data/dist/docs/images/ui-tour-timeline.png +0 -0
  175. data/dist/docs/index.html +21 -0
  176. data/dist/docs/ipc-messages.md +44 -0
  177. data/dist/docs/js/docsify_v4.12.2+.min.js +1 -0
  178. data/dist/docs/js/ga_v4.12.2.min.js +1 -0
  179. data/dist/docs/js/init.js +1 -0
  180. data/dist/docs/js/search_v4.12.2.min.js +1 -0
  181. data/dist/docs/memory-allocations.md +70 -0
  182. data/dist/docs/videos-call-tree-1.md +5 -0
  183. data/dist/docs/videos-call-tree-2.md +5 -0
  184. data/dist/docs/videos-call-tree-3.md +5 -0
  185. data/dist/docs/videos-intro.md +7 -0
  186. data/dist/docs/videos-samples-markers.md +5 -0
  187. data/dist/docs/videos-threads.md +5 -0
  188. data/dist/docs/videos.md +32 -0
  189. data/dist/e4ed50222911c5af9a32.svg +12 -0
  190. data/dist/e70722c0fe0ac3d4227b.svg +10 -0
  191. data/dist/f0599659345cf76717cd.svg +4 -0
  192. data/dist/f8e25c2ebeb0a0725a9e.svg +12 -0
  193. data/dist/favicon.png +0 -0
  194. data/dist/fcb532a05dd4b09c2d08.svg +10 -0
  195. data/dist/fd040fb5f4e7a515bb3c.svg +15 -0
  196. data/dist/index.html +1 -0
  197. data/dist/locales/README.md +26 -0
  198. data/dist/locales/be/app.ftl +1003 -0
  199. data/dist/locales/de/app.ftl +994 -0
  200. data/dist/locales/el/app.ftl +1013 -0
  201. data/dist/locales/en-GB/app.ftl +1018 -0
  202. data/dist/locales/en-US/app.ftl +1125 -0
  203. data/dist/locales/es-CL/app.ftl +948 -0
  204. data/dist/locales/fr/app.ftl +942 -0
  205. data/dist/locales/fy-NL/app.ftl +1018 -0
  206. data/dist/locales/ia/app.ftl +1007 -0
  207. data/dist/locales/it/app.ftl +936 -0
  208. data/dist/locales/kab/app.ftl +557 -0
  209. data/dist/locales/nl/app.ftl +1018 -0
  210. data/dist/locales/pt-BR/app.ftl +947 -0
  211. data/dist/locales/ru/app.ftl +1032 -0
  212. data/dist/locales/sv-SE/app.ftl +1013 -0
  213. data/dist/locales/uk/app.ftl +1019 -0
  214. data/dist/locales/zh-CN/app.ftl +931 -0
  215. data/dist/locales/zh-TW/app.ftl +930 -0
  216. data/dist/main.8208fda2d35ddbe38d55.bundle.js +199 -0
  217. data/dist/main.8208fda2d35ddbe38d55.bundle.js.LICENSE.txt +92 -0
  218. data/dist/main.8208fda2d35ddbe38d55.bundle.js.map +1 -0
  219. data/dist/photon/31fe933f3a12be1aa7f3.svg +4 -0
  220. data/dist/photon/49da6a2153f62ef73d17.svg +7 -0
  221. data/dist/photon/6bd0589a27236471fdab.svg +4 -0
  222. data/dist/photon/6c8063be3afa1d95c902.svg +3 -0
  223. data/dist/photon/76e5b29823c9fd62d90d.svg +3 -0
  224. data/dist/photon/8aae7b979b04407f71a4.svg +3 -0
  225. data/dist/photon/8dab2a6ba757bcc6e9a5.svg +3 -0
  226. data/dist/photon/9103e94f1d34c15d44be.svg +6 -0
  227. data/dist/photon/aa867391c311267af5a9.svg +4 -0
  228. data/dist/photon/f0599659345cf76717cd.svg +4 -0
  229. data/dist/photon/index.html +214 -0
  230. data/dist/photon/main.8c8260452e7439ec6df9.bundle.js +2 -0
  231. data/dist/photon/main.8c8260452e7439ec6df9.bundle.js.map +1 -0
  232. data/dist/service-worker-compat.js +1 -0
  233. data/dist/sw.js +2 -0
  234. data/dist/sw.js.map +1 -0
  235. data/dist/workbox-27b29e6f.js +2 -0
  236. data/dist/workbox-27b29e6f.js.map +1 -0
  237. data/dist/zee-worker.js +1 -0
  238. data/ruby-bin/profile-viewer +87 -0
  239. metadata +281 -0
@@ -0,0 +1,858 @@
1
+ @import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");
2
+ * {
3
+ -webkit-font-smoothing: antialiased;
4
+ -webkit-overflow-scrolling: touch;
5
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
6
+ -webkit-text-size-adjust: none;
7
+ -webkit-touch-callout: none;
8
+ box-sizing: border-box;
9
+ }
10
+ body:not(.ready) {
11
+ overflow: hidden;
12
+ }
13
+ body:not(.ready) [data-cloak],
14
+ body:not(.ready) .app-nav,
15
+ body:not(.ready) > nav {
16
+ display: none;
17
+ }
18
+ div#app {
19
+ font-size: 30px;
20
+ font-weight: lighter;
21
+ margin: 40vh auto;
22
+ text-align: center;
23
+ }
24
+ div#app:empty::before {
25
+ content: 'Loading...';
26
+ }
27
+ .emoji {
28
+ height: 1.2rem;
29
+ vertical-align: middle;
30
+ }
31
+ .progress {
32
+ background-color: var(--theme-color, #42b983);
33
+ height: 2px;
34
+ left: 0px;
35
+ position: fixed;
36
+ right: 0px;
37
+ top: 0px;
38
+ transition: width 0.2s, opacity 0.4s;
39
+ width: 0%;
40
+ z-index: 999999;
41
+ }
42
+ .search a:hover {
43
+ color: var(--theme-color, #42b983);
44
+ }
45
+ .search .search-keyword {
46
+ color: var(--theme-color, #42b983);
47
+ font-style: normal;
48
+ font-weight: bold;
49
+ }
50
+ html,
51
+ body {
52
+ height: 100%;
53
+ }
54
+ body {
55
+ -moz-osx-font-smoothing: grayscale;
56
+ -webkit-font-smoothing: antialiased;
57
+ color: #34495e;
58
+ font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
59
+ font-size: 15px;
60
+ letter-spacing: 0;
61
+ margin: 0;
62
+ overflow-x: hidden;
63
+ }
64
+ img {
65
+ max-width: 100%;
66
+ }
67
+ a[disabled] {
68
+ cursor: not-allowed;
69
+ opacity: 0.6;
70
+ }
71
+ kbd {
72
+ border: solid 1px #ccc;
73
+ border-radius: 3px;
74
+ display: inline-block;
75
+ font-size: 12px !important;
76
+ line-height: 12px;
77
+ margin-bottom: 3px;
78
+ padding: 3px 5px;
79
+ vertical-align: middle;
80
+ }
81
+ li input[type='checkbox'] {
82
+ margin: 0 0.2em 0.25em 0;
83
+ vertical-align: middle;
84
+ }
85
+ .app-nav {
86
+ margin: 25px 60px 0 0;
87
+ position: absolute;
88
+ right: 0;
89
+ text-align: right;
90
+ z-index: 10;
91
+ /* navbar dropdown */
92
+ }
93
+ .app-nav.no-badge {
94
+ margin-right: 25px;
95
+ }
96
+ .app-nav p {
97
+ margin: 0;
98
+ }
99
+ .app-nav > a {
100
+ margin: 0 1rem;
101
+ padding: 5px 0;
102
+ }
103
+ .app-nav ul,
104
+ .app-nav li {
105
+ display: inline-block;
106
+ list-style: none;
107
+ margin: 0;
108
+ }
109
+ .app-nav a {
110
+ color: inherit;
111
+ font-size: 16px;
112
+ text-decoration: none;
113
+ transition: color 0.3s;
114
+ }
115
+ .app-nav a:hover {
116
+ color: var(--theme-color, #42b983);
117
+ }
118
+ .app-nav a.active {
119
+ border-bottom: 2px solid var(--theme-color, #42b983);
120
+ color: var(--theme-color, #42b983);
121
+ }
122
+ .app-nav li {
123
+ display: inline-block;
124
+ margin: 0 1rem;
125
+ padding: 5px 0;
126
+ position: relative;
127
+ cursor: pointer;
128
+ }
129
+ .app-nav li ul {
130
+ background-color: #fff;
131
+ border: 1px solid #ddd;
132
+ border-bottom-color: #ccc;
133
+ border-radius: 4px;
134
+ box-sizing: border-box;
135
+ display: none;
136
+ max-height: calc(100vh - 61px);
137
+ overflow-y: auto;
138
+ padding: 10px 0;
139
+ position: absolute;
140
+ right: -15px;
141
+ text-align: left;
142
+ top: 100%;
143
+ white-space: nowrap;
144
+ }
145
+ .app-nav li ul li {
146
+ display: block;
147
+ font-size: 14px;
148
+ line-height: 1rem;
149
+ margin: 0;
150
+ margin: 8px 14px;
151
+ white-space: nowrap;
152
+ }
153
+ .app-nav li ul a {
154
+ display: block;
155
+ font-size: inherit;
156
+ margin: 0;
157
+ padding: 0;
158
+ }
159
+ .app-nav li ul a.active {
160
+ border-bottom: 0;
161
+ }
162
+ .app-nav li:hover ul {
163
+ display: block;
164
+ }
165
+ .github-corner {
166
+ border-bottom: 0;
167
+ position: fixed;
168
+ right: 0;
169
+ text-decoration: none;
170
+ top: 0;
171
+ z-index: 1;
172
+ }
173
+ .github-corner:hover .octo-arm {
174
+ -webkit-animation: octocat-wave 560ms ease-in-out;
175
+ animation: octocat-wave 560ms ease-in-out;
176
+ }
177
+ .github-corner svg {
178
+ color: #fff;
179
+ fill: var(--theme-color, #42b983);
180
+ height: 80px;
181
+ width: 80px;
182
+ }
183
+ main {
184
+ display: block;
185
+ position: relative;
186
+ width: 100vw;
187
+ height: 100%;
188
+ z-index: 0;
189
+ }
190
+ main.hidden {
191
+ display: none;
192
+ }
193
+ .anchor {
194
+ display: inline-block;
195
+ text-decoration: none;
196
+ transition: all 0.3s;
197
+ }
198
+ .anchor span {
199
+ color: #34495e;
200
+ }
201
+ .anchor:hover {
202
+ text-decoration: underline;
203
+ }
204
+ .sidebar {
205
+ border-right: 1px solid rgba(0,0,0,0.07);
206
+ overflow-y: auto;
207
+ padding: 40px 0 0;
208
+ position: absolute;
209
+ top: 0;
210
+ bottom: 0;
211
+ left: 0;
212
+ transition: transform 250ms ease-out;
213
+ width: 300px;
214
+ z-index: 20;
215
+ }
216
+ .sidebar > h1 {
217
+ margin: 0 auto 1rem;
218
+ font-size: 1.5rem;
219
+ font-weight: 300;
220
+ text-align: center;
221
+ }
222
+ .sidebar > h1 a {
223
+ color: inherit;
224
+ text-decoration: none;
225
+ }
226
+ .sidebar > h1 .app-nav {
227
+ display: block;
228
+ position: static;
229
+ }
230
+ .sidebar .sidebar-nav {
231
+ line-height: 2em;
232
+ padding-bottom: 40px;
233
+ }
234
+ .sidebar li.collapse .app-sub-sidebar {
235
+ display: none;
236
+ }
237
+ .sidebar ul {
238
+ margin: 0 0 0 15px;
239
+ padding: 0;
240
+ }
241
+ .sidebar li > p {
242
+ font-weight: 700;
243
+ margin: 0;
244
+ }
245
+ .sidebar ul,
246
+ .sidebar ul li {
247
+ list-style: none;
248
+ }
249
+ .sidebar ul li a {
250
+ border-bottom: none;
251
+ display: block;
252
+ }
253
+ .sidebar ul li ul {
254
+ padding-left: 20px;
255
+ }
256
+ .sidebar::-webkit-scrollbar {
257
+ width: 4px;
258
+ }
259
+ .sidebar::-webkit-scrollbar-thumb {
260
+ background: transparent;
261
+ border-radius: 4px;
262
+ }
263
+ .sidebar:hover::-webkit-scrollbar-thumb {
264
+ background: rgba(136,136,136,0.4);
265
+ }
266
+ .sidebar:hover::-webkit-scrollbar-track {
267
+ background: rgba(136,136,136,0.1);
268
+ }
269
+ .sidebar-toggle {
270
+ background-color: transparent;
271
+ background-color: rgba(255,255,255,0.8);
272
+ border: 0;
273
+ outline: none;
274
+ padding: 10px;
275
+ position: absolute;
276
+ bottom: 0;
277
+ left: 0;
278
+ text-align: center;
279
+ transition: opacity 0.3s;
280
+ width: 284px;
281
+ z-index: 30;
282
+ cursor: pointer;
283
+ }
284
+ .sidebar-toggle:hover .sidebar-toggle-button {
285
+ opacity: 0.4;
286
+ }
287
+ .sidebar-toggle span {
288
+ background-color: var(--theme-color, #42b983);
289
+ display: block;
290
+ margin-bottom: 4px;
291
+ width: 16px;
292
+ height: 2px;
293
+ }
294
+ body.sticky .sidebar,
295
+ body.sticky .sidebar-toggle {
296
+ position: fixed;
297
+ }
298
+ .content {
299
+ padding-top: 60px;
300
+ position: absolute;
301
+ top: 0;
302
+ right: 0;
303
+ bottom: 0;
304
+ left: 300px;
305
+ transition: left 250ms ease;
306
+ }
307
+ .markdown-section {
308
+ margin: 0 auto;
309
+ max-width: 80%;
310
+ padding: 30px 15px 40px 15px;
311
+ position: relative;
312
+ }
313
+ .markdown-section > * {
314
+ box-sizing: border-box;
315
+ font-size: inherit;
316
+ }
317
+ .markdown-section > :first-child {
318
+ margin-top: 0 !important;
319
+ }
320
+ .markdown-section hr {
321
+ border: none;
322
+ border-bottom: 1px solid #eee;
323
+ margin: 2em 0;
324
+ }
325
+ .markdown-section iframe {
326
+ border: 1px solid #eee;
327
+ /* fix horizontal overflow on iOS Safari */
328
+ width: 1px;
329
+ min-width: 100%;
330
+ }
331
+ .markdown-section table {
332
+ border-collapse: collapse;
333
+ border-spacing: 0;
334
+ display: block;
335
+ margin-bottom: 1rem;
336
+ overflow: auto;
337
+ width: 100%;
338
+ }
339
+ .markdown-section th {
340
+ border: 1px solid #ddd;
341
+ font-weight: bold;
342
+ padding: 6px 13px;
343
+ }
344
+ .markdown-section td {
345
+ border: 1px solid #ddd;
346
+ padding: 6px 13px;
347
+ }
348
+ .markdown-section tr {
349
+ border-top: 1px solid #ccc;
350
+ }
351
+ .markdown-section tr:nth-child(2n) {
352
+ background-color: #f8f8f8;
353
+ }
354
+ .markdown-section p.tip {
355
+ background-color: #f8f8f8;
356
+ border-bottom-right-radius: 2px;
357
+ border-left: 4px solid #f66;
358
+ border-top-right-radius: 2px;
359
+ margin: 2em 0;
360
+ padding: 12px 24px 12px 30px;
361
+ position: relative;
362
+ }
363
+ .markdown-section p.tip:before {
364
+ background-color: #f66;
365
+ border-radius: 100%;
366
+ color: #fff;
367
+ content: '!';
368
+ font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
369
+ font-size: 14px;
370
+ font-weight: bold;
371
+ left: -12px;
372
+ line-height: 20px;
373
+ position: absolute;
374
+ height: 20px;
375
+ width: 20px;
376
+ text-align: center;
377
+ top: 14px;
378
+ }
379
+ .markdown-section p.tip code {
380
+ background-color: #efefef;
381
+ }
382
+ .markdown-section p.tip em {
383
+ color: #34495e;
384
+ }
385
+ .markdown-section p.warn {
386
+ background: rgba(66,185,131,0.1);
387
+ border-radius: 2px;
388
+ padding: 1rem;
389
+ }
390
+ .markdown-section ul.task-list > li {
391
+ list-style-type: none;
392
+ }
393
+ body.close .sidebar {
394
+ transform: translateX(-300px);
395
+ }
396
+ body.close .sidebar-toggle {
397
+ width: auto;
398
+ }
399
+ body.close .content {
400
+ left: 0;
401
+ }
402
+ @media print {
403
+ .github-corner,
404
+ .sidebar-toggle,
405
+ .sidebar,
406
+ .app-nav {
407
+ display: none;
408
+ }
409
+ }
410
+ @media screen and (max-width: 768px) {
411
+ .github-corner,
412
+ .sidebar-toggle,
413
+ .sidebar {
414
+ position: fixed;
415
+ }
416
+ .app-nav {
417
+ margin-top: 16px;
418
+ }
419
+ .app-nav li ul {
420
+ top: 30px;
421
+ }
422
+ main {
423
+ height: auto;
424
+ min-height: 100vh;
425
+ overflow-x: hidden;
426
+ }
427
+ .sidebar {
428
+ left: -300px;
429
+ transition: transform 250ms ease-out;
430
+ }
431
+ .content {
432
+ left: 0;
433
+ max-width: 100vw;
434
+ position: static;
435
+ padding-top: 20px;
436
+ transition: transform 250ms ease;
437
+ }
438
+ .app-nav,
439
+ .github-corner {
440
+ transition: transform 250ms ease-out;
441
+ }
442
+ .sidebar-toggle {
443
+ background-color: transparent;
444
+ width: auto;
445
+ padding: 30px 30px 10px 10px;
446
+ }
447
+ body.close .sidebar {
448
+ transform: translateX(300px);
449
+ }
450
+ body.close .sidebar-toggle {
451
+ background-color: rgba(255,255,255,0.8);
452
+ transition: 1s background-color;
453
+ width: 284px;
454
+ padding: 10px;
455
+ }
456
+ body.close .content {
457
+ transform: translateX(300px);
458
+ }
459
+ body.close .app-nav,
460
+ body.close .github-corner {
461
+ display: none;
462
+ }
463
+ .github-corner:hover .octo-arm {
464
+ -webkit-animation: none;
465
+ animation: none;
466
+ }
467
+ .github-corner .octo-arm {
468
+ -webkit-animation: octocat-wave 560ms ease-in-out;
469
+ animation: octocat-wave 560ms ease-in-out;
470
+ }
471
+ }
472
+ @-webkit-keyframes octocat-wave {
473
+ 0%, 100% {
474
+ transform: rotate(0);
475
+ }
476
+ 20%, 60% {
477
+ transform: rotate(-25deg);
478
+ }
479
+ 40%, 80% {
480
+ transform: rotate(10deg);
481
+ }
482
+ }
483
+ @keyframes octocat-wave {
484
+ 0%, 100% {
485
+ transform: rotate(0);
486
+ }
487
+ 20%, 60% {
488
+ transform: rotate(-25deg);
489
+ }
490
+ 40%, 80% {
491
+ transform: rotate(10deg);
492
+ }
493
+ }
494
+ section.cover {
495
+ align-items: center;
496
+ background-position: center center;
497
+ background-repeat: no-repeat;
498
+ background-size: cover;
499
+ height: 100vh;
500
+ width: 100vw;
501
+ display: none;
502
+ }
503
+ section.cover.show {
504
+ display: flex;
505
+ }
506
+ section.cover.has-mask .mask {
507
+ background-color: #fff;
508
+ opacity: 0.8;
509
+ position: absolute;
510
+ top: 0;
511
+ height: 100%;
512
+ width: 100%;
513
+ }
514
+ section.cover .cover-main {
515
+ flex: 1;
516
+ margin: -20px 16px 0;
517
+ text-align: center;
518
+ position: relative;
519
+ }
520
+ section.cover a {
521
+ color: inherit;
522
+ text-decoration: none;
523
+ }
524
+ section.cover a:hover {
525
+ text-decoration: none;
526
+ }
527
+ section.cover p {
528
+ line-height: 1.5rem;
529
+ margin: 1em 0;
530
+ }
531
+ section.cover h1 {
532
+ color: inherit;
533
+ font-size: 2.5rem;
534
+ font-weight: 300;
535
+ margin: 0.625rem 0 2.5rem;
536
+ position: relative;
537
+ text-align: center;
538
+ }
539
+ section.cover h1 a {
540
+ display: block;
541
+ }
542
+ section.cover h1 small {
543
+ bottom: -0.4375rem;
544
+ font-size: 1rem;
545
+ position: absolute;
546
+ }
547
+ section.cover blockquote {
548
+ font-size: 1.5rem;
549
+ text-align: center;
550
+ }
551
+ section.cover ul {
552
+ line-height: 1.8;
553
+ list-style-type: none;
554
+ margin: 1em auto;
555
+ max-width: 500px;
556
+ padding: 0;
557
+ }
558
+ section.cover .cover-main > p:last-child a {
559
+ border-color: var(--theme-color, #42b983);
560
+ border-radius: 2rem;
561
+ border-style: solid;
562
+ border-width: 1px;
563
+ box-sizing: border-box;
564
+ color: var(--theme-color, #42b983);
565
+ display: inline-block;
566
+ font-size: 1.05rem;
567
+ letter-spacing: 0.1rem;
568
+ margin: 0.5rem 1rem;
569
+ padding: 0.75em 2rem;
570
+ text-decoration: none;
571
+ transition: all 0.15s ease;
572
+ }
573
+ section.cover .cover-main > p:last-child a:last-child {
574
+ background-color: var(--theme-color, #42b983);
575
+ color: #fff;
576
+ }
577
+ section.cover .cover-main > p:last-child a:last-child:hover {
578
+ color: inherit;
579
+ opacity: 0.8;
580
+ }
581
+ section.cover .cover-main > p:last-child a:hover {
582
+ color: inherit;
583
+ }
584
+ section.cover blockquote > p > a {
585
+ border-bottom: 2px solid var(--theme-color, #42b983);
586
+ transition: color 0.3s;
587
+ }
588
+ section.cover blockquote > p > a:hover {
589
+ color: var(--theme-color, #42b983);
590
+ }
591
+ body {
592
+ background-color: #fff;
593
+ }
594
+ /* sidebar */
595
+ .sidebar {
596
+ background-color: #fff;
597
+ color: #364149;
598
+ }
599
+ .sidebar li {
600
+ margin: 6px 0 6px 0;
601
+ }
602
+ .sidebar ul li a {
603
+ color: #505d6b;
604
+ font-size: 14px;
605
+ font-weight: normal;
606
+ overflow: hidden;
607
+ text-decoration: none;
608
+ text-overflow: ellipsis;
609
+ white-space: nowrap;
610
+ }
611
+ .sidebar ul li a:hover {
612
+ text-decoration: underline;
613
+ }
614
+ .sidebar ul li ul {
615
+ padding: 0;
616
+ }
617
+ .sidebar ul li.active > a {
618
+ border-right: 2px solid;
619
+ color: var(--theme-color, #42b983);
620
+ font-weight: 600;
621
+ }
622
+ .app-sub-sidebar li::before {
623
+ content: '-';
624
+ padding-right: 4px;
625
+ float: left;
626
+ }
627
+ /* markdown content found on pages */
628
+ .markdown-section h1,
629
+ .markdown-section h2,
630
+ .markdown-section h3,
631
+ .markdown-section h4,
632
+ .markdown-section strong {
633
+ color: #2c3e50;
634
+ font-weight: 600;
635
+ }
636
+ .markdown-section a {
637
+ color: var(--theme-color, #42b983);
638
+ font-weight: 600;
639
+ }
640
+ .markdown-section h1 {
641
+ font-size: 2rem;
642
+ margin: 0 0 1rem;
643
+ }
644
+ .markdown-section h2 {
645
+ font-size: 1.75rem;
646
+ margin: 45px 0 0.8rem;
647
+ }
648
+ .markdown-section h3 {
649
+ font-size: 1.5rem;
650
+ margin: 40px 0 0.6rem;
651
+ }
652
+ .markdown-section h4 {
653
+ font-size: 1.25rem;
654
+ }
655
+ .markdown-section h5 {
656
+ font-size: 1rem;
657
+ }
658
+ .markdown-section h6 {
659
+ color: #777;
660
+ font-size: 1rem;
661
+ }
662
+ .markdown-section figure,
663
+ .markdown-section p {
664
+ margin: 1.2em 0;
665
+ }
666
+ .markdown-section p,
667
+ .markdown-section ul,
668
+ .markdown-section ol {
669
+ line-height: 1.6rem;
670
+ word-spacing: 0.05rem;
671
+ }
672
+ .markdown-section ul,
673
+ .markdown-section ol {
674
+ padding-left: 1.5rem;
675
+ }
676
+ .markdown-section blockquote {
677
+ border-left: 4px solid var(--theme-color, #42b983);
678
+ color: #858585;
679
+ margin: 2em 0;
680
+ padding-left: 20px;
681
+ }
682
+ .markdown-section blockquote p {
683
+ font-weight: 600;
684
+ margin-left: 0;
685
+ }
686
+ .markdown-section iframe {
687
+ margin: 1em 0;
688
+ }
689
+ .markdown-section em {
690
+ color: #7f8c8d;
691
+ }
692
+ .markdown-section code,
693
+ .markdown-section pre,
694
+ .markdown-section output::after {
695
+ font-family: 'Roboto Mono', Monaco, courier, monospace;
696
+ }
697
+ .markdown-section code,
698
+ .markdown-section pre {
699
+ background-color: #f8f8f8;
700
+ }
701
+ .markdown-section pre,
702
+ .markdown-section output {
703
+ margin: 1.2em 0;
704
+ position: relative;
705
+ }
706
+ .markdown-section pre > code,
707
+ .markdown-section output {
708
+ border-radius: 2px;
709
+ display: block;
710
+ }
711
+ .markdown-section pre > code,
712
+ .markdown-section output::after {
713
+ -moz-osx-font-smoothing: initial;
714
+ -webkit-font-smoothing: initial;
715
+ }
716
+ .markdown-section code {
717
+ border-radius: 2px;
718
+ color: #e96900;
719
+ margin: 0 2px;
720
+ padding: 3px 5px;
721
+ white-space: pre-wrap;
722
+ }
723
+ .markdown-section > :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code {
724
+ font-size: 0.8rem;
725
+ }
726
+ .markdown-section pre {
727
+ padding: 0 1.4rem;
728
+ line-height: 1.5rem;
729
+ overflow: auto;
730
+ word-wrap: normal;
731
+ }
732
+ .markdown-section pre > code {
733
+ color: #525252;
734
+ font-size: 0.8rem;
735
+ padding: 2.2em 5px;
736
+ line-height: inherit;
737
+ margin: 0 2px;
738
+ max-width: inherit;
739
+ overflow: inherit;
740
+ white-space: inherit;
741
+ }
742
+ .markdown-section output {
743
+ padding: 1.7rem 1.4rem;
744
+ border: 1px dotted #ccc;
745
+ }
746
+ .markdown-section output > :first-child {
747
+ margin-top: 0;
748
+ }
749
+ .markdown-section output > :last-child {
750
+ margin-bottom: 0;
751
+ }
752
+ .markdown-section code::after,
753
+ .markdown-section code::before,
754
+ .markdown-section output::after,
755
+ .markdown-section output::before {
756
+ letter-spacing: 0.05rem;
757
+ }
758
+ .markdown-section pre::after,
759
+ .markdown-section output::after {
760
+ color: #ccc;
761
+ font-size: 0.6rem;
762
+ font-weight: 600;
763
+ height: 15px;
764
+ line-height: 15px;
765
+ padding: 5px 10px 0;
766
+ position: absolute;
767
+ right: 0;
768
+ text-align: right;
769
+ top: 0;
770
+ }
771
+ .markdown-section pre::after,
772
+ .markdown-section output::after {
773
+ content: attr(data-lang);
774
+ }
775
+ /* code highlight */
776
+ .token.comment,
777
+ .token.prolog,
778
+ .token.doctype,
779
+ .token.cdata {
780
+ color: #8e908c;
781
+ }
782
+ .token.namespace {
783
+ opacity: 0.7;
784
+ }
785
+ .token.boolean,
786
+ .token.number {
787
+ color: #c76b29;
788
+ }
789
+ .token.punctuation {
790
+ color: #525252;
791
+ }
792
+ .token.property {
793
+ color: #c08b30;
794
+ }
795
+ .token.tag {
796
+ color: #2973b7;
797
+ }
798
+ .token.string {
799
+ color: var(--theme-color, #42b983);
800
+ }
801
+ .token.selector {
802
+ color: #6679cc;
803
+ }
804
+ .token.attr-name {
805
+ color: #2973b7;
806
+ }
807
+ .token.entity,
808
+ .token.url,
809
+ .language-css .token.string,
810
+ .style .token.string {
811
+ color: #22a2c9;
812
+ }
813
+ .token.attr-value,
814
+ .token.control,
815
+ .token.directive,
816
+ .token.unit {
817
+ color: var(--theme-color, #42b983);
818
+ }
819
+ .token.keyword,
820
+ .token.function {
821
+ color: #e96900;
822
+ }
823
+ .token.statement,
824
+ .token.regex,
825
+ .token.atrule {
826
+ color: #22a2c9;
827
+ }
828
+ .token.placeholder,
829
+ .token.variable {
830
+ color: #3d8fd1;
831
+ }
832
+ .token.deleted {
833
+ text-decoration: line-through;
834
+ }
835
+ .token.inserted {
836
+ border-bottom: 1px dotted #202746;
837
+ text-decoration: none;
838
+ }
839
+ .token.italic {
840
+ font-style: italic;
841
+ }
842
+ .token.important,
843
+ .token.bold {
844
+ font-weight: bold;
845
+ }
846
+ .token.important {
847
+ color: #c94922;
848
+ }
849
+ .token.entity {
850
+ cursor: help;
851
+ }
852
+ code .token {
853
+ -moz-osx-font-smoothing: initial;
854
+ -webkit-font-smoothing: initial;
855
+ min-height: 1.5rem;
856
+ position: relative;
857
+ left: auto;
858
+ }