chrome-devtools-frontend 1.0.923302 → 1.0.925026

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 (320) hide show
  1. package/config/gni/all_devtools_files.gni +0 -1
  2. package/config/gni/devtools_grd_files.gni +1 -3
  3. package/config/gni/devtools_image_files.gni +1 -1
  4. package/front_end/Images/src/copy_icon.svg +79 -0
  5. package/front_end/core/common/EventTarget.ts +22 -27
  6. package/front_end/core/common/Object.ts +28 -26
  7. package/front_end/core/common/Settings.ts +9 -8
  8. package/front_end/core/i18n/locales/en-US.json +18 -39
  9. package/front_end/core/i18n/locales/en-XL.json +18 -39
  10. package/front_end/core/platform/string-utilities.ts +4 -3
  11. package/front_end/core/sdk/EmulationModel.ts +1 -1
  12. package/front_end/core/sdk/NetworkManager.ts +1 -2
  13. package/front_end/core/sdk/ResourceTreeModel.ts +2 -3
  14. package/front_end/core/sdk/RuntimeModel.ts +2 -3
  15. package/front_end/core/sdk/SourceMap.ts +74 -31
  16. package/front_end/core/sdk/TargetManager.ts +9 -8
  17. package/front_end/core/sdk/TracingManager.ts +1 -1
  18. package/front_end/entrypoints/main/MainImpl.ts +1 -1
  19. package/front_end/entrypoints/node_main/NodeMain.ts +1 -1
  20. package/front_end/generated/InspectorBackendCommands.js +9 -5
  21. package/front_end/generated/protocol-mapping.d.ts +1 -0
  22. package/front_end/generated/protocol-proxy-api.d.ts +1 -0
  23. package/front_end/generated/protocol.d.ts +13 -2
  24. package/front_end/legacy_test_runner/application_test_runner/application_test_runner.js +0 -1
  25. package/front_end/models/bindings/CompilerScriptMapping.ts +24 -6
  26. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +30 -30
  27. package/front_end/models/extensions/ExtensionServer.ts +10 -13
  28. package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
  29. package/front_end/models/workspace_diff/WorkspaceDiff.ts +24 -20
  30. package/front_end/panels/animation/AnimationModel.ts +6 -1
  31. package/front_end/panels/animation/AnimationTimeline.ts +2 -2
  32. package/front_end/panels/application/AppManifestView.ts +58 -20
  33. package/front_end/panels/application/ApplicationPanelCacheSection.ts +1 -59
  34. package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -163
  35. package/front_end/panels/application/BackgroundServiceModel.ts +6 -1
  36. package/front_end/panels/application/BackgroundServiceView.ts +4 -4
  37. package/front_end/panels/application/DOMStorageItemsView.ts +2 -2
  38. package/front_end/panels/application/DatabaseModel.ts +6 -1
  39. package/front_end/panels/application/DatabaseTableView.ts +1 -1
  40. package/front_end/panels/application/IndexedDBModel.ts +9 -1
  41. package/front_end/panels/application/IndexedDBViews.ts +7 -8
  42. package/front_end/panels/application/ServiceWorkerCacheViews.ts +2 -2
  43. package/front_end/panels/application/ServiceWorkersView.ts +3 -3
  44. package/front_end/panels/application/StorageItemsView.ts +2 -3
  45. package/front_end/panels/application/StorageView.ts +0 -13
  46. package/front_end/panels/application/appManifestView.css +8 -0
  47. package/front_end/panels/application/application-legacy.ts +0 -3
  48. package/front_end/panels/application/application.ts +0 -4
  49. package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +1 -1
  50. package/front_end/panels/console/ConsolePinPane.ts +1 -2
  51. package/front_end/panels/console/ConsoleSidebar.ts +2 -2
  52. package/front_end/panels/console/ConsoleView.ts +7 -6
  53. package/front_end/panels/console/ConsoleViewMessage.ts +4 -3
  54. package/front_end/panels/coverage/CoverageModel.ts +9 -3
  55. package/front_end/panels/coverage/CoverageView.ts +3 -2
  56. package/front_end/panels/css_overview/CSSOverviewModel.ts +1 -1
  57. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +1 -1
  58. package/front_end/panels/elements/ComputedStyleWidget.ts +2 -2
  59. package/front_end/panels/elements/ElementsPanel.ts +3 -3
  60. package/front_end/panels/elements/StylePropertyTreeElement.ts +14 -4
  61. package/front_end/panels/elements/StylesSidebarPane.ts +4 -2
  62. package/front_end/panels/input/InputModel.ts +1 -1
  63. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +2 -4
  64. package/front_end/panels/issues/HiddenIssuesRow.ts +7 -12
  65. package/front_end/panels/layers/LayerTreeModel.ts +6 -1
  66. package/front_end/panels/layers/LayersPanel.ts +3 -4
  67. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -0
  68. package/front_end/panels/media/MainView.ts +22 -19
  69. package/front_end/panels/media/MediaModel.ts +15 -7
  70. package/front_end/panels/media/PlayerMessagesView.ts +2 -4
  71. package/front_end/panels/network/NetworkPanel.ts +6 -6
  72. package/front_end/panels/network/RequestHeadersView.ts +7 -0
  73. package/front_end/panels/network/ResourceWebSocketFrameView.ts +3 -2
  74. package/front_end/panels/network/networkLogView.css +5 -0
  75. package/front_end/panels/profiler/HeapProfileView.ts +14 -4
  76. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +14 -1
  77. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +11 -3
  78. package/front_end/panels/profiler/HeapSnapshotView.ts +67 -32
  79. package/front_end/panels/profiler/LiveHeapProfileView.ts +2 -2
  80. package/front_end/panels/profiler/ProfileHeader.ts +11 -2
  81. package/front_end/panels/profiler/ProfileView.ts +3 -3
  82. package/front_end/panels/profiler/ProfilesPanel.ts +7 -6
  83. package/front_end/panels/screencast/InputModel.ts +1 -1
  84. package/front_end/panels/screencast/ScreencastView.ts +1 -1
  85. package/front_end/panels/security/SecurityModel.ts +5 -1
  86. package/front_end/panels/security/SecurityPanel.ts +1 -2
  87. package/front_end/panels/sensors/SensorsView.ts +3 -2
  88. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +6 -3
  89. package/front_end/panels/sources/CSSPlugin.ts +1 -1
  90. package/front_end/panels/sources/DebuggerPlugin.ts +6 -4
  91. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +1 -1
  92. package/front_end/panels/sources/ScriptFormatterEditorAction.ts +1 -1
  93. package/front_end/panels/sources/SourcesPanel.ts +2 -2
  94. package/front_end/panels/timeline/TimelineFlameChartView.ts +5 -8
  95. package/front_end/panels/timeline/TimelineUIUtils.ts +1 -2
  96. package/front_end/panels/web_audio/AudioContextSelector.ts +4 -6
  97. package/front_end/panels/web_audio/WebAudioModel.ts +19 -1
  98. package/front_end/panels/web_audio/WebAudioView.ts +28 -22
  99. package/front_end/panels/web_audio/graph_visualizer/graph_visualizer.ts +0 -7
  100. package/front_end/panels/web_audio/web_audio.ts +1 -23
  101. package/front_end/panels/webauthn/WebauthnPane.ts +20 -10
  102. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +598 -595
  103. package/front_end/third_party/lighthouse/locales/en-US.json +6 -0
  104. package/front_end/third_party/lighthouse/locales/en-XL.json +6 -0
  105. package/front_end/third_party/lighthouse/report/bundle.d.ts +25 -4
  106. package/front_end/third_party/lighthouse/report/bundle.js +111 -22
  107. package/front_end/third_party/lighthouse/report-assets/report.css +120 -12
  108. package/front_end/third_party/lighthouse/report-assets/report.js +10 -10
  109. package/front_end/third_party/puppeteer/README.chromium +1 -1
  110. package/front_end/third_party/puppeteer/package/CHANGELOG.md +66 -0
  111. package/front_end/third_party/puppeteer/package/README.md +34 -13
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.d.ts.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js +5 -5
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts +18 -2
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js +8 -3
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts +2 -2
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.js +2 -2
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts +22 -6
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js +14 -7
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts +1 -0
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js +10 -6
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js.map +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.d.ts.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.js +120 -0
  131. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.js.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts.map +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +2 -2
  136. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +62 -3
  138. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +131 -3
  140. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts +40 -0
  142. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js +76 -0
  144. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts +53 -2
  146. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +82 -13
  148. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +2 -1
  150. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +14 -2
  152. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +5 -0
  154. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts +1053 -29
  157. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +1114 -22
  159. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.d.ts.map +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js +17 -6
  162. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.d.ts +1 -0
  164. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.d.ts.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.js +6 -1
  166. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.js.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts +21 -5
  168. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js +47 -28
  170. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.d.ts +17 -0
  172. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.d.ts.map +1 -0
  173. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.js +3 -0
  174. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.js.map +1 -0
  175. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +9 -10
  177. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +5 -2
  180. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +10 -2
  182. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +83 -6
  186. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
  188. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js +7 -1
  189. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  190. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts.map +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js +2 -2
  193. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js.map +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js +17 -3
  196. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
  198. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +5 -5
  200. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js.map +1 -1
  201. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +18 -2
  202. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -1
  203. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +8 -3
  204. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +2 -2
  206. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +2 -2
  207. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +22 -6
  208. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -1
  209. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +14 -7
  210. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js.map +1 -1
  211. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +1 -0
  212. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -1
  213. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +10 -6
  214. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js.map +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +120 -0
  217. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +1 -1
  219. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
  221. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +2 -2
  222. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
  223. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +62 -3
  224. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +131 -3
  226. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +40 -0
  228. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -1
  229. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +76 -0
  230. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js.map +1 -1
  231. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +53 -2
  232. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
  233. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +82 -13
  234. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
  235. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +2 -1
  236. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +14 -2
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +5 -0
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +1053 -29
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1115 -23
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -1
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +17 -6
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js.map +1 -1
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +1 -0
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +4 -0
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +21 -5
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +32 -13
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +1 -1
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.d.ts +17 -0
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.d.ts.map +1 -0
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.js +2 -0
  260. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.js.map +1 -0
  261. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +9 -10
  263. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  264. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +5 -2
  266. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +10 -2
  268. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +1 -1
  270. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +83 -6
  272. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
  274. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +7 -1
  275. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  276. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -1
  278. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +2 -2
  279. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js.map +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -1
  281. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +17 -3
  282. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js.map +1 -1
  283. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
  284. package/front_end/third_party/puppeteer/package/lib/types.d.ts +1382 -19726
  285. package/front_end/third_party/puppeteer/package/package.json +9 -6
  286. package/front_end/third_party/wasmparser/README.chromium +2 -2
  287. package/front_end/third_party/wasmparser/package/CHANGELOG.md +13 -0
  288. package/front_end/third_party/wasmparser/package/dist/cjs/WasmDis.js +50 -10
  289. package/front_end/third_party/wasmparser/package/dist/cjs/WasmDis.js.map +1 -1
  290. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.d.ts +21 -4
  291. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js +76 -8
  292. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js.map +1 -1
  293. package/front_end/third_party/wasmparser/package/dist/esm/WasmDis.js +50 -10
  294. package/front_end/third_party/wasmparser/package/dist/esm/WasmDis.js.map +1 -1
  295. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.d.ts +21 -4
  296. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js +76 -8
  297. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js.map +1 -1
  298. package/front_end/third_party/wasmparser/package/package.json +1 -1
  299. package/front_end/third_party/wasmparser/package/src/WasmDis.ts +47 -10
  300. package/front_end/third_party/wasmparser/package/src/WasmParser.ts +75 -5
  301. package/front_end/ui/components/icon_button/iconButton.css +4 -0
  302. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +2 -6
  303. package/front_end/ui/legacy/FilterBar.ts +1 -1
  304. package/front_end/ui/legacy/GlassPane.ts +1 -3
  305. package/front_end/ui/legacy/SplitWidget.ts +1 -1
  306. package/front_end/ui/legacy/UIUtils.ts +3 -4
  307. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +3 -3
  308. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
  309. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +15 -6
  310. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +7 -1
  311. package/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts +6 -2
  312. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
  313. package/front_end/ui/legacy/components/utils/TargetDetachedDialog.ts +1 -1
  314. package/front_end/ui/legacy/reportView.css +1 -0
  315. package/package.json +1 -1
  316. package/scripts/build/rollup.config.js +0 -5
  317. package/front_end/Images/src/exclamation_mark_circle_icon.svg +0 -65
  318. package/front_end/legacy_test_runner/application_test_runner/AppcacheTestRunner.js +0 -220
  319. package/front_end/panels/application/ApplicationCacheItemsView.ts +0 -335
  320. package/front_end/panels/application/ApplicationCacheModel.ts +0 -206
@@ -31,7 +31,7 @@
31
31
  * See the License for the specific language governing permissions and
32
32
  * limitations under the License.
33
33
  */
34
- class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._componentCache=new Map}createElement(e,t){const n=this._document.createElement(e);if(t)for(const e of t.split(/\s+/))e&&n.classList.add(e);return n}createElementNS(e,t,n){const r=this._document.createElementNS(e,t);if(n)for(const e of n.split(/\s+/))e&&r.classList.add(e);return r}createFragment(){return this._document.createDocumentFragment()}createChildOf(e,t,n){const r=this.createElement(t,n);return e.appendChild(r),r}createComponent(e){let t=this._componentCache.get(e);if(t){const e=t.cloneNode(!0);return this.findAll("style",e).forEach((e=>e.remove())),e}t=function(e,t){switch(t){case"3pFilter":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-3p-filter {\n background-color: var(--table-higlight-background-color);\n color: var(--color-gray-600);\n float: right;\n padding: 6px;\n }\n .lh-3p-filter-label, .lh-3p-filter-input {\n vertical-align: middle;\n user-select: none;\n }\n .lh-3p-filter-input:disabled + .lh-3p-ui-string {\n text-decoration: line-through;\n }\n "),t.append(n);const r=e.createElement("div","lh-3p-filter"),i=e.createElement("label","lh-3p-filter-label"),o=e.createElement("input","lh-3p-filter-input");o.setAttribute("type","checkbox"),o.setAttribute("checked","");const s=e.createElement("span","lh-3p-ui-string");s.append("Show 3rd party resources");const a=e.createElement("span","lh-3p-filter-count");return i.append(" ",o," ",s," (",a,") "),r.append(" ",i," "),t.append(r),t}(e);case"audit":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-audit"),r=e.createElement("details","lh-expandable-details"),i=e.createElement("summary"),o=e.createElement("div","lh-audit__header lh-expandable-details__summary"),s=e.createElement("span","lh-audit__score-icon"),a=e.createElement("span","lh-audit__title-and-text"),l=e.createElement("span","lh-audit__title"),d=e.createElement("span","lh-audit__display-text");a.append(" ",l," ",d," ");const c=e.createElement("div","lh-chevron-container");o.append(" ",s," ",a," ",c," "),i.append(" ",o," ");const p=e.createElement("div","lh-audit__description"),h=e.createElement("div","lh-audit__stackpacks");return r.append(" ",i," ",p," ",h," "),n.append(" ",r," "),t.append(n),t}(e);case"categoryHeader":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-category-header"),r=e.createElement("div","lh-score__gauge");r.setAttribute("role","heading"),r.setAttribute("aria-level","2");const i=e.createElement("div","lh-category-header__description");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"chevron":return function(e){const t=e.document().createDocumentFragment(),n=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-chevron");n.setAttribute("viewBox","0 0 100 100");const r=e.createElementNS("http://www.w3.org/2000/svg","g","lh-chevron__lines"),i=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-left");i.setAttribute("d","M10 50h40");const o=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-right");return o.setAttribute("d","M90 50H50"),r.append(" ",i," ",o," "),n.append(" ",r," "),t.append(n),t}(e);case"clump":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("details","lh-clump lh-audit-group"),r=e.createElement("summary"),i=e.createElement("div","lh-audit-group__summary"),o=e.createElement("div","lh-audit-group__header"),s=e.createElement("span","lh-audit-group__title"),a=e.createElement("span","lh-audit-group__itemcount");return o.append(" ",s," ",a," "," "," "),i.append(" ",o," "),r.append(" ",i," "),n.append(" ",r," "),t.append(n),t}(e);case"crc":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-crc-container"),r=e.createElement("style");r.append('\n .lh-crc .lh-tree-marker {\n width: 12px;\n height: 26px;\n display: block;\n float: left;\n background-position: top left;\n }\n .lh-crc .lh-horiz-down {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><g fill="%23D8D8D8" fill-rule="evenodd"><path d="M16 12v2H-2v-2z"/><path d="M9 12v14H7V12z"/></g></svg>\');\n }\n .lh-crc .lh-right {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M16 12v2H0v-2z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-up-right {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v14H7zm2 12h7v2H9z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-vert-right {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v27H7zm2 12h7v2H9z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-vert {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v26H7z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-crc-tree {\n font-size: 14px;\n width: 100%;\n overflow-x: auto;\n }\n .lh-crc .lh-crc-node {\n height: 26px;\n line-height: 26px;\n white-space: nowrap;\n }\n .lh-crc .lh-crc-node__tree-value {\n margin-left: 10px;\n }\n .lh-crc .lh-crc-node__tree-value div {\n display: inline;\n }\n .lh-crc .lh-crc-node__chain-duration {\n font-weight: 700;\n }\n .lh-crc .lh-crc-initial-nav {\n color: #595959;\n font-style: italic;\n }\n .lh-crc__summary-value {\n margin-bottom: 10px;\n }\n ');const i=e.createElement("div"),o=e.createElement("div","lh-crc__summary-value"),s=e.createElement("span","lh-crc__longest_duration_label"),a=e.createElement("b","lh-crc__longest_duration");o.append(" ",s," ",a," "),i.append(" ",o," ");const l=e.createElement("div","lh-crc"),d=e.createElement("div","lh-crc-initial-nav");return l.append(" ",d," "," "),n.append(" ",r," ",i," ",l," "),t.append(n),t}(e);case"crcChain":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-crc-node"),r=e.createElement("span","lh-crc-node__tree-marker"),i=e.createElement("span","lh-crc-node__tree-value");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"elementScreenshot":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-element-screenshot"),r=e.createElement("div","lh-element-screenshot__content"),i=e.createElement("div","lh-element-screenshot__mask"),o=e.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("height","0"),o.setAttribute("width","0");const s=e.createElementNS("http://www.w3.org/2000/svg","defs"),a=e.createElementNS("http://www.w3.org/2000/svg","clipPath");a.setAttribute("clipPathUnits","objectBoundingBox"),s.append(" ",a," "," "),o.append(" ",s," "),i.append(" ",o," ");const l=e.createElement("div","lh-element-screenshot__image"),d=e.createElement("div","lh-element-screenshot__element-marker");return r.append(" ",i," ",l," ",d," "),n.append(" ",r," "),t.append(n),t}(e);case"envItem":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("li","lh-env__item"),r=e.createElement("span","lh-env__name"),i=e.createElement("span","lh-env__description");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"footer":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-footer {\n padding: var(--footer-padding-vertical) calc(var(--default-padding) * 2);\n max-width: var(--report-width);\n margin: 0 auto;\n }\n .lh-footer .lh-generated {\n text-align: center;\n }\n .lh-env__title {\n font-size: var(--env-item-font-size-big);\n line-height: var(--env-item-line-height-big);\n text-align: center;\n padding: var(--score-container-padding);\n }\n .lh-env {\n padding: var(--default-padding) 0;\n }\n .lh-env__items {\n padding-left: 16px;\n margin: 0 0 var(--audits-margin-bottom);\n padding: 0;\n }\n .lh-env__items .lh-env__item:nth-child(2n) {\n background-color: var(--env-item-background-color);\n }\n .lh-env__item {\n display: flex;\n padding: var(--env-item-padding);\n position: relative;\n }\n span.lh-env__name {\n font-weight: bold;\n min-width: var(--env-name-min-width);\n flex: 0.5;\n padding: 0 8px;\n }\n span.lh-env__description {\n text-align: left;\n flex: 1;\n }\n "),t.append(n);const r=e.createElement("footer","lh-footer"),i=e.createElement("div","lh-env"),o=e.createElement("div","lh-env__title");o.append("Runtime Settings");const s=e.createElement("ul","lh-env__items");s.append(" "," "),i.append(" ",o," ",s," ");const a=e.createElement("div","lh-generated"),l=e.createElement("b");l.append("Lighthouse");const d=e.createElement("span","lh-footer__version"),c=e.createElement("a","lh-footer__version_issue");return c.setAttribute("href","https://github.com/GoogleChrome/Lighthouse/issues"),c.setAttribute("target","_blank"),c.setAttribute("rel","noopener"),c.append("File an issue"),a.append(" "," Generated by ",l," ",d," | ",c," "),r.append(" "," ",i," ",a," "),t.append(r),t}(e);case"gauge":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("a","lh-gauge__wrapper");n.setAttribute("href","#");const r=e.createElement("div","lh-gauge__svg-wrapper"),i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge");i.setAttribute("viewBox","0 0 120 120");const o=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-base");o.setAttribute("r","56"),o.setAttribute("cx","60"),o.setAttribute("cy","60"),o.setAttribute("stroke-width","8");const s=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-arc");s.setAttribute("r","56"),s.setAttribute("cx","60"),s.setAttribute("cy","60"),s.setAttribute("stroke-width","8"),i.append(" ",o," ",s," "),r.append(" ",i," ");const a=e.createElement("div","lh-gauge__percentage"),l=e.createElement("div","lh-gauge__label");return n.append(" "," ",r," ",a," "," ",l," "),t.append(n),t}(e);case"gaugePwa":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-gauge--pwa .lh-gauge--pwa__component {\n display: none;\n }\n .lh-gauge--pwa__wrapper:not(.lh-badged--all) .lh-gauge--pwa__logo > path {\n /* Gray logo unless everything is passing. */\n fill: #B0B0B0;\n }\n\n .lh-gauge--pwa__disc {\n fill: var(--color-gray-200);\n }\n\n .lh-gauge--pwa__logo--primary-color {\n fill: #304FFE;\n }\n\n .lh-gauge--pwa__logo--secondary-color {\n fill: #3D3D3D;\n }\n .lh-dark .lh-gauge--pwa__logo--secondary-color {\n fill: #D8B6B6;\n }\n\n /* No passing groups. */\n .lh-gauge--pwa__wrapper:not([class*='lh-badged--']) .lh-gauge--pwa__na-line {\n display: inline;\n }\n /* Just optimized. Same n/a line as no passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-optimized:not(.lh-badged--pwa-installable) .lh-gauge--pwa__na-line {\n display: inline;\n }\n\n /* Just installable. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-installable .lh-gauge--pwa__installable-badge {\n display: inline;\n }\n\n /* All passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--all .lh-gauge--pwa__check-circle {\n display: inline;\n }\n "),t.append(n);const r=e.createElement("a","lh-gauge__wrapper lh-gauge--pwa__wrapper");r.setAttribute("href","#");const i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge lh-gauge--pwa");i.setAttribute("viewBox","0 0 60 60");const o=e.createElementNS("http://www.w3.org/2000/svg","defs"),s=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");s.setAttribute("id","lh-gauge--pwa__check-circle__gradient"),s.setAttribute("x1","50%"),s.setAttribute("y1","0%"),s.setAttribute("x2","50%"),s.setAttribute("y2","100%");const a=e.createElementNS("http://www.w3.org/2000/svg","stop");a.setAttribute("stop-color","#00C852"),a.setAttribute("offset","0%");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#009688"),l.setAttribute("offset","100%"),s.append(" ",a," ",l," ");const d=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");d.setAttribute("id","lh-gauge--pwa__installable__shadow-gradient"),d.setAttribute("x1","76.056%"),d.setAttribute("x2","24.111%"),d.setAttribute("y1","82.995%"),d.setAttribute("y2","24.735%");const c=e.createElementNS("http://www.w3.org/2000/svg","stop");c.setAttribute("stop-color","#A5D6A7"),c.setAttribute("offset","0%");const p=e.createElementNS("http://www.w3.org/2000/svg","stop");p.setAttribute("stop-color","#80CBC4"),p.setAttribute("offset","100%"),d.append(" ",c," ",p," ");const h=e.createElementNS("http://www.w3.org/2000/svg","g");h.setAttribute("id","lh-gauge--pwa__installable-badge");const u=e.createElementNS("http://www.w3.org/2000/svg","circle");u.setAttribute("fill","#FFFFFF"),u.setAttribute("cx","10"),u.setAttribute("cy","10"),u.setAttribute("r","10");const m=e.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("fill","#009688"),m.setAttribute("d","M10 4.167A5.835 5.835 0 0 0 4.167 10 5.835 5.835 0 0 0 10 15.833 5.835 5.835 0 0 0 15.833 10 5.835 5.835 0 0 0 10 4.167zm2.917 6.416h-2.334v2.334H9.417v-2.334H7.083V9.417h2.334V7.083h1.166v2.334h2.334v1.166z"),h.append(" ",u," ",m," "),o.append(" ",s," ",d," ",h," ");const g=e.createElementNS("http://www.w3.org/2000/svg","g");g.setAttribute("stroke","none"),g.setAttribute("fill-rule","nonzero");const f=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge--pwa__disc");f.setAttribute("cx","30"),f.setAttribute("cy","30"),f.setAttribute("r","30");const _=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__logo"),b=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");b.setAttribute("d","M35.66 19.39l.7-1.75h2L37.4 15 38.6 12l3.4 9h-2.51l-.58-1.61z");const w=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--primary-color");w.setAttribute("d","M33.52 21l3.65-9h-2.42l-2.5 5.82L30.5 12h-1.86l-1.9 5.82-1.35-2.65-1.21 3.72L25.4 21h2.38l1.72-5.2 1.64 5.2z");const v=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");v.setAttribute("fill-rule","nonzero"),v.setAttribute("d","M20.3 17.91h1.48c.45 0 .85-.05 1.2-.15l.39-1.18 1.07-3.3a2.64 2.64 0 0 0-.28-.37c-.55-.6-1.36-.91-2.42-.91H18v9h2.3V17.9zm1.96-3.84c.22.22.33.5.33.87 0 .36-.1.65-.29.87-.2.23-.59.35-1.15.35h-.86v-2.41h.87c.52 0 .89.1 1.1.32z"),_.append(" ",b," ",w," ",v," ");const y=e.createElementNS("http://www.w3.org/2000/svg","rect","lh-gauge--pwa__component lh-gauge--pwa__na-line");y.setAttribute("fill","#FFFFFF"),y.setAttribute("x","20"),y.setAttribute("y","32"),y.setAttribute("width","20"),y.setAttribute("height","4"),y.setAttribute("rx","2");const x=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__installable-badge");x.setAttribute("transform","translate(20, 29)");const E=e.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("fill","url(#lh-gauge--pwa__installable__shadow-gradient)"),E.setAttribute("d","M33.629 19.487c-4.272 5.453-10.391 9.39-17.415 10.869L3 17.142 17.142 3 33.63 19.487z");const A=e.createElementNS("http://www.w3.org/2000/svg","use");A.setAttribute("href","#lh-gauge--pwa__installable-badge"),x.append(" ",E," ",A," ");const C=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__check-circle");C.setAttribute("transform","translate(18, 28)");const S=e.createElementNS("http://www.w3.org/2000/svg","circle");S.setAttribute("fill","#FFFFFF"),S.setAttribute("cx","12"),S.setAttribute("cy","12"),S.setAttribute("r","12");const k=e.createElementNS("http://www.w3.org/2000/svg","path");k.setAttribute("fill","url(#lh-gauge--pwa__check-circle__gradient)"),k.setAttribute("d","M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"),C.append(" ",S," ",k," "),g.append(" "," ",f," ",_," "," ",y," "," ",x," "," ",C," "),i.append(" ",o," ",g," ");const L=e.createElement("div","lh-gauge__label");return r.append(" ",i," ",L," "),t.append(r),t}(e);case"heading":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n /* CSS Fireworks. Originally by Eddie Lin\n https://codepen.io/paulirish/pen/yEVMbP\n */\n .lh-pyro {\n display: none;\n z-index: 1;\n pointer-events: none;\n }\n .lh-score100 .lh-pyro {\n display: block;\n }\n .lh-score100 .lh-lighthouse stop:first-child {\n stop-color: hsla(200, 12%, 95%, 0);\n }\n .lh-score100 .lh-lighthouse stop:last-child {\n stop-color: hsla(65, 81%, 76%, 1);\n }\n\n .lh-pyro > .lh-pyro-before, .lh-pyro > .lh-pyro-after {\n position: absolute;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n box-shadow: 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff;\n animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;\n animation-delay: 1s, 1s, 1s;\n }\n\n .lh-pyro > .lh-pyro-after {\n animation-delay: 2.25s, 2.25s, 2.25s;\n animation-duration: 1.25s, 1.25s, 6.25s;\n }\n .lh-fireworks-paused .lh-pyro > div {\n animation-play-state: paused;\n }\n\n @keyframes bang {\n to {\n box-shadow: -70px -115.67px #47ebbc, -28px -99.67px #eb47a4, 58px -31.67px #7eeb47, 13px -141.67px #eb47c5, -19px 6.33px #7347eb, -2px -74.67px #ebd247, 24px -151.67px #eb47e0, 57px -138.67px #b4eb47, -51px -104.67px #479eeb, 62px 8.33px #ebcf47, -93px 0.33px #d547eb, -16px -118.67px #47bfeb, 53px -84.67px #47eb83, 66px -57.67px #eb47bf, -93px -65.67px #91eb47, 30px -13.67px #86eb47, -2px -59.67px #83eb47, -44px 1.33px #eb47eb, 61px -58.67px #47eb73, 5px -22.67px #47e8eb, -66px -28.67px #ebe247, 42px -123.67px #eb5547, -75px 26.33px #7beb47, 15px -52.67px #a147eb, 36px -51.67px #eb8347, -38px -12.67px #eb5547, -46px -59.67px #47eb81, 78px -114.67px #eb47ba, 15px -156.67px #eb47bf, -36px 1.33px #eb4783, -72px -86.67px #eba147, 31px -46.67px #ebe247, -68px 29.33px #47e2eb, -55px 19.33px #ebe047, -56px 27.33px #4776eb, -13px -91.67px #eb5547, -47px -138.67px #47ebc7, -18px -96.67px #eb47ac, 11px -88.67px #4783eb, -67px -28.67px #47baeb, 53px 10.33px #ba47eb, 11px 19.33px #5247eb, -5px -11.67px #eb4791, -68px -4.67px #47eba7, 95px -37.67px #eb478b, -67px -162.67px #eb5d47, -54px -120.67px #eb6847, 49px -12.67px #ebe047, 88px 8.33px #47ebda, 97px 33.33px #eb8147, 6px -71.67px #ebbc47;\n }\n }\n @keyframes gravity {\n to {\n transform: translateY(80px);\n opacity: 0;\n }\n }\n @keyframes position {\n 0%, 19.9% {\n margin-top: 4%;\n margin-left: 47%;\n }\n 20%, 39.9% {\n margin-top: 7%;\n margin-left: 30%;\n }\n 40%, 59.9% {\n margin-top: 6%;\n margin-left: 70%;\n }\n 60%, 79.9% {\n margin-top: 3%;\n margin-left: 20%;\n }\n 80%, 99.9% {\n margin-top: 3%;\n margin-left: 80%;\n }\n }\n "),t.append(n);const r=e.createElement("div","lh-header-container"),i=e.createElement("div","lh-scores-wrapper-placeholder");return r.append(" ",i," "),t.append(r),t}(e);case"metric":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-metric"),r=e.createElement("div","lh-metric__innerwrap"),i=e.createElement("span","lh-metric__title"),o=e.createElement("div","lh-metric__value"),s=e.createElement("div","lh-metric__description");return r.append(" ",i," ",o," ",s," "),n.append(" ",r," "),t.append(n),t}(e);case"metricsToggle":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-metrics-toggle"),r=e.createElement("input","lh-metrics-toggle__input");r.setAttribute("type","checkbox"),r.setAttribute("id","toggle-metric-descriptions"),r.setAttribute("aria-label","Toggle the display of metric descriptions");const i=e.createElement("label","lh-metrics-toggle__label");i.setAttribute("for","toggle-metric-descriptions");const o=e.createElement("div","lh-metrics-toggle__icon lh-metrics-toggle__icon--less");o.setAttribute("aria-hidden","true");const s=e.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("width","24"),s.setAttribute("height","24"),s.setAttribute("viewBox","0 0 24 24");const a=e.createElementNS("http://www.w3.org/2000/svg","path","lh-metrics-toggle__lines");a.setAttribute("d","M4 9h16v2H4zm0 4h10v2H4z"),s.append(" ",a," "),o.append(" ",s," ");const l=e.createElement("div","lh-metrics-toggle__icon lh-metrics-toggle__icon--more");l.setAttribute("aria-hidden","true");const d=e.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("width","24"),d.setAttribute("height","24"),d.setAttribute("viewBox","0 0 24 24");const c=e.createElementNS("http://www.w3.org/2000/svg","path","lh-metrics-toggle__lines");return c.setAttribute("d","M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z"),d.append(" ",c," "),l.append(" ",d," "),i.append(" ",o," ",l," "),n.append(" ",r," ",i," "),t.append(n),t}(e);case"opportunity":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-audit lh-audit--load-opportunity"),r=e.createElement("details","lh-expandable-details"),i=e.createElement("summary"),o=e.createElement("div","lh-audit__header lh-expandable-details__summary"),s=e.createElement("div","lh-load-opportunity__cols"),a=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),l=e.createElement("span","lh-audit__score-icon"),d=e.createElement("div","lh-audit__title");a.append(" ",l," ",d," ");const c=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two"),p=e.createElement("div","lh-load-opportunity__sparkline"),h=e.createElement("div","lh-sparkline"),u=e.createElement("div","lh-sparkline__bar");h.append(u),p.append(" ",h," ");const m=e.createElement("div","lh-audit__display-text"),g=e.createElement("div","lh-chevron-container");c.append(" ",p," ",m," ",g," "),s.append(" ",a," ",c," "),o.append(" ",s," "),i.append(" ",o," ");const f=e.createElement("div","lh-audit__description"),_=e.createElement("div","lh-audit__stackpacks");return r.append(" ",i," ",f," ",_," "),n.append(" ",r," "),t.append(n),t}(e);case"opportunityHeader":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-load-opportunity__header lh-load-opportunity__cols"),r=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),i=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"scorescale":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-scorescale"),r=e.createElement("span","lh-scorescale-range lh-scorescale-range--fail");r.append("0–49");const i=e.createElement("span","lh-scorescale-range lh-scorescale-range--average");i.append("50–89");const o=e.createElement("span","lh-scorescale-range lh-scorescale-range--pass");return o.append("90–100"),n.append(" ",r," ",i," ",o," "),t.append(n),t}(e);case"scoresWrapper":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-scores-container {\n display: flex;\n flex-direction: column;\n padding: var(--scores-container-padding);\n position: relative;\n width: 100%;\n }\n\n .lh-sticky-header {\n --gauge-circle-size: 36px;\n --plugin-badge-size: 18px;\n --plugin-icon-size: 75%;\n --gauge-wrapper-width: 60px;\n --gauge-percentage-font-size: 13px;\n position: fixed;\n left: 0;\n right: 0;\n top: var(--topbar-height);\n font-weight: 700;\n display: none;\n justify-content: center;\n background-color: var(--sticky-header-background-color);\n border-bottom: 1px solid var(--color-gray-200);\n padding-top: var(--score-container-padding);\n padding-bottom: 4px;\n z-index: 1;\n pointer-events: none;\n }\n\n .lh-devtools .lh-sticky-header {\n /* The report within DevTools is placed in a container with overflow, which changes the placement of this header unless we change `position` to `sticky.` */\n position: sticky;\n }\n\n .lh-sticky-header--visible {\n display: grid;\n grid-auto-flow: column;\n pointer-events: auto;\n }\n\n /* Disable the gauge arc animation for the sticky header, so toggling display: none\n does not play the animation. */\n .lh-sticky-header .lh-gauge-arc {\n animation: none;\n }\n\n .lh-sticky-header .lh-gauge__label {\n display: none;\n }\n\n .lh-highlighter {\n width: var(--gauge-wrapper-width);\n height: 1px;\n background-color: var(--highlighter-background-color);\n /* Position at bottom of first gauge in sticky header. */\n position: absolute;\n grid-column: 1;\n bottom: -1px;\n }\n\n .lh-gauge__wrapper:first-of-type {\n contain: none;\n }\n "),t.append(n);const r=e.createElement("div","lh-scores-wrapper"),i=e.createElement("div","lh-scores-container"),o=e.createElement("div","lh-pyro"),s=e.createElement("div","lh-before"),a=e.createElement("div","lh-after");return o.append(" ",s," ",a," "),i.append(" ",o," "),r.append(" ",i," "),t.append(r),t}(e);case"snippet":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet"),r=e.createElement("style");return r.append('\n :root {\n --snippet-highlight-light: #fbf1f2;\n --snippet-highlight-dark: #ffd6d8;\n }\n\n .lh-snippet__header {\n position: relative;\n overflow: hidden;\n padding: 10px;\n border-bottom: none;\n color: var(--snippet-color);\n background-color: var(--snippet-background-color);\n border: 1px solid var(--report-border-color-secondary);\n }\n .lh-snippet__title {\n font-weight: bold;\n float: left;\n }\n .lh-snippet__node {\n float: left;\n margin-left: 4px;\n }\n .lh-snippet__toggle-expand {\n padding: 1px 7px;\n margin-top: -1px;\n margin-right: -7px;\n float: right;\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 14px;\n color: #0c50c7;\n }\n\n .lh-snippet__snippet {\n overflow: auto;\n border: 1px solid var(--report-border-color-secondary);\n }\n /* Container needed so that all children grow to the width of the scroll container */\n .lh-snippet__snippet-inner {\n display: inline-block;\n min-width: 100%;\n }\n\n .lh-snippet:not(.lh-snippet--expanded) .lh-snippet__show-if-expanded {\n display: none;\n }\n .lh-snippet.lh-snippet--expanded .lh-snippet__show-if-collapsed {\n display: none;\n }\n\n .lh-snippet__line {\n background: white;\n white-space: pre;\n display: flex;\n }\n .lh-snippet__line:not(.lh-snippet__line--message):first-child {\n padding-top: 4px;\n }\n .lh-snippet__line:not(.lh-snippet__line--message):last-child {\n padding-bottom: 4px;\n }\n .lh-snippet__line--content-highlighted {\n background: var(--snippet-highlight-dark);\n }\n .lh-snippet__line--message {\n background: var(--snippet-highlight-light);\n }\n .lh-snippet__line--message .lh-snippet__line-number {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n .lh-snippet__line--message code {\n padding: 10px;\n padding-left: 5px;\n color: var(--color-fail);\n font-family: var(--report-font-family);\n }\n .lh-snippet__line--message code {\n white-space: normal;\n }\n .lh-snippet__line-icon {\n padding-top: 10px;\n display: none;\n }\n .lh-snippet__line--message .lh-snippet__line-icon {\n display: block;\n }\n .lh-snippet__line-icon:before {\n content: "";\n display: inline-block;\n vertical-align: middle;\n margin-right: 4px;\n width: var(--score-icon-size);\n height: var(--score-icon-size);\n background-image: var(--fail-icon-url);\n }\n .lh-snippet__line-number {\n flex-shrink: 0;\n width: 40px;\n text-align: right;\n font-family: monospace;\n padding-right: 5px;\n margin-right: 5px;\n color: var(--color-gray-600);\n user-select: none;\n }\n '),n.append(" ",r," "),t.append(n),t}(e);case"snippetContent":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet__snippet"),r=e.createElement("div","lh-snippet__snippet-inner");return n.append(" ",r," "),t.append(n),t}(e);case"snippetHeader":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet__header"),r=e.createElement("div","lh-snippet__title"),i=e.createElement("div","lh-snippet__node"),o=e.createElement("button","lh-snippet__toggle-expand"),s=e.createElement("span","lh-snippet__btn-label-collapse lh-snippet__show-if-expanded"),a=e.createElement("span","lh-snippet__btn-label-expand lh-snippet__show-if-collapsed");return o.append(" ",s," ",a," "),n.append(" ",r," ",i," ",o," "),t.append(n),t}(e);case"snippetLine":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet__line"),r=e.createElement("div","lh-snippet__line-number"),i=e.createElement("div","lh-snippet__line-icon"),o=e.createElement("code");return n.append(" ",r," ",i," ",o," "),t.append(n),t}(e);case"topbar":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-topbar {\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n height: var(--topbar-height);\n background-color: var(--topbar-background-color);\n padding: var(--topbar-padding);\n }\n\n .lh-topbar__logo {\n width: var(--topbar-logo-size);\n height: var(--topbar-logo-size);\n user-select: none;\n flex: none;\n }\n\n .lh-topbar__url {\n margin: var(--topbar-padding);\n text-decoration: none;\n color: var(--report-text-color);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .lh-tools {\n margin-left: auto;\n will-change: transform;\n min-width: var(--report-icon-size);\n }\n .lh-tools__button {\n width: var(--report-icon-size);\n height: var(--report-icon-size);\n cursor: pointer;\n margin-right: 5px;\n /* This is actually a button element, but we want to style it like a transparent div. */\n display: flex;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n outline: inherit;\n }\n .lh-tools__button svg {\n fill: var(--tools-icon-color);\n }\n .lh-dark .lh-tools__button svg {\n filter: invert(1);\n }\n .lh-tools__button.lh-active + .lh-tools__dropdown {\n opacity: 1;\n clip: rect(-1px, 194px, 242px, -3px);\n visibility: visible;\n }\n .lh-tools__dropdown {\n position: absolute;\n background-color: var(--report-background-color);\n border: 1px solid var(--report-border-color);\n border-radius: 3px;\n padding: calc(var(--default-padding) / 2) 0;\n cursor: pointer;\n top: 36px;\n right: 0;\n box-shadow: 1px 1px 3px #ccc;\n min-width: 125px;\n clip: rect(0, 164px, 0, 0);\n visibility: hidden;\n opacity: 0;\n transition: all 200ms cubic-bezier(0,0,0.2,1);\n }\n .lh-tools__dropdown a {\n color: currentColor;\n text-decoration: none;\n white-space: nowrap;\n padding: 0 12px;\n line-height: 2;\n }\n .lh-tools__dropdown a:hover,\n .lh-tools__dropdown a:focus {\n background-color: var(--color-gray-200);\n outline: none;\n }\n /* save-gist option hidden in report. */\n .lh-tools__dropdown a[data-action='save-gist'] {\n display: none;\n }\n\n @media screen and (max-width: 964px) {\n .lh-tools__dropdown {\n right: 0;\n left: initial;\n }\n }\n @media print {\n .lh-topbar {\n position: static;\n margin-left: 0;\n }\n\n .lh-tools__dropdown {\n display: none;\n }\n }\n "),t.append(n);const r=e.createElement("div","lh-topbar"),i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-topbar__logo");i.setAttribute("viewBox","0 0 24 24");const o=e.createElementNS("http://www.w3.org/2000/svg","defs"),s=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");s.setAttribute("x1","57.456%"),s.setAttribute("y1","13.086%"),s.setAttribute("x2","18.259%"),s.setAttribute("y2","72.322%"),s.setAttribute("id","lh-topbar__logo--a");const a=e.createElementNS("http://www.w3.org/2000/svg","stop");a.setAttribute("stop-color","#262626"),a.setAttribute("stop-opacity",".1"),a.setAttribute("offset","0%");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#262626"),l.setAttribute("stop-opacity","0"),l.setAttribute("offset","100%"),s.append(" ",a," ",l," ");const d=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");d.setAttribute("x1","100%"),d.setAttribute("y1","50%"),d.setAttribute("x2","0%"),d.setAttribute("y2","50%"),d.setAttribute("id","lh-topbar__logo--b");const c=e.createElementNS("http://www.w3.org/2000/svg","stop");c.setAttribute("stop-color","#262626"),c.setAttribute("stop-opacity",".1"),c.setAttribute("offset","0%");const p=e.createElementNS("http://www.w3.org/2000/svg","stop");p.setAttribute("stop-color","#262626"),p.setAttribute("stop-opacity","0"),p.setAttribute("offset","100%"),d.append(" ",c," ",p," ");const h=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");h.setAttribute("x1","58.764%"),h.setAttribute("y1","65.756%"),h.setAttribute("x2","36.939%"),h.setAttribute("y2","50.14%"),h.setAttribute("id","lh-topbar__logo--c");const u=e.createElementNS("http://www.w3.org/2000/svg","stop");u.setAttribute("stop-color","#262626"),u.setAttribute("stop-opacity",".1"),u.setAttribute("offset","0%");const m=e.createElementNS("http://www.w3.org/2000/svg","stop");m.setAttribute("stop-color","#262626"),m.setAttribute("stop-opacity","0"),m.setAttribute("offset","100%"),h.append(" ",u," ",m," ");const g=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");g.setAttribute("x1","41.635%"),g.setAttribute("y1","20.358%"),g.setAttribute("x2","72.863%"),g.setAttribute("y2","85.424%"),g.setAttribute("id","lh-topbar__logo--d");const f=e.createElementNS("http://www.w3.org/2000/svg","stop");f.setAttribute("stop-color","#FFF"),f.setAttribute("stop-opacity",".1"),f.setAttribute("offset","0%");const _=e.createElementNS("http://www.w3.org/2000/svg","stop");_.setAttribute("stop-color","#FFF"),_.setAttribute("stop-opacity","0"),_.setAttribute("offset","100%"),g.append(" ",f," ",_," "),o.append(" ",s," ",d," ",h," ",g," ");const b=e.createElementNS("http://www.w3.org/2000/svg","g");b.setAttribute("fill","none"),b.setAttribute("fill-rule","evenodd");const w=e.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("d","M12 3l4.125 2.625v3.75H18v2.25h-1.688l1.5 9.375H6.188l1.5-9.375H6v-2.25h1.875V5.648L12 3zm2.201 9.938L9.54 14.633 9 18.028l5.625-2.062-.424-3.028zM12.005 5.67l-1.88 1.207v2.498h3.75V6.86l-1.87-1.19z"),w.setAttribute("fill","#F44B21");const v=e.createElementNS("http://www.w3.org/2000/svg","path");v.setAttribute("fill","#FFF"),v.setAttribute("d","M14.201 12.938L9.54 14.633 9 18.028l5.625-2.062z");const y=e.createElementNS("http://www.w3.org/2000/svg","path");y.setAttribute("d","M6 18c-2.042 0-3.95-.01-5.813 0l1.5-9.375h4.326L6 18z"),y.setAttribute("fill","url(#lh-topbar__logo--a)"),y.setAttribute("fill-rule","nonzero"),y.setAttribute("transform","translate(6 3)");const x=e.createElementNS("http://www.w3.org/2000/svg","path");x.setAttribute("fill","#FFF176"),x.setAttribute("fill-rule","nonzero"),x.setAttribute("d","M13.875 9.375v-2.56l-1.87-1.19-1.88 1.207v2.543z");const E=e.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("fill","url(#lh-topbar__logo--b)"),E.setAttribute("fill-rule","nonzero"),E.setAttribute("d","M0 6.375h6v2.25H0z"),E.setAttribute("transform","translate(6 3)");const A=e.createElementNS("http://www.w3.org/2000/svg","path");A.setAttribute("fill","url(#lh-topbar__logo--c)"),A.setAttribute("fill-rule","nonzero"),A.setAttribute("d","M6 6.375H1.875v-3.75L6 0z"),A.setAttribute("transform","translate(6 3)");const C=e.createElementNS("http://www.w3.org/2000/svg","path");C.setAttribute("fill","url(#lh-topbar__logo--d)"),C.setAttribute("fill-rule","nonzero"),C.setAttribute("d","M6 0l4.125 2.625v3.75H12v2.25h-1.688l1.5 9.375H.188l1.5-9.375H0v-2.25h1.875V2.648z"),C.setAttribute("transform","translate(6 3)"),b.append(" ",w," ",v," ",y," ",x," ",E," ",A," ",C," "),i.append(" ",o," ",b," ");const S=e.createElement("a","lh-topbar__url");S.setAttribute("href",""),S.setAttribute("target","_blank"),S.setAttribute("rel","noopener");const k=e.createElement("div","lh-tools"),L=e.createElement("button","lh-tools__button");L.setAttribute("id","lh-tools-button"),L.setAttribute("title","Tools menu"),L.setAttribute("aria-label","Toggle report tools menu"),L.setAttribute("aria-haspopup","menu"),L.setAttribute("aria-expanded","false"),L.setAttribute("aria-controls","lh-tools-dropdown");const M=e.createElementNS("http://www.w3.org/2000/svg","svg");M.setAttribute("width","100%"),M.setAttribute("height","100%"),M.setAttribute("viewBox","0 0 24 24");const N=e.createElementNS("http://www.w3.org/2000/svg","path");N.setAttribute("d","M0 0h24v24H0z"),N.setAttribute("fill","none");const T=e.createElementNS("http://www.w3.org/2000/svg","path");T.setAttribute("d","M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"),M.append(" ",N," ",T," "),L.append(" ",M," ");const D=e.createElement("div","lh-tools__dropdown");D.setAttribute("id","lh-tools-dropdown"),D.setAttribute("role","menu"),D.setAttribute("aria-labelledby","lh-tools-button");const F=e.createElement("a","lh-report-icon lh-report-icon--print");F.setAttribute("role","menuitem"),F.setAttribute("tabindex","-1"),F.setAttribute("href","#"),F.setAttribute("data-i18n","dropdownPrintSummary"),F.setAttribute("data-action","print-summary");const R=e.createElement("a","lh-report-icon lh-report-icon--print");R.setAttribute("role","menuitem"),R.setAttribute("tabindex","-1"),R.setAttribute("href","#"),R.setAttribute("data-i18n","dropdownPrintExpanded"),R.setAttribute("data-action","print-expanded");const U=e.createElement("a","lh-report-icon lh-report-icon--copy");U.setAttribute("role","menuitem"),U.setAttribute("tabindex","-1"),U.setAttribute("href","#"),U.setAttribute("data-i18n","dropdownCopyJSON"),U.setAttribute("data-action","copy");const P=e.createElement("a","lh-report-icon lh-report-icon--download");P.setAttribute("role","menuitem"),P.setAttribute("tabindex","-1"),P.setAttribute("href","#"),P.setAttribute("data-i18n","dropdownSaveHTML"),P.setAttribute("data-action","save-html");const H=e.createElement("a","lh-report-icon lh-report-icon--download");H.setAttribute("role","menuitem"),H.setAttribute("tabindex","-1"),H.setAttribute("href","#"),H.setAttribute("data-i18n","dropdownSaveJSON"),H.setAttribute("data-action","save-json");const $=e.createElement("a","lh-report-icon lh-report-icon--open");$.setAttribute("role","menuitem"),$.setAttribute("tabindex","-1"),$.setAttribute("href","#"),$.setAttribute("data-i18n","dropdownViewer"),$.setAttribute("data-action","open-viewer");const O=e.createElement("a","lh-report-icon lh-report-icon--open");O.setAttribute("role","menuitem"),O.setAttribute("tabindex","-1"),O.setAttribute("href","#"),O.setAttribute("data-i18n","dropdownSaveGist"),O.setAttribute("data-action","save-gist");const z=e.createElement("a","lh-report-icon lh-report-icon--dark");return z.setAttribute("role","menuitem"),z.setAttribute("tabindex","-1"),z.setAttribute("href","#"),z.setAttribute("data-i18n","dropdownDarkTheme"),z.setAttribute("data-action","toggle-dark"),D.append(" ",F," ",R," ",U," ",P," ",H," ",$," ",O," ",z," "),k.append(" ",L," ",D," "),r.append(" "," ",i," ",S," ",k," "),t.append(r),t}(e);case"warningsToplevel":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-warnings lh-warnings--toplevel"),r=e.createElement("p","lh-warnings__msg"),i=e.createElement("ul");return n.append(" ",r," ",i," "),t.append(n),t}(e)}throw new Error("unexpected component: "+t)}(this,e),this._componentCache.set(e,t);return t.cloneNode(!0)}clearComponentCache(){this._componentCache.clear()}convertMarkdownLinkSnippets(e){const t=this.createElement("span");for(const n of a.splitMarkdownLink(e)){if(!n.isLink){t.appendChild(this._document.createTextNode(n.text));continue}const e=new URL(n.linkHref);["https://developers.google.com","https://web.dev"].includes(e.origin)&&(e.searchParams.set("utm_source","lighthouse"),e.searchParams.set("utm_medium",this._lighthouseChannel));const r=this.createElement("a");r.rel="noopener",r.target="_blank",r.textContent=n.text,this.safelySetHref(r,e.href),t.appendChild(r)}return t}safelySetHref(e,t){if((t=t||"").startsWith("#"))return void(e.href=t);let n;try{n=new URL(t)}catch(e){}n&&["https:","http:"].includes(n.protocol)&&(e.href=n.href)}safelySetBlobHref(e,t){if("text/html"!==t.type&&"application/json"!==t.type)throw new Error("Unsupported blob type");const n=URL.createObjectURL(t);e.href=n}convertMarkdownCodeSnippets(e){const t=this.createElement("span");for(const n of a.splitMarkdownCodeSpans(e))if(n.isCode){const e=this.createElement("code");e.textContent=n.text,t.appendChild(e)}else t.appendChild(this._document.createTextNode(n.text));return t}setLighthouseChannel(e){this._lighthouseChannel=e}document(){return this._document}isDevTools(){return!!this._document.querySelector(".lh-devtools")}find(e,t){const n=t.querySelector(e);if(null===n)throw new Error(`query ${e} not found`);return n}findAll(e,t){return Array.from(t.querySelectorAll(e))}fireEventOn(e,t=this._document,n){const r=new CustomEvent(e,n?{detail:n}:void 0);t.dispatchEvent(r)}}
34
+ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._componentCache=new Map}createElement(e,t){const n=this._document.createElement(e);if(t)for(const e of t.split(/\s+/))e&&n.classList.add(e);return n}createElementNS(e,t,n){const r=this._document.createElementNS(e,t);if(n)for(const e of n.split(/\s+/))e&&r.classList.add(e);return r}createFragment(){return this._document.createDocumentFragment()}createChildOf(e,t,n){const r=this.createElement(t,n);return e.appendChild(r),r}createComponent(e){let t=this._componentCache.get(e);if(t){const e=t.cloneNode(!0);return this.findAll("style",e).forEach((e=>e.remove())),e}t=function(e,t){switch(t){case"3pFilter":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-3p-filter {\n background-color: var(--table-higlight-background-color);\n color: var(--color-gray-600);\n float: right;\n padding: 6px;\n }\n .lh-3p-filter-label, .lh-3p-filter-input {\n vertical-align: middle;\n user-select: none;\n }\n .lh-3p-filter-input:disabled + .lh-3p-ui-string {\n text-decoration: line-through;\n }\n "),t.append(n);const r=e.createElement("div","lh-3p-filter"),i=e.createElement("label","lh-3p-filter-label"),o=e.createElement("input","lh-3p-filter-input");o.setAttribute("type","checkbox"),o.setAttribute("checked","");const s=e.createElement("span","lh-3p-ui-string");s.append("Show 3rd party resources");const a=e.createElement("span","lh-3p-filter-count");return i.append(" ",o," ",s," (",a,") "),r.append(" ",i," "),t.append(r),t}(e);case"audit":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-audit"),r=e.createElement("details","lh-expandable-details"),i=e.createElement("summary"),o=e.createElement("div","lh-audit__header lh-expandable-details__summary"),s=e.createElement("span","lh-audit__score-icon"),a=e.createElement("span","lh-audit__title-and-text"),l=e.createElement("span","lh-audit__title"),d=e.createElement("span","lh-audit__display-text");a.append(" ",l," ",d," ");const c=e.createElement("div","lh-chevron-container");o.append(" ",s," ",a," ",c," "),i.append(" ",o," ");const p=e.createElement("div","lh-audit__description"),h=e.createElement("div","lh-audit__stackpacks");return r.append(" ",i," ",p," ",h," "),n.append(" ",r," "),t.append(n),t}(e);case"categoryHeader":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-category-header"),r=e.createElement("div","lh-score__gauge");r.setAttribute("role","heading"),r.setAttribute("aria-level","2");const i=e.createElement("div","lh-category-header__description");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"chevron":return function(e){const t=e.document().createDocumentFragment(),n=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-chevron");n.setAttribute("viewBox","0 0 100 100");const r=e.createElementNS("http://www.w3.org/2000/svg","g","lh-chevron__lines"),i=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-left");i.setAttribute("d","M10 50h40");const o=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-right");return o.setAttribute("d","M90 50H50"),r.append(" ",i," ",o," "),n.append(" ",r," "),t.append(n),t}(e);case"clump":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("details","lh-clump lh-audit-group"),r=e.createElement("summary"),i=e.createElement("div","lh-audit-group__summary"),o=e.createElement("div","lh-audit-group__header"),s=e.createElement("span","lh-audit-group__title"),a=e.createElement("span","lh-audit-group__itemcount");return o.append(" ",s," ",a," "," "," "),i.append(" ",o," "),r.append(" ",i," "),n.append(" ",r," "),t.append(n),t}(e);case"crc":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-crc-container"),r=e.createElement("style");r.append('\n .lh-crc .lh-tree-marker {\n width: 12px;\n height: 26px;\n display: block;\n float: left;\n background-position: top left;\n }\n .lh-crc .lh-horiz-down {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><g fill="%23D8D8D8" fill-rule="evenodd"><path d="M16 12v2H-2v-2z"/><path d="M9 12v14H7V12z"/></g></svg>\');\n }\n .lh-crc .lh-right {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M16 12v2H0v-2z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-up-right {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v14H7zm2 12h7v2H9z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-vert-right {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v27H7zm2 12h7v2H9z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-vert {\n background: url(\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v26H7z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\');\n }\n .lh-crc .lh-crc-tree {\n font-size: 14px;\n width: 100%;\n overflow-x: auto;\n }\n .lh-crc .lh-crc-node {\n height: 26px;\n line-height: 26px;\n white-space: nowrap;\n }\n .lh-crc .lh-crc-node__tree-value {\n margin-left: 10px;\n }\n .lh-crc .lh-crc-node__tree-value div {\n display: inline;\n }\n .lh-crc .lh-crc-node__chain-duration {\n font-weight: 700;\n }\n .lh-crc .lh-crc-initial-nav {\n color: #595959;\n font-style: italic;\n }\n .lh-crc__summary-value {\n margin-bottom: 10px;\n }\n ');const i=e.createElement("div"),o=e.createElement("div","lh-crc__summary-value"),s=e.createElement("span","lh-crc__longest_duration_label"),a=e.createElement("b","lh-crc__longest_duration");o.append(" ",s," ",a," "),i.append(" ",o," ");const l=e.createElement("div","lh-crc"),d=e.createElement("div","lh-crc-initial-nav");return l.append(" ",d," "," "),n.append(" ",r," ",i," ",l," "),t.append(n),t}(e);case"crcChain":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-crc-node"),r=e.createElement("span","lh-crc-node__tree-marker"),i=e.createElement("span","lh-crc-node__tree-value");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"elementScreenshot":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-element-screenshot"),r=e.createElement("div","lh-element-screenshot__content"),i=e.createElement("div","lh-element-screenshot__mask"),o=e.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("height","0"),o.setAttribute("width","0");const s=e.createElementNS("http://www.w3.org/2000/svg","defs"),a=e.createElementNS("http://www.w3.org/2000/svg","clipPath");a.setAttribute("clipPathUnits","objectBoundingBox"),s.append(" ",a," "," "),o.append(" ",s," "),i.append(" ",o," ");const l=e.createElement("div","lh-element-screenshot__image"),d=e.createElement("div","lh-element-screenshot__element-marker");return r.append(" ",i," ",l," ",d," "),n.append(" ",r," "),t.append(n),t}(e);case"envItem":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("li","lh-env__item"),r=e.createElement("span","lh-env__name"),i=e.createElement("span","lh-env__description");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"footer":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-footer {\n padding: var(--footer-padding-vertical) calc(var(--default-padding) * 2);\n max-width: var(--report-width);\n margin: 0 auto;\n }\n .lh-footer .lh-generated {\n text-align: center;\n }\n .lh-env__title {\n font-size: var(--env-item-font-size-big);\n line-height: var(--env-item-line-height-big);\n text-align: center;\n padding: var(--score-container-padding);\n }\n .lh-env {\n padding: var(--default-padding) 0;\n }\n .lh-env__items {\n padding-left: 16px;\n margin: 0 0 var(--audits-margin-bottom);\n padding: 0;\n }\n .lh-env__items .lh-env__item:nth-child(2n) {\n background-color: var(--env-item-background-color);\n }\n .lh-env__item {\n display: flex;\n padding: var(--env-item-padding);\n position: relative;\n }\n span.lh-env__name {\n font-weight: bold;\n min-width: var(--env-name-min-width);\n flex: 0.5;\n padding: 0 8px;\n }\n span.lh-env__description {\n text-align: left;\n flex: 1;\n }\n "),t.append(n);const r=e.createElement("footer","lh-footer"),i=e.createElement("div","lh-env"),o=e.createElement("div","lh-env__title");o.append("Runtime Settings");const s=e.createElement("ul","lh-env__items");s.append(" "," "),i.append(" ",o," ",s," ");const a=e.createElement("div","lh-generated"),l=e.createElement("b");l.append("Lighthouse");const d=e.createElement("span","lh-footer__version"),c=e.createElement("a","lh-footer__version_issue");return c.setAttribute("href","https://github.com/GoogleChrome/Lighthouse/issues"),c.setAttribute("target","_blank"),c.setAttribute("rel","noopener"),c.append("File an issue"),a.append(" "," Generated by ",l," ",d," | ",c," "),r.append(" "," ",i," ",a," "),t.append(r),t}(e);case"fraction":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("a","lh-fraction__wrapper");n.setAttribute("href","#");const r=e.createElement("div","lh-fraction__content-wrapper"),i=e.createElement("div","lh-fraction__content"),o=e.createElement("div","lh-fraction__background");i.append(" ",o," "),r.append(" ",i," ");const s=e.createElement("div","lh-fraction__label");return n.append(" ",r," ",s," "),t.append(n),t}(e);case"gauge":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("a","lh-gauge__wrapper");n.setAttribute("href","#");const r=e.createElement("div","lh-gauge__svg-wrapper"),i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge");i.setAttribute("viewBox","0 0 120 120");const o=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-base");o.setAttribute("r","56"),o.setAttribute("cx","60"),o.setAttribute("cy","60"),o.setAttribute("stroke-width","8");const s=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-arc");s.setAttribute("r","56"),s.setAttribute("cx","60"),s.setAttribute("cy","60"),s.setAttribute("stroke-width","8"),i.append(" ",o," ",s," "),r.append(" ",i," ");const a=e.createElement("div","lh-gauge__percentage"),l=e.createElement("div","lh-gauge__label");return n.append(" "," ",r," ",a," "," ",l," "),t.append(n),t}(e);case"gaugePwa":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-gauge--pwa .lh-gauge--pwa__component {\n display: none;\n }\n .lh-gauge--pwa__wrapper:not(.lh-badged--all) .lh-gauge--pwa__logo > path {\n /* Gray logo unless everything is passing. */\n fill: #B0B0B0;\n }\n\n .lh-gauge--pwa__disc {\n fill: var(--color-gray-200);\n }\n\n .lh-gauge--pwa__logo--primary-color {\n fill: #304FFE;\n }\n\n .lh-gauge--pwa__logo--secondary-color {\n fill: #3D3D3D;\n }\n .lh-dark .lh-gauge--pwa__logo--secondary-color {\n fill: #D8B6B6;\n }\n\n /* No passing groups. */\n .lh-gauge--pwa__wrapper:not([class*='lh-badged--']) .lh-gauge--pwa__na-line {\n display: inline;\n }\n /* Just optimized. Same n/a line as no passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-optimized:not(.lh-badged--pwa-installable) .lh-gauge--pwa__na-line {\n display: inline;\n }\n\n /* Just installable. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-installable .lh-gauge--pwa__installable-badge {\n display: inline;\n }\n\n /* All passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--all .lh-gauge--pwa__check-circle {\n display: inline;\n }\n "),t.append(n);const r=e.createElement("a","lh-gauge__wrapper lh-gauge--pwa__wrapper");r.setAttribute("href","#");const i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge lh-gauge--pwa");i.setAttribute("viewBox","0 0 60 60");const o=e.createElementNS("http://www.w3.org/2000/svg","defs"),s=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");s.setAttribute("id","lh-gauge--pwa__check-circle__gradient"),s.setAttribute("x1","50%"),s.setAttribute("y1","0%"),s.setAttribute("x2","50%"),s.setAttribute("y2","100%");const a=e.createElementNS("http://www.w3.org/2000/svg","stop");a.setAttribute("stop-color","#00C852"),a.setAttribute("offset","0%");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#009688"),l.setAttribute("offset","100%"),s.append(" ",a," ",l," ");const d=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");d.setAttribute("id","lh-gauge--pwa__installable__shadow-gradient"),d.setAttribute("x1","76.056%"),d.setAttribute("x2","24.111%"),d.setAttribute("y1","82.995%"),d.setAttribute("y2","24.735%");const c=e.createElementNS("http://www.w3.org/2000/svg","stop");c.setAttribute("stop-color","#A5D6A7"),c.setAttribute("offset","0%");const p=e.createElementNS("http://www.w3.org/2000/svg","stop");p.setAttribute("stop-color","#80CBC4"),p.setAttribute("offset","100%"),d.append(" ",c," ",p," ");const h=e.createElementNS("http://www.w3.org/2000/svg","g");h.setAttribute("id","lh-gauge--pwa__installable-badge");const u=e.createElementNS("http://www.w3.org/2000/svg","circle");u.setAttribute("fill","#FFFFFF"),u.setAttribute("cx","10"),u.setAttribute("cy","10"),u.setAttribute("r","10");const m=e.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("fill","#009688"),m.setAttribute("d","M10 4.167A5.835 5.835 0 0 0 4.167 10 5.835 5.835 0 0 0 10 15.833 5.835 5.835 0 0 0 15.833 10 5.835 5.835 0 0 0 10 4.167zm2.917 6.416h-2.334v2.334H9.417v-2.334H7.083V9.417h2.334V7.083h1.166v2.334h2.334v1.166z"),h.append(" ",u," ",m," "),o.append(" ",s," ",d," ",h," ");const g=e.createElementNS("http://www.w3.org/2000/svg","g");g.setAttribute("stroke","none"),g.setAttribute("fill-rule","nonzero");const f=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge--pwa__disc");f.setAttribute("cx","30"),f.setAttribute("cy","30"),f.setAttribute("r","30");const _=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__logo"),b=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");b.setAttribute("d","M35.66 19.39l.7-1.75h2L37.4 15 38.6 12l3.4 9h-2.51l-.58-1.61z");const w=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--primary-color");w.setAttribute("d","M33.52 21l3.65-9h-2.42l-2.5 5.82L30.5 12h-1.86l-1.9 5.82-1.35-2.65-1.21 3.72L25.4 21h2.38l1.72-5.2 1.64 5.2z");const v=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");v.setAttribute("fill-rule","nonzero"),v.setAttribute("d","M20.3 17.91h1.48c.45 0 .85-.05 1.2-.15l.39-1.18 1.07-3.3a2.64 2.64 0 0 0-.28-.37c-.55-.6-1.36-.91-2.42-.91H18v9h2.3V17.9zm1.96-3.84c.22.22.33.5.33.87 0 .36-.1.65-.29.87-.2.23-.59.35-1.15.35h-.86v-2.41h.87c.52 0 .89.1 1.1.32z"),_.append(" ",b," ",w," ",v," ");const y=e.createElementNS("http://www.w3.org/2000/svg","rect","lh-gauge--pwa__component lh-gauge--pwa__na-line");y.setAttribute("fill","#FFFFFF"),y.setAttribute("x","20"),y.setAttribute("y","32"),y.setAttribute("width","20"),y.setAttribute("height","4"),y.setAttribute("rx","2");const x=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__installable-badge");x.setAttribute("transform","translate(20, 29)");const E=e.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("fill","url(#lh-gauge--pwa__installable__shadow-gradient)"),E.setAttribute("d","M33.629 19.487c-4.272 5.453-10.391 9.39-17.415 10.869L3 17.142 17.142 3 33.63 19.487z");const A=e.createElementNS("http://www.w3.org/2000/svg","use");A.setAttribute("href","#lh-gauge--pwa__installable-badge"),x.append(" ",E," ",A," ");const C=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__check-circle");C.setAttribute("transform","translate(18, 28)");const S=e.createElementNS("http://www.w3.org/2000/svg","circle");S.setAttribute("fill","#FFFFFF"),S.setAttribute("cx","12"),S.setAttribute("cy","12"),S.setAttribute("r","12");const k=e.createElementNS("http://www.w3.org/2000/svg","path");k.setAttribute("fill","url(#lh-gauge--pwa__check-circle__gradient)"),k.setAttribute("d","M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"),C.append(" ",S," ",k," "),g.append(" "," ",f," ",_," "," ",y," "," ",x," "," ",C," "),i.append(" ",o," ",g," ");const L=e.createElement("div","lh-gauge__label");return r.append(" ",i," ",L," "),t.append(r),t}(e);case"heading":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n /* CSS Fireworks. Originally by Eddie Lin\n https://codepen.io/paulirish/pen/yEVMbP\n */\n .lh-pyro {\n display: none;\n z-index: 1;\n pointer-events: none;\n }\n .lh-score100 .lh-pyro {\n display: block;\n }\n .lh-score100 .lh-lighthouse stop:first-child {\n stop-color: hsla(200, 12%, 95%, 0);\n }\n .lh-score100 .lh-lighthouse stop:last-child {\n stop-color: hsla(65, 81%, 76%, 1);\n }\n\n .lh-pyro > .lh-pyro-before, .lh-pyro > .lh-pyro-after {\n position: absolute;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n box-shadow: 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff;\n animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;\n animation-delay: 1s, 1s, 1s;\n }\n\n .lh-pyro > .lh-pyro-after {\n animation-delay: 2.25s, 2.25s, 2.25s;\n animation-duration: 1.25s, 1.25s, 6.25s;\n }\n .lh-fireworks-paused .lh-pyro > div {\n animation-play-state: paused;\n }\n\n @keyframes bang {\n to {\n box-shadow: -70px -115.67px #47ebbc, -28px -99.67px #eb47a4, 58px -31.67px #7eeb47, 13px -141.67px #eb47c5, -19px 6.33px #7347eb, -2px -74.67px #ebd247, 24px -151.67px #eb47e0, 57px -138.67px #b4eb47, -51px -104.67px #479eeb, 62px 8.33px #ebcf47, -93px 0.33px #d547eb, -16px -118.67px #47bfeb, 53px -84.67px #47eb83, 66px -57.67px #eb47bf, -93px -65.67px #91eb47, 30px -13.67px #86eb47, -2px -59.67px #83eb47, -44px 1.33px #eb47eb, 61px -58.67px #47eb73, 5px -22.67px #47e8eb, -66px -28.67px #ebe247, 42px -123.67px #eb5547, -75px 26.33px #7beb47, 15px -52.67px #a147eb, 36px -51.67px #eb8347, -38px -12.67px #eb5547, -46px -59.67px #47eb81, 78px -114.67px #eb47ba, 15px -156.67px #eb47bf, -36px 1.33px #eb4783, -72px -86.67px #eba147, 31px -46.67px #ebe247, -68px 29.33px #47e2eb, -55px 19.33px #ebe047, -56px 27.33px #4776eb, -13px -91.67px #eb5547, -47px -138.67px #47ebc7, -18px -96.67px #eb47ac, 11px -88.67px #4783eb, -67px -28.67px #47baeb, 53px 10.33px #ba47eb, 11px 19.33px #5247eb, -5px -11.67px #eb4791, -68px -4.67px #47eba7, 95px -37.67px #eb478b, -67px -162.67px #eb5d47, -54px -120.67px #eb6847, 49px -12.67px #ebe047, 88px 8.33px #47ebda, 97px 33.33px #eb8147, 6px -71.67px #ebbc47;\n }\n }\n @keyframes gravity {\n to {\n transform: translateY(80px);\n opacity: 0;\n }\n }\n @keyframes position {\n 0%, 19.9% {\n margin-top: 4%;\n margin-left: 47%;\n }\n 20%, 39.9% {\n margin-top: 7%;\n margin-left: 30%;\n }\n 40%, 59.9% {\n margin-top: 6%;\n margin-left: 70%;\n }\n 60%, 79.9% {\n margin-top: 3%;\n margin-left: 20%;\n }\n 80%, 99.9% {\n margin-top: 3%;\n margin-left: 80%;\n }\n }\n "),t.append(n);const r=e.createElement("div","lh-header-container"),i=e.createElement("div","lh-scores-wrapper-placeholder");return r.append(" ",i," "),t.append(r),t}(e);case"metric":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-metric"),r=e.createElement("div","lh-metric__innerwrap"),i=e.createElement("div","lh-metric__icon"),o=e.createElement("span","lh-metric__title"),s=e.createElement("div","lh-metric__value"),a=e.createElement("div","lh-metric__description");return r.append(" ",i," ",o," ",s," ",a," "),n.append(" ",r," "),t.append(n),t}(e);case"metricsToggle":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-metrics-toggle"),r=e.createElement("input","lh-metrics-toggle__input");r.setAttribute("type","checkbox"),r.setAttribute("id","toggle-metric-descriptions"),r.setAttribute("aria-label","Toggle the display of metric descriptions");const i=e.createElement("label","lh-metrics-toggle__label");i.setAttribute("for","toggle-metric-descriptions");const o=e.createElement("div","lh-metrics-toggle__icon lh-metrics-toggle__icon--less");o.setAttribute("aria-hidden","true");const s=e.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("width","24"),s.setAttribute("height","24"),s.setAttribute("viewBox","0 0 24 24");const a=e.createElementNS("http://www.w3.org/2000/svg","path","lh-metrics-toggle__lines");a.setAttribute("d","M4 9h16v2H4zm0 4h10v2H4z"),s.append(" ",a," "),o.append(" ",s," ");const l=e.createElement("div","lh-metrics-toggle__icon lh-metrics-toggle__icon--more");l.setAttribute("aria-hidden","true");const d=e.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("width","24"),d.setAttribute("height","24"),d.setAttribute("viewBox","0 0 24 24");const c=e.createElementNS("http://www.w3.org/2000/svg","path","lh-metrics-toggle__lines");return c.setAttribute("d","M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z"),d.append(" ",c," "),l.append(" ",d," "),i.append(" ",o," ",l," "),n.append(" ",r," ",i," "),t.append(n),t}(e);case"opportunity":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-audit lh-audit--load-opportunity"),r=e.createElement("details","lh-expandable-details"),i=e.createElement("summary"),o=e.createElement("div","lh-audit__header lh-expandable-details__summary"),s=e.createElement("div","lh-load-opportunity__cols"),a=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),l=e.createElement("span","lh-audit__score-icon"),d=e.createElement("div","lh-audit__title");a.append(" ",l," ",d," ");const c=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two"),p=e.createElement("div","lh-load-opportunity__sparkline"),h=e.createElement("div","lh-sparkline"),u=e.createElement("div","lh-sparkline__bar");h.append(u),p.append(" ",h," ");const m=e.createElement("div","lh-audit__display-text"),g=e.createElement("div","lh-chevron-container");c.append(" ",p," ",m," ",g," "),s.append(" ",a," ",c," "),o.append(" ",s," "),i.append(" ",o," ");const f=e.createElement("div","lh-audit__description"),_=e.createElement("div","lh-audit__stackpacks");return r.append(" ",i," ",f," ",_," "),n.append(" ",r," "),t.append(n),t}(e);case"opportunityHeader":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-load-opportunity__header lh-load-opportunity__cols"),r=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),i=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"scorescale":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-scorescale"),r=e.createElement("span","lh-scorescale-range lh-scorescale-range--fail");r.append("0–49");const i=e.createElement("span","lh-scorescale-range lh-scorescale-range--average");i.append("50–89");const o=e.createElement("span","lh-scorescale-range lh-scorescale-range--pass");return o.append("90–100"),n.append(" ",r," ",i," ",o," "),t.append(n),t}(e);case"scoresWrapper":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-scores-container {\n display: flex;\n flex-direction: column;\n padding: var(--scores-container-padding);\n position: relative;\n width: 100%;\n }\n\n .lh-sticky-header {\n --gauge-circle-size: 36px;\n --plugin-badge-size: 18px;\n --plugin-icon-size: 75%;\n --gauge-wrapper-width: 60px;\n --gauge-percentage-font-size: 13px;\n position: fixed;\n left: 0;\n right: 0;\n top: var(--topbar-height);\n font-weight: 700;\n display: none;\n justify-content: center;\n background-color: var(--sticky-header-background-color);\n border-bottom: 1px solid var(--color-gray-200);\n padding-top: var(--score-container-padding);\n padding-bottom: 4px;\n z-index: 1;\n pointer-events: none;\n }\n\n .lh-devtools .lh-sticky-header {\n /* The report within DevTools is placed in a container with overflow, which changes the placement of this header unless we change `position` to `sticky.` */\n position: sticky;\n }\n\n .lh-sticky-header--visible {\n display: grid;\n grid-auto-flow: column;\n pointer-events: auto;\n }\n\n /* Disable the gauge arc animation for the sticky header, so toggling display: none\n does not play the animation. */\n .lh-sticky-header .lh-gauge-arc {\n animation: none;\n }\n\n .lh-sticky-header .lh-gauge__label {\n display: none;\n }\n\n .lh-highlighter {\n width: var(--gauge-wrapper-width);\n height: 1px;\n background-color: var(--highlighter-background-color);\n /* Position at bottom of first gauge in sticky header. */\n position: absolute;\n grid-column: 1;\n bottom: -1px;\n }\n\n .lh-gauge__wrapper:first-of-type {\n contain: none;\n }\n "),t.append(n);const r=e.createElement("div","lh-scores-wrapper"),i=e.createElement("div","lh-scores-container"),o=e.createElement("div","lh-pyro"),s=e.createElement("div","lh-before"),a=e.createElement("div","lh-after");return o.append(" ",s," ",a," "),i.append(" ",o," "),r.append(" ",i," "),t.append(r),t}(e);case"snippet":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet"),r=e.createElement("style");return r.append('\n :root {\n --snippet-highlight-light: #fbf1f2;\n --snippet-highlight-dark: #ffd6d8;\n }\n\n .lh-snippet__header {\n position: relative;\n overflow: hidden;\n padding: 10px;\n border-bottom: none;\n color: var(--snippet-color);\n background-color: var(--snippet-background-color);\n border: 1px solid var(--report-border-color-secondary);\n }\n .lh-snippet__title {\n font-weight: bold;\n float: left;\n }\n .lh-snippet__node {\n float: left;\n margin-left: 4px;\n }\n .lh-snippet__toggle-expand {\n padding: 1px 7px;\n margin-top: -1px;\n margin-right: -7px;\n float: right;\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 14px;\n color: #0c50c7;\n }\n\n .lh-snippet__snippet {\n overflow: auto;\n border: 1px solid var(--report-border-color-secondary);\n }\n /* Container needed so that all children grow to the width of the scroll container */\n .lh-snippet__snippet-inner {\n display: inline-block;\n min-width: 100%;\n }\n\n .lh-snippet:not(.lh-snippet--expanded) .lh-snippet__show-if-expanded {\n display: none;\n }\n .lh-snippet.lh-snippet--expanded .lh-snippet__show-if-collapsed {\n display: none;\n }\n\n .lh-snippet__line {\n background: white;\n white-space: pre;\n display: flex;\n }\n .lh-snippet__line:not(.lh-snippet__line--message):first-child {\n padding-top: 4px;\n }\n .lh-snippet__line:not(.lh-snippet__line--message):last-child {\n padding-bottom: 4px;\n }\n .lh-snippet__line--content-highlighted {\n background: var(--snippet-highlight-dark);\n }\n .lh-snippet__line--message {\n background: var(--snippet-highlight-light);\n }\n .lh-snippet__line--message .lh-snippet__line-number {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n .lh-snippet__line--message code {\n padding: 10px;\n padding-left: 5px;\n color: var(--color-fail);\n font-family: var(--report-font-family);\n }\n .lh-snippet__line--message code {\n white-space: normal;\n }\n .lh-snippet__line-icon {\n padding-top: 10px;\n display: none;\n }\n .lh-snippet__line--message .lh-snippet__line-icon {\n display: block;\n }\n .lh-snippet__line-icon:before {\n content: "";\n display: inline-block;\n vertical-align: middle;\n margin-right: 4px;\n width: var(--score-icon-size);\n height: var(--score-icon-size);\n background-image: var(--fail-icon-url);\n }\n .lh-snippet__line-number {\n flex-shrink: 0;\n width: 40px;\n text-align: right;\n font-family: monospace;\n padding-right: 5px;\n margin-right: 5px;\n color: var(--color-gray-600);\n user-select: none;\n }\n '),n.append(" ",r," "),t.append(n),t}(e);case"snippetContent":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet__snippet"),r=e.createElement("div","lh-snippet__snippet-inner");return n.append(" ",r," "),t.append(n),t}(e);case"snippetHeader":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet__header"),r=e.createElement("div","lh-snippet__title"),i=e.createElement("div","lh-snippet__node"),o=e.createElement("button","lh-snippet__toggle-expand"),s=e.createElement("span","lh-snippet__btn-label-collapse lh-snippet__show-if-expanded"),a=e.createElement("span","lh-snippet__btn-label-expand lh-snippet__show-if-collapsed");return o.append(" ",s," ",a," "),n.append(" ",r," ",i," ",o," "),t.append(n),t}(e);case"snippetLine":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-snippet__line"),r=e.createElement("div","lh-snippet__line-number"),i=e.createElement("div","lh-snippet__line-icon"),o=e.createElement("code");return n.append(" ",r," ",i," ",o," "),t.append(n),t}(e);case"topbar":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("style");n.append("\n .lh-topbar {\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n height: var(--topbar-height);\n background-color: var(--topbar-background-color);\n padding: var(--topbar-padding);\n }\n\n .lh-topbar__logo {\n width: var(--topbar-logo-size);\n height: var(--topbar-logo-size);\n user-select: none;\n flex: none;\n }\n\n .lh-topbar__url {\n margin: var(--topbar-padding);\n text-decoration: none;\n color: var(--report-text-color);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .lh-tools {\n margin-left: auto;\n will-change: transform;\n min-width: var(--report-icon-size);\n }\n .lh-tools__button {\n width: var(--report-icon-size);\n height: var(--report-icon-size);\n cursor: pointer;\n margin-right: 5px;\n /* This is actually a button element, but we want to style it like a transparent div. */\n display: flex;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n outline: inherit;\n }\n .lh-tools__button svg {\n fill: var(--tools-icon-color);\n }\n .lh-dark .lh-tools__button svg {\n filter: invert(1);\n }\n .lh-tools__button.lh-active + .lh-tools__dropdown {\n opacity: 1;\n clip: rect(-1px, 194px, 242px, -3px);\n visibility: visible;\n }\n .lh-tools__dropdown {\n position: absolute;\n background-color: var(--report-background-color);\n border: 1px solid var(--report-border-color);\n border-radius: 3px;\n padding: calc(var(--default-padding) / 2) 0;\n cursor: pointer;\n top: 36px;\n right: 0;\n box-shadow: 1px 1px 3px #ccc;\n min-width: 125px;\n clip: rect(0, 164px, 0, 0);\n visibility: hidden;\n opacity: 0;\n transition: all 200ms cubic-bezier(0,0,0.2,1);\n }\n .lh-tools__dropdown a {\n color: currentColor;\n text-decoration: none;\n white-space: nowrap;\n padding: 0 12px;\n line-height: 2;\n }\n .lh-tools__dropdown a:hover,\n .lh-tools__dropdown a:focus {\n background-color: var(--color-gray-200);\n outline: none;\n }\n /* save-gist option hidden in report. */\n .lh-tools__dropdown a[data-action='save-gist'] {\n display: none;\n }\n\n @media screen and (max-width: 964px) {\n .lh-tools__dropdown {\n right: 0;\n left: initial;\n }\n }\n @media print {\n .lh-topbar {\n position: static;\n margin-left: 0;\n }\n\n .lh-tools__dropdown {\n display: none;\n }\n }\n "),t.append(n);const r=e.createElement("div","lh-topbar"),i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-topbar__logo");i.setAttribute("viewBox","0 0 24 24");const o=e.createElementNS("http://www.w3.org/2000/svg","defs"),s=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");s.setAttribute("x1","57.456%"),s.setAttribute("y1","13.086%"),s.setAttribute("x2","18.259%"),s.setAttribute("y2","72.322%"),s.setAttribute("id","lh-topbar__logo--a");const a=e.createElementNS("http://www.w3.org/2000/svg","stop");a.setAttribute("stop-color","#262626"),a.setAttribute("stop-opacity",".1"),a.setAttribute("offset","0%");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#262626"),l.setAttribute("stop-opacity","0"),l.setAttribute("offset","100%"),s.append(" ",a," ",l," ");const d=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");d.setAttribute("x1","100%"),d.setAttribute("y1","50%"),d.setAttribute("x2","0%"),d.setAttribute("y2","50%"),d.setAttribute("id","lh-topbar__logo--b");const c=e.createElementNS("http://www.w3.org/2000/svg","stop");c.setAttribute("stop-color","#262626"),c.setAttribute("stop-opacity",".1"),c.setAttribute("offset","0%");const p=e.createElementNS("http://www.w3.org/2000/svg","stop");p.setAttribute("stop-color","#262626"),p.setAttribute("stop-opacity","0"),p.setAttribute("offset","100%"),d.append(" ",c," ",p," ");const h=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");h.setAttribute("x1","58.764%"),h.setAttribute("y1","65.756%"),h.setAttribute("x2","36.939%"),h.setAttribute("y2","50.14%"),h.setAttribute("id","lh-topbar__logo--c");const u=e.createElementNS("http://www.w3.org/2000/svg","stop");u.setAttribute("stop-color","#262626"),u.setAttribute("stop-opacity",".1"),u.setAttribute("offset","0%");const m=e.createElementNS("http://www.w3.org/2000/svg","stop");m.setAttribute("stop-color","#262626"),m.setAttribute("stop-opacity","0"),m.setAttribute("offset","100%"),h.append(" ",u," ",m," ");const g=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");g.setAttribute("x1","41.635%"),g.setAttribute("y1","20.358%"),g.setAttribute("x2","72.863%"),g.setAttribute("y2","85.424%"),g.setAttribute("id","lh-topbar__logo--d");const f=e.createElementNS("http://www.w3.org/2000/svg","stop");f.setAttribute("stop-color","#FFF"),f.setAttribute("stop-opacity",".1"),f.setAttribute("offset","0%");const _=e.createElementNS("http://www.w3.org/2000/svg","stop");_.setAttribute("stop-color","#FFF"),_.setAttribute("stop-opacity","0"),_.setAttribute("offset","100%"),g.append(" ",f," ",_," "),o.append(" ",s," ",d," ",h," ",g," ");const b=e.createElementNS("http://www.w3.org/2000/svg","g");b.setAttribute("fill","none"),b.setAttribute("fill-rule","evenodd");const w=e.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("d","M12 3l4.125 2.625v3.75H18v2.25h-1.688l1.5 9.375H6.188l1.5-9.375H6v-2.25h1.875V5.648L12 3zm2.201 9.938L9.54 14.633 9 18.028l5.625-2.062-.424-3.028zM12.005 5.67l-1.88 1.207v2.498h3.75V6.86l-1.87-1.19z"),w.setAttribute("fill","#F44B21");const v=e.createElementNS("http://www.w3.org/2000/svg","path");v.setAttribute("fill","#FFF"),v.setAttribute("d","M14.201 12.938L9.54 14.633 9 18.028l5.625-2.062z");const y=e.createElementNS("http://www.w3.org/2000/svg","path");y.setAttribute("d","M6 18c-2.042 0-3.95-.01-5.813 0l1.5-9.375h4.326L6 18z"),y.setAttribute("fill","url(#lh-topbar__logo--a)"),y.setAttribute("fill-rule","nonzero"),y.setAttribute("transform","translate(6 3)");const x=e.createElementNS("http://www.w3.org/2000/svg","path");x.setAttribute("fill","#FFF176"),x.setAttribute("fill-rule","nonzero"),x.setAttribute("d","M13.875 9.375v-2.56l-1.87-1.19-1.88 1.207v2.543z");const E=e.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("fill","url(#lh-topbar__logo--b)"),E.setAttribute("fill-rule","nonzero"),E.setAttribute("d","M0 6.375h6v2.25H0z"),E.setAttribute("transform","translate(6 3)");const A=e.createElementNS("http://www.w3.org/2000/svg","path");A.setAttribute("fill","url(#lh-topbar__logo--c)"),A.setAttribute("fill-rule","nonzero"),A.setAttribute("d","M6 6.375H1.875v-3.75L6 0z"),A.setAttribute("transform","translate(6 3)");const C=e.createElementNS("http://www.w3.org/2000/svg","path");C.setAttribute("fill","url(#lh-topbar__logo--d)"),C.setAttribute("fill-rule","nonzero"),C.setAttribute("d","M6 0l4.125 2.625v3.75H12v2.25h-1.688l1.5 9.375H.188l1.5-9.375H0v-2.25h1.875V2.648z"),C.setAttribute("transform","translate(6 3)"),b.append(" ",w," ",v," ",y," ",x," ",E," ",A," ",C," "),i.append(" ",o," ",b," ");const S=e.createElement("a","lh-topbar__url");S.setAttribute("href",""),S.setAttribute("target","_blank"),S.setAttribute("rel","noopener");const k=e.createElement("div","lh-tools"),L=e.createElement("button","lh-tools__button");L.setAttribute("id","lh-tools-button"),L.setAttribute("title","Tools menu"),L.setAttribute("aria-label","Toggle report tools menu"),L.setAttribute("aria-haspopup","menu"),L.setAttribute("aria-expanded","false"),L.setAttribute("aria-controls","lh-tools-dropdown");const M=e.createElementNS("http://www.w3.org/2000/svg","svg");M.setAttribute("width","100%"),M.setAttribute("height","100%"),M.setAttribute("viewBox","0 0 24 24");const N=e.createElementNS("http://www.w3.org/2000/svg","path");N.setAttribute("d","M0 0h24v24H0z"),N.setAttribute("fill","none");const T=e.createElementNS("http://www.w3.org/2000/svg","path");T.setAttribute("d","M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"),M.append(" ",N," ",T," "),L.append(" ",M," ");const D=e.createElement("div","lh-tools__dropdown");D.setAttribute("id","lh-tools-dropdown"),D.setAttribute("role","menu"),D.setAttribute("aria-labelledby","lh-tools-button");const F=e.createElement("a","lh-report-icon lh-report-icon--print");F.setAttribute("role","menuitem"),F.setAttribute("tabindex","-1"),F.setAttribute("href","#"),F.setAttribute("data-i18n","dropdownPrintSummary"),F.setAttribute("data-action","print-summary");const R=e.createElement("a","lh-report-icon lh-report-icon--print");R.setAttribute("role","menuitem"),R.setAttribute("tabindex","-1"),R.setAttribute("href","#"),R.setAttribute("data-i18n","dropdownPrintExpanded"),R.setAttribute("data-action","print-expanded");const U=e.createElement("a","lh-report-icon lh-report-icon--copy");U.setAttribute("role","menuitem"),U.setAttribute("tabindex","-1"),U.setAttribute("href","#"),U.setAttribute("data-i18n","dropdownCopyJSON"),U.setAttribute("data-action","copy");const P=e.createElement("a","lh-report-icon lh-report-icon--download");P.setAttribute("role","menuitem"),P.setAttribute("tabindex","-1"),P.setAttribute("href","#"),P.setAttribute("data-i18n","dropdownSaveHTML"),P.setAttribute("data-action","save-html");const $=e.createElement("a","lh-report-icon lh-report-icon--download");$.setAttribute("role","menuitem"),$.setAttribute("tabindex","-1"),$.setAttribute("href","#"),$.setAttribute("data-i18n","dropdownSaveJSON"),$.setAttribute("data-action","save-json");const H=e.createElement("a","lh-report-icon lh-report-icon--open");H.setAttribute("role","menuitem"),H.setAttribute("tabindex","-1"),H.setAttribute("href","#"),H.setAttribute("data-i18n","dropdownViewer"),H.setAttribute("data-action","open-viewer");const O=e.createElement("a","lh-report-icon lh-report-icon--open");O.setAttribute("role","menuitem"),O.setAttribute("tabindex","-1"),O.setAttribute("href","#"),O.setAttribute("data-i18n","dropdownSaveGist"),O.setAttribute("data-action","save-gist");const z=e.createElement("a","lh-report-icon lh-report-icon--dark");return z.setAttribute("role","menuitem"),z.setAttribute("tabindex","-1"),z.setAttribute("href","#"),z.setAttribute("data-i18n","dropdownDarkTheme"),z.setAttribute("data-action","toggle-dark"),D.append(" ",F," ",R," ",U," ",P," ",$," ",H," ",O," ",z," "),k.append(" ",L," ",D," "),r.append(" "," ",i," ",S," ",k," "),t.append(r),t}(e);case"warningsToplevel":return function(e){const t=e.document().createDocumentFragment(),n=e.createElement("div","lh-warnings lh-warnings--toplevel"),r=e.createElement("p","lh-warnings__msg"),i=e.createElement("ul");return n.append(" ",r," ",i," "),t.append(n),t}(e)}throw new Error("unexpected component: "+t)}(this,e),this._componentCache.set(e,t);return t.cloneNode(!0)}clearComponentCache(){this._componentCache.clear()}convertMarkdownLinkSnippets(e){const t=this.createElement("span");for(const n of a.splitMarkdownLink(e)){if(!n.isLink){t.appendChild(this._document.createTextNode(n.text));continue}const e=new URL(n.linkHref);["https://developers.google.com","https://web.dev"].includes(e.origin)&&(e.searchParams.set("utm_source","lighthouse"),e.searchParams.set("utm_medium",this._lighthouseChannel));const r=this.createElement("a");r.rel="noopener",r.target="_blank",r.textContent=n.text,this.safelySetHref(r,e.href),t.appendChild(r)}return t}safelySetHref(e,t){if((t=t||"").startsWith("#"))return void(e.href=t);let n;try{n=new URL(t)}catch(e){}n&&["https:","http:"].includes(n.protocol)&&(e.href=n.href)}safelySetBlobHref(e,t){if("text/html"!==t.type&&"application/json"!==t.type)throw new Error("Unsupported blob type");const n=URL.createObjectURL(t);e.href=n}convertMarkdownCodeSnippets(e){const t=this.createElement("span");for(const n of a.splitMarkdownCodeSpans(e))if(n.isCode){const e=this.createElement("code");e.textContent=n.text,t.appendChild(e)}else t.appendChild(this._document.createTextNode(n.text));return t}setLighthouseChannel(e){this._lighthouseChannel=e}document(){return this._document}isDevTools(){return!!this._document.querySelector(".lh-devtools")}find(e,t){const n=t.querySelector(e);if(null===n)throw new Error(`query ${e} not found`);return n}findAll(e,t){return Array.from(t.querySelectorAll(e))}fireEventOn(e,t=this._document,n){const r=new CustomEvent(e,n?{detail:n}:void 0);t.dispatchEvent(r)}}
35
35
  /**
36
36
  * @license
37
37
  * Copyright 2017 The Lighthouse Authors. All Rights Reserved.
@@ -63,7 +63,7 @@ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._
63
63
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
64
64
  * See the License for the specific language governing permissions and
65
65
  * limitations under the License.
66
- */class c{constructor(e,t){this.dom=e,this.detailsRenderer=t}get _clumpTitles(){return{warning:a.i18n.strings.warningAuditsGroupTitle,manual:a.i18n.strings.manualAuditsGroupTitle,passed:a.i18n.strings.passedAuditsGroupTitle,notApplicable:a.i18n.strings.notApplicableAuditsGroupTitle}}renderAudit(e){const t=this.dom.createComponent("audit");return this.populateAuditValues(e,t)}populateAuditValues(e,t){const n=a.i18n.strings,r=this.dom.find(".lh-audit",t);r.id=e.result.id;const i=e.result.scoreDisplayMode;e.result.displayValue&&(this.dom.find(".lh-audit__display-text",r).textContent=e.result.displayValue);const o=this.dom.find(".lh-audit__title",r);o.appendChild(this.dom.convertMarkdownCodeSnippets(e.result.title));const s=this.dom.find(".lh-audit__description",r);s.appendChild(this.dom.convertMarkdownLinkSnippets(e.result.description));for(const t of e.relevantMetrics||[]){const e=this.dom.createChildOf(s,"span","lh-audit__adorn");e.title=`Relevant to ${t.result.title}`,e.textContent=t.acronym||t.id}e.stackPacks&&e.stackPacks.forEach((e=>{const t=this.dom.createElement("div");t.classList.add("lh-audit__stackpack");const n=this.dom.createElement("img");n.classList.add("lh-audit__stackpack__img"),n.src=e.iconDataURL,n.alt=e.title,t.appendChild(n),t.appendChild(this.dom.convertMarkdownLinkSnippets(e.description)),this.dom.find(".lh-audit__stackpacks",r).appendChild(t)}));const l=this.dom.find("details",r);if(e.result.details){const t=this.detailsRenderer.render(e.result.details);t&&(t.classList.add("lh-details"),l.appendChild(t))}if(this.dom.find(".lh-chevron-container",r).appendChild(this._createChevron()),this._setRatingClass(r,e.result.score,i),"error"===e.result.scoreDisplayMode){r.classList.add("lh-audit--error");const t=this.dom.find(".lh-audit__display-text",r);t.textContent=n.errorLabel,t.classList.add("lh-tooltip-boundary");this.dom.createChildOf(t,"div","lh-tooltip lh-tooltip--error").textContent=e.result.errorMessage||n.errorMissingAuditInfo}else if(e.result.explanation){this.dom.createChildOf(o,"div","lh-audit-explanation").textContent=e.result.explanation}const d=e.result.warnings;if(!d||0===d.length)return r;const c=this.dom.find("summary",l),p=this.dom.createChildOf(c,"div","lh-warnings");if(this.dom.createChildOf(p,"span").textContent=n.warningHeader,1===d.length)p.appendChild(this.dom.document().createTextNode(d.join("")));else{const e=this.dom.createChildOf(p,"ul");for(const t of d){this.dom.createChildOf(e,"li").textContent=t}}return r}_createChevron(){const e=this.dom.createComponent("chevron");return this.dom.find("svg.lh-chevron",e)}_setRatingClass(e,t,n){const r=a.calculateRating(t,n);return e.classList.add(`lh-audit--${n.toLowerCase()}`),"informative"!==n&&e.classList.add(`lh-audit--${r}`),e}renderCategoryHeader(e,t){const n=this.dom.createComponent("categoryHeader"),r=this.dom.find(".lh-score__gauge",n),i=this.renderScoreGauge(e,t);if(r.appendChild(i),e.description){const t=this.dom.convertMarkdownLinkSnippets(e.description);this.dom.find(".lh-category-header__description",n).appendChild(t)}return n}renderAuditGroup(e){const t=this.dom.createElement("div","lh-audit-group"),n=this.dom.createElement("div","lh-audit-group__header");if(this.dom.createChildOf(n,"span","lh-audit-group__title").textContent=e.title,e.description){const t=this.dom.convertMarkdownLinkSnippets(e.description);t.classList.add("lh-audit-group__description"),n.appendChild(t)}return t.appendChild(n),t}_renderGroupedAudits(e,t){const n=new Map,r="NotAGroup";n.set(r,[]);for(const t of e){const e=t.group||r,i=n.get(e)||[];i.push(t),n.set(e,i)}const i=[];for(const[e,o]of n){if(e===r){for(const e of o)i.push(this.renderAudit(e));continue}const n=t[e],s=this.renderAuditGroup(n);for(const e of o)s.appendChild(this.renderAudit(e));s.classList.add(`lh-audit-group--${e}`),i.push(s)}return i}renderUnexpandableClump(e,t){const n=this.dom.createElement("div");return this._renderGroupedAudits(e,t).forEach((e=>n.appendChild(e))),n}renderClump(e,{auditRefs:t,description:n}){const r=this.dom.createComponent("clump"),i=this.dom.find(".lh-clump",r);"warning"===e&&i.setAttribute("open","");this.dom.find("div.lh-audit-group__summary",i).appendChild(this._createChevron());const o=this.dom.find(".lh-audit-group__header",i),s=this._clumpTitles[e];if(this.dom.find(".lh-audit-group__title",o).textContent=s,n){const e=this.dom.convertMarkdownLinkSnippets(n);e.classList.add("lh-audit-group__description"),o.appendChild(e)}this.dom.find(".lh-audit-group__itemcount",i).textContent=`(${t.length})`;const a=t.map(this.renderAudit.bind(this));return i.append(...a),i.classList.add(`lh-clump--${e.toLowerCase()}`),i}renderScoreGauge(e,t){const n=this.dom.createComponent("gauge"),r=this.dom.find("a.lh-gauge__wrapper",n);this.dom.safelySetHref(r,`#${e.id}`),a.isPluginCategory(e.id)&&r.classList.add("lh-gauge__wrapper--plugin");const i=Number(e.score),o=this.dom.find(".lh-gauge",n),s=this.dom.find("circle.lh-gauge-arc",o);s&&this._setGaugeArc(s,i);const l=Math.round(100*i),d=this.dom.find("div.lh-gauge__percentage",n);return d.textContent=l.toString(),null===e.score&&(d.textContent="?",d.title=a.i18n.strings.errorLabel),0===e.auditRefs.length||this.hasApplicableAudits(e)?r.classList.add(`lh-gauge__wrapper--${a.calculateRating(e.score)}`):(r.classList.add("lh-gauge__wrapper--not-applicable"),d.textContent="-",d.title=a.i18n.strings.notApplicableAuditsGroupTitle),this.dom.find(".lh-gauge__label",n).textContent=e.title,n}hasApplicableAudits(e){return e.auditRefs.some((e=>"notApplicable"!==e.result.scoreDisplayMode))}_setGaugeArc(e,t){const n=2*Math.PI*Number(e.getAttribute("r")),r=Number(e.getAttribute("stroke-width")),i=.25*r/n;e.style.transform=`rotate(${360*i-90}deg)`;let o=t*n-r/2;0===t&&(e.style.opacity="0"),1===t&&(o=n),e.style.strokeDasharray=`${Math.max(o,0)} ${n}`}_auditHasWarning(e){return Boolean(e.result.warnings&&e.result.warnings.length)}_getClumpIdForAuditRef(e){const t=e.result.scoreDisplayMode;return"manual"===t||"notApplicable"===t?t:a.showAsPassed(e.result)?this._auditHasWarning(e)?"warning":"passed":"failed"}render(e,t={}){const n=this.dom.createElement("div","lh-category");this.createPermalinkSpan(n,e.id),n.appendChild(this.renderCategoryHeader(e,t));const r=new Map;r.set("failed",[]),r.set("warning",[]),r.set("manual",[]),r.set("passed",[]),r.set("notApplicable",[]);for(const t of e.auditRefs){const e=this._getClumpIdForAuditRef(t),n=r.get(e);n.push(t),r.set(e,n)}for(const[i,o]of r){if(0===o.length)continue;if("failed"===i){const e=this.renderUnexpandableClump(o,t);e.classList.add("lh-clump--failed"),n.appendChild(e);continue}const r="manual"===i?e.manualDescription:void 0,s=this.renderClump(i,{auditRefs:o,description:r});n.appendChild(s)}return n}createPermalinkSpan(e,t){this.dom.createChildOf(e,"span","lh-permalink").id=t}}
66
+ */class c{constructor(e,t){this.dom=e,this.detailsRenderer=t}get _clumpTitles(){return{warning:a.i18n.strings.warningAuditsGroupTitle,manual:a.i18n.strings.manualAuditsGroupTitle,passed:a.i18n.strings.passedAuditsGroupTitle,notApplicable:a.i18n.strings.notApplicableAuditsGroupTitle}}renderAudit(e){const t=this.dom.createComponent("audit");return this.populateAuditValues(e,t)}populateAuditValues(e,t){const n=a.i18n.strings,r=this.dom.find(".lh-audit",t);r.id=e.result.id;const i=e.result.scoreDisplayMode;e.result.displayValue&&(this.dom.find(".lh-audit__display-text",r).textContent=e.result.displayValue);const o=this.dom.find(".lh-audit__title",r);o.appendChild(this.dom.convertMarkdownCodeSnippets(e.result.title));const s=this.dom.find(".lh-audit__description",r);s.appendChild(this.dom.convertMarkdownLinkSnippets(e.result.description));for(const t of e.relevantMetrics||[]){const e=this.dom.createChildOf(s,"span","lh-audit__adorn");e.title=`Relevant to ${t.result.title}`,e.textContent=t.acronym||t.id}e.stackPacks&&e.stackPacks.forEach((e=>{const t=this.dom.createElement("div");t.classList.add("lh-audit__stackpack");const n=this.dom.createElement("img");n.classList.add("lh-audit__stackpack__img"),n.src=e.iconDataURL,n.alt=e.title,t.appendChild(n),t.appendChild(this.dom.convertMarkdownLinkSnippets(e.description)),this.dom.find(".lh-audit__stackpacks",r).appendChild(t)}));const l=this.dom.find("details",r);if(e.result.details){const t=this.detailsRenderer.render(e.result.details);t&&(t.classList.add("lh-details"),l.appendChild(t))}if(this.dom.find(".lh-chevron-container",r).appendChild(this._createChevron()),this._setRatingClass(r,e.result.score,i),"error"===e.result.scoreDisplayMode){r.classList.add("lh-audit--error");const t=this.dom.find(".lh-audit__display-text",r);t.textContent=n.errorLabel,t.classList.add("lh-tooltip-boundary");this.dom.createChildOf(t,"div","lh-tooltip lh-tooltip--error").textContent=e.result.errorMessage||n.errorMissingAuditInfo}else if(e.result.explanation){this.dom.createChildOf(o,"div","lh-audit-explanation").textContent=e.result.explanation}const d=e.result.warnings;if(!d||0===d.length)return r;const c=this.dom.find("summary",l),p=this.dom.createChildOf(c,"div","lh-warnings");if(this.dom.createChildOf(p,"span").textContent=n.warningHeader,1===d.length)p.appendChild(this.dom.document().createTextNode(d.join("")));else{const e=this.dom.createChildOf(p,"ul");for(const t of d){this.dom.createChildOf(e,"li").textContent=t}}return r}_createChevron(){const e=this.dom.createComponent("chevron");return this.dom.find("svg.lh-chevron",e)}_setRatingClass(e,t,n){const r=a.calculateRating(t,n);return e.classList.add(`lh-audit--${n.toLowerCase()}`),"informative"!==n&&e.classList.add(`lh-audit--${r}`),e}renderCategoryHeader(e,t,n){const r=this.dom.createComponent("categoryHeader"),i=this.dom.find(".lh-score__gauge",r),o=this.renderCategoryScore(e,t,n);if(i.appendChild(o),e.description){const t=this.dom.convertMarkdownLinkSnippets(e.description);this.dom.find(".lh-category-header__description",r).appendChild(t)}return r}renderAuditGroup(e){const t=this.dom.createElement("div","lh-audit-group"),n=this.dom.createElement("div","lh-audit-group__header");if(this.dom.createChildOf(n,"span","lh-audit-group__title").textContent=e.title,e.description){const t=this.dom.convertMarkdownLinkSnippets(e.description);t.classList.add("lh-audit-group__description"),n.appendChild(t)}return t.appendChild(n),t}_renderGroupedAudits(e,t){const n=new Map,r="NotAGroup";n.set(r,[]);for(const t of e){const e=t.group||r,i=n.get(e)||[];i.push(t),n.set(e,i)}const i=[];for(const[e,o]of n){if(e===r){for(const e of o)i.push(this.renderAudit(e));continue}const n=t[e],s=this.renderAuditGroup(n);for(const e of o)s.appendChild(this.renderAudit(e));s.classList.add(`lh-audit-group--${e}`),i.push(s)}return i}renderUnexpandableClump(e,t){const n=this.dom.createElement("div");return this._renderGroupedAudits(e,t).forEach((e=>n.appendChild(e))),n}renderClump(e,{auditRefs:t,description:n}){const r=this.dom.createComponent("clump"),i=this.dom.find(".lh-clump",r);"warning"===e&&i.setAttribute("open","");this.dom.find("div.lh-audit-group__summary",i).appendChild(this._createChevron());const o=this.dom.find(".lh-audit-group__header",i),s=this._clumpTitles[e];if(this.dom.find(".lh-audit-group__title",o).textContent=s,n){const e=this.dom.convertMarkdownLinkSnippets(n);e.classList.add("lh-audit-group__description"),o.appendChild(e)}this.dom.find(".lh-audit-group__itemcount",i).textContent=`(${t.length})`;const a=t.map(this.renderAudit.bind(this));return i.append(...a),i.classList.add(`lh-clump--${e.toLowerCase()}`),i}renderCategoryScore(e,t,n){return!n||"snapshot"!==n.gatherMode&&"timespan"!==n.gatherMode?this.renderScoreGauge(e,t):this.renderCategoryFraction(e)}renderScoreGauge(e,t){const n=this.dom.createComponent("gauge"),r=this.dom.find("a.lh-gauge__wrapper",n);this.dom.safelySetHref(r,`#${e.id}`),a.isPluginCategory(e.id)&&r.classList.add("lh-gauge__wrapper--plugin");const i=Number(e.score),o=this.dom.find(".lh-gauge",n),s=this.dom.find("circle.lh-gauge-arc",o);s&&this._setGaugeArc(s,i);const l=Math.round(100*i),d=this.dom.find("div.lh-gauge__percentage",n);return d.textContent=l.toString(),null===e.score&&(d.textContent="?",d.title=a.i18n.strings.errorLabel),0===e.auditRefs.length||this.hasApplicableAudits(e)?r.classList.add(`lh-gauge__wrapper--${a.calculateRating(e.score)}`):(r.classList.add("lh-gauge__wrapper--not-applicable"),d.textContent="-",d.title=a.i18n.strings.notApplicableAuditsGroupTitle),this.dom.find(".lh-gauge__label",n).textContent=e.title,n}renderCategoryFraction(e){const t=this.dom.createComponent("fraction"),n=this.dom.find("a.lh-fraction__wrapper",t);this.dom.safelySetHref(n,`#${e.id}`);const r=e.auditRefs.length;let i=0,o=0;for(const t of e.auditRefs)o+=t.weight,a.showAsPassed(t.result)&&i++;const s=i/r,l=this.dom.find(".lh-fraction__content",t),d=this.dom.createElement("span");d.textContent=`${i}/${r}`,l.appendChild(d);let c=a.calculateRating(s);return 0===o&&(c="null"),n.classList.add(`lh-fraction__wrapper--${c}`),this.dom.find(".lh-fraction__label",t).textContent=e.title,t}hasApplicableAudits(e){return e.auditRefs.some((e=>"notApplicable"!==e.result.scoreDisplayMode))}_setGaugeArc(e,t){const n=2*Math.PI*Number(e.getAttribute("r")),r=Number(e.getAttribute("stroke-width")),i=.25*r/n;e.style.transform=`rotate(${360*i-90}deg)`;let o=t*n-r/2;0===t&&(e.style.opacity="0"),1===t&&(o=n),e.style.strokeDasharray=`${Math.max(o,0)} ${n}`}_auditHasWarning(e){return Boolean(e.result.warnings&&e.result.warnings.length)}_getClumpIdForAuditRef(e){const t=e.result.scoreDisplayMode;return"manual"===t||"notApplicable"===t?t:a.showAsPassed(e.result)?this._auditHasWarning(e)?"warning":"passed":"failed"}render(e,t={},n){const r=this.dom.createElement("div","lh-category");this.createPermalinkSpan(r,e.id),r.appendChild(this.renderCategoryHeader(e,t,n));const i=new Map;i.set("failed",[]),i.set("warning",[]),i.set("manual",[]),i.set("passed",[]),i.set("notApplicable",[]);for(const t of e.auditRefs){const e=this._getClumpIdForAuditRef(t),n=i.get(e);n.push(t),i.set(e,n)}for(const[n,o]of i){if(0===o.length)continue;if("failed"===n){const e=this.renderUnexpandableClump(o,t);e.classList.add("lh-clump--failed"),r.appendChild(e);continue}const i="manual"===n?e.manualDescription:void 0,s=this.renderClump(n,{auditRefs:o,description:i});r.appendChild(s)}return r}createPermalinkSpan(e,t){this.dom.createChildOf(e,"span","lh-permalink").id=t}}
67
67
  /**
68
68
  * @license
69
69
  * Copyright 2017 The Lighthouse Authors. All Rights Reserved.
@@ -126,7 +126,7 @@ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._
126
126
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127
127
  * See the License for the specific language governing permissions and
128
128
  * limitations under the License.
129
- */class T extends c{_renderMetric(e){const t=this.dom.createComponent("metric"),n=this.dom.find(".lh-metric",t);n.id=e.result.id;const r=a.calculateRating(e.result.score,e.result.scoreDisplayMode);n.classList.add(`lh-metric--${r}`);this.dom.find(".lh-metric__title",t).textContent=e.result.title;const i=this.dom.find(".lh-metric__value",t);i.textContent=e.result.displayValue||"";const o=this.dom.find(".lh-metric__description",t);if(o.appendChild(this.dom.convertMarkdownLinkSnippets(e.result.description)),"error"===e.result.scoreDisplayMode){o.textContent="",i.textContent="Error!";this.dom.createChildOf(o,"span").textContent=e.result.errorMessage||"Report error: no metric information"}return n}_renderOpportunity(e,t){const n=this.dom.createComponent("opportunity"),r=this.populateAuditValues(e,n);if(r.id=e.result.id,!e.result.details||"error"===e.result.scoreDisplayMode)return r;const i=e.result.details;if("opportunity"!==i.type)return r;const o=this.dom.find("span.lh-audit__display-text, div.lh-audit__display-text",r),s=i.overallSavingsMs/t*100+"%";if(this.dom.find("div.lh-sparkline__bar",r).style.width=s,o.textContent=a.i18n.formatSeconds(i.overallSavingsMs,.01),e.result.displayValue){const t=e.result.displayValue;this.dom.find("div.lh-load-opportunity__sparkline",r).title=t,o.title=t}return r}_getWastedMs(e){if(e.result.details&&"opportunity"===e.result.details.type){const t=e.result.details;if("number"!=typeof t.overallSavingsMs)throw new Error("non-opportunity details passed to _getWastedMs");return t.overallSavingsMs}return Number.MIN_VALUE}_getScoringCalculatorHref(e){const t=e.filter((e=>"metrics"===e.group)),n=e.find((e=>"first-cpu-idle"===e.id)),r=e.find((e=>"first-meaningful-paint"===e.id));n&&t.push(n),r&&t.push(r);const i=[...t.map((e=>{let t;var n;return"number"==typeof e.result.numericValue?(t="cumulative-layout-shift"===e.id?(n=e.result.numericValue,Math.round(100*n)/100):Math.round(e.result.numericValue),t=t.toString()):t="null",[e.acronym||e.id,t]}))];a.reportJson&&(i.push(["device",a.reportJson.configSettings.formFactor]),i.push(["version",a.reportJson.lighthouseVersion]));const o=new URLSearchParams(i),s=new URL("https://googlechrome.github.io/lighthouse/scorecalc/");return s.hash=o.toString(),s.href}render(e,t,n){const r=a.i18n.strings,i=this.dom.createElement("div","lh-category");if("PSI"===n){const n=this.dom.createElement("div","lh-score__gauge");n.appendChild(this.renderScoreGauge(e,t)),i.appendChild(n)}else this.createPermalinkSpan(i,e.id),i.appendChild(this.renderCategoryHeader(e,t));const o=this.renderAuditGroup(t.metrics),s=this.dom.createComponent("metricsToggle"),l=this.dom.find(".lh-metrics-toggle",s);o.append(...l.childNodes);const d=e.auditRefs.filter((e=>"metrics"===e.group)),c=this.dom.createChildOf(o,"div","lh-metrics-container");d.forEach((e=>{c.appendChild(this._renderMetric(e))}));const p=this.dom.createChildOf(o,"div","lh-metrics__disclaimer"),h=this.dom.convertMarkdownLinkSnippets(r.varianceDisclaimer);p.appendChild(h);const u=this.dom.createChildOf(p,"a","lh-calclink");u.target="_blank",u.textContent=r.calculatorLink,this.dom.safelySetHref(u,this._getScoringCalculatorHref(e.auditRefs)),o.classList.add("lh-audit-group--metrics"),i.appendChild(o);const m=this.dom.createChildOf(i,"div","lh-filmstrip-container"),g=e.auditRefs.find((e=>"screenshot-thumbnails"===e.id)),f=g&&g.result;if(f&&f.details){m.id=f.id;const e=this.detailsRenderer.render(f.details);e&&m.appendChild(e)}const _=e.auditRefs.filter((e=>"load-opportunities"===e.group&&!a.showAsPassed(e.result))).sort(((e,t)=>this._getWastedMs(t)-this._getWastedMs(e))),b=d.filter((e=>!!e.relevantAudits));if(b.length&&this.renderMetricAuditFilter(b,i),_.length){const e=2e3,n=_.map((e=>this._getWastedMs(e))),o=Math.max(...n),s=Math.max(1e3*Math.ceil(o/1e3),e),a=this.renderAuditGroup(t["load-opportunities"]),l=this.dom.createComponent("opportunityHeader");this.dom.find(".lh-load-opportunity__col--one",l).textContent=r.opportunityResourceColumnLabel,this.dom.find(".lh-load-opportunity__col--two",l).textContent=r.opportunitySavingsColumnLabel;const d=this.dom.find(".lh-load-opportunity__header",l);a.appendChild(d),_.forEach((e=>a.appendChild(this._renderOpportunity(e,s)))),a.classList.add("lh-audit-group--load-opportunities"),i.appendChild(a)}const w=e.auditRefs.filter((e=>"diagnostics"===e.group&&!a.showAsPassed(e.result))).sort(((e,t)=>("informative"===e.result.scoreDisplayMode?100:Number(e.result.score))-("informative"===t.result.scoreDisplayMode?100:Number(t.result.score))));if(w.length){const e=this.renderAuditGroup(t.diagnostics);w.forEach((t=>e.appendChild(this.renderAudit(t)))),e.classList.add("lh-audit-group--diagnostics"),i.appendChild(e)}const v=e.auditRefs.filter((e=>("load-opportunities"===e.group||"diagnostics"===e.group)&&a.showAsPassed(e.result)));if(!v.length)return i;const y={auditRefs:v,groupDefinitions:t},x=this.renderClump("passed",y);i.appendChild(x);const E=[];if(["performance-budget","timing-budget"].forEach((t=>{const n=e.auditRefs.find((e=>e.id===t));if(n&&n.result.details){const e=this.detailsRenderer.render(n.result.details);e&&(e.id=t,e.classList.add("lh-audit"),E.push(e))}})),E.length>0){const e=this.renderAuditGroup(t.budgets);E.forEach((t=>e.appendChild(t))),e.classList.add("lh-audit-group--budgets"),i.appendChild(e)}return i}renderMetricAuditFilter(e,t){const n=this.dom.createElement("div","lh-metricfilter");this.dom.createChildOf(n,"span","lh-metricfilter__text").textContent=a.i18n.strings.showRelevantAudits;const r=[{acronym:"All"},...e],i=a.getUniqueSuffix();for(const e of r){const r=`metric-${e.acronym}-${i}`,o=this.dom.createChildOf(n,"input","lh-metricfilter__radio");o.type="radio",o.name=`metricsfilter-${i}`,o.id=r;const s=this.dom.createChildOf(n,"label","lh-metricfilter__label");s.htmlFor=r,s.title=e.result&&e.result.title,s.textContent=e.acronym||e.id,"All"===e.acronym&&(o.checked=!0,s.classList.add("lh-metricfilter__label--active")),t.append(n),o.addEventListener("input",(n=>{for(const e of t.querySelectorAll("label.lh-metricfilter__label"))e.classList.toggle("lh-metricfilter__label--active",e.htmlFor===r);t.classList.toggle("lh-category--filtered","All"!==e.acronym);for(const n of t.querySelectorAll("div.lh-audit"))"All"!==e.acronym?(n.hidden=!0,e.relevantAudits&&e.relevantAudits.includes(n.id)&&(n.hidden=!1)):n.hidden=!1;const i=t.querySelectorAll("div.lh-audit-group, details.lh-audit-group");for(const e of i){e.hidden=!1;const t=Array.from(e.querySelectorAll("div.lh-audit")),n=!!t.length&&t.every((e=>e.hidden));e.hidden=n}}))}}}
129
+ */class T extends c{_renderMetric(e){const t=this.dom.createComponent("metric"),n=this.dom.find(".lh-metric",t);n.id=e.result.id;const r=a.calculateRating(e.result.score,e.result.scoreDisplayMode);n.classList.add(`lh-metric--${r}`);this.dom.find(".lh-metric__title",t).textContent=e.result.title;const i=this.dom.find(".lh-metric__value",t);i.textContent=e.result.displayValue||"";const o=this.dom.find(".lh-metric__description",t);if(o.appendChild(this.dom.convertMarkdownLinkSnippets(e.result.description)),"error"===e.result.scoreDisplayMode){o.textContent="",i.textContent="Error!";this.dom.createChildOf(o,"span").textContent=e.result.errorMessage||"Report error: no metric information"}return n}_renderOpportunity(e,t){const n=this.dom.createComponent("opportunity"),r=this.populateAuditValues(e,n);if(r.id=e.result.id,!e.result.details||"error"===e.result.scoreDisplayMode)return r;const i=e.result.details;if("opportunity"!==i.type)return r;const o=this.dom.find("span.lh-audit__display-text, div.lh-audit__display-text",r),s=i.overallSavingsMs/t*100+"%";if(this.dom.find("div.lh-sparkline__bar",r).style.width=s,o.textContent=a.i18n.formatSeconds(i.overallSavingsMs,.01),e.result.displayValue){const t=e.result.displayValue;this.dom.find("div.lh-load-opportunity__sparkline",r).title=t,o.title=t}return r}_getWastedMs(e){if(e.result.details&&"opportunity"===e.result.details.type){const t=e.result.details;if("number"!=typeof t.overallSavingsMs)throw new Error("non-opportunity details passed to _getWastedMs");return t.overallSavingsMs}return Number.MIN_VALUE}_getScoringCalculatorHref(e){const t=e.filter((e=>"metrics"===e.group)),n=e.find((e=>"first-cpu-idle"===e.id)),r=e.find((e=>"first-meaningful-paint"===e.id));n&&t.push(n),r&&t.push(r);const i=[...t.map((e=>{let t;var n;return"number"==typeof e.result.numericValue?(t="cumulative-layout-shift"===e.id?(n=e.result.numericValue,Math.round(100*n)/100):Math.round(e.result.numericValue),t=t.toString()):t="null",[e.acronym||e.id,t]}))];a.reportJson&&(i.push(["device",a.reportJson.configSettings.formFactor]),i.push(["version",a.reportJson.lighthouseVersion]));const o=new URLSearchParams(i),s=new URL("https://googlechrome.github.io/lighthouse/scorecalc/");return s.hash=o.toString(),s.href}render(e,t,n){const r=a.i18n.strings,i=this.dom.createElement("div","lh-category");if(n&&"PSI"===n.environment){const r=this.dom.createElement("div","lh-score__gauge");r.appendChild(this.renderCategoryScore(e,t,n)),i.appendChild(r)}else this.createPermalinkSpan(i,e.id),i.appendChild(this.renderCategoryHeader(e,t,n));const o=this.renderAuditGroup(t.metrics),s=this.dom.createComponent("metricsToggle"),l=this.dom.find(".lh-metrics-toggle",s);o.append(...l.childNodes);const d=e.auditRefs.filter((e=>"metrics"===e.group)),c=this.dom.createChildOf(o,"div","lh-metrics-container");d.forEach((e=>{c.appendChild(this._renderMetric(e))}));const p=this.dom.createChildOf(o,"div","lh-metrics__disclaimer"),h=this.dom.convertMarkdownLinkSnippets(r.varianceDisclaimer);p.appendChild(h);const u=this.dom.createChildOf(p,"a","lh-calclink");u.target="_blank",u.textContent=r.calculatorLink,this.dom.safelySetHref(u,this._getScoringCalculatorHref(e.auditRefs)),o.classList.add("lh-audit-group--metrics"),i.appendChild(o);const m=this.dom.createChildOf(i,"div","lh-filmstrip-container"),g=e.auditRefs.find((e=>"screenshot-thumbnails"===e.id)),f=g&&g.result;if(f&&f.details){m.id=f.id;const e=this.detailsRenderer.render(f.details);e&&m.appendChild(e)}const _=e.auditRefs.filter((e=>"load-opportunities"===e.group&&!a.showAsPassed(e.result))).sort(((e,t)=>this._getWastedMs(t)-this._getWastedMs(e))),b=d.filter((e=>!!e.relevantAudits));if(b.length&&this.renderMetricAuditFilter(b,i),_.length){const e=2e3,n=_.map((e=>this._getWastedMs(e))),o=Math.max(...n),s=Math.max(1e3*Math.ceil(o/1e3),e),a=this.renderAuditGroup(t["load-opportunities"]),l=this.dom.createComponent("opportunityHeader");this.dom.find(".lh-load-opportunity__col--one",l).textContent=r.opportunityResourceColumnLabel,this.dom.find(".lh-load-opportunity__col--two",l).textContent=r.opportunitySavingsColumnLabel;const d=this.dom.find(".lh-load-opportunity__header",l);a.appendChild(d),_.forEach((e=>a.appendChild(this._renderOpportunity(e,s)))),a.classList.add("lh-audit-group--load-opportunities"),i.appendChild(a)}const w=e.auditRefs.filter((e=>"diagnostics"===e.group&&!a.showAsPassed(e.result))).sort(((e,t)=>("informative"===e.result.scoreDisplayMode?100:Number(e.result.score))-("informative"===t.result.scoreDisplayMode?100:Number(t.result.score))));if(w.length){const e=this.renderAuditGroup(t.diagnostics);w.forEach((t=>e.appendChild(this.renderAudit(t)))),e.classList.add("lh-audit-group--diagnostics"),i.appendChild(e)}const v=e.auditRefs.filter((e=>("load-opportunities"===e.group||"diagnostics"===e.group)&&a.showAsPassed(e.result)));if(!v.length)return i;const y={auditRefs:v,groupDefinitions:t},x=this.renderClump("passed",y);i.appendChild(x);const E=[];if(["performance-budget","timing-budget"].forEach((t=>{const n=e.auditRefs.find((e=>e.id===t));if(n&&n.result.details){const e=this.detailsRenderer.render(n.result.details);e&&(e.id=t,e.classList.add("lh-audit"),E.push(e))}})),E.length>0){const e=this.renderAuditGroup(t.budgets);E.forEach((t=>e.appendChild(t))),e.classList.add("lh-audit-group--budgets"),i.appendChild(e)}return i}renderMetricAuditFilter(e,t){const n=this.dom.createElement("div","lh-metricfilter");this.dom.createChildOf(n,"span","lh-metricfilter__text").textContent=a.i18n.strings.showRelevantAudits;const r=[{acronym:"All"},...e],i=a.getUniqueSuffix();for(const e of r){const r=`metric-${e.acronym}-${i}`,o=this.dom.createChildOf(n,"input","lh-metricfilter__radio");o.type="radio",o.name=`metricsfilter-${i}`,o.id=r;const s=this.dom.createChildOf(n,"label","lh-metricfilter__label");s.htmlFor=r,s.title=e.result&&e.result.title,s.textContent=e.acronym||e.id,"All"===e.acronym&&(o.checked=!0,s.classList.add("lh-metricfilter__label--active")),t.append(n),o.addEventListener("input",(n=>{for(const e of t.querySelectorAll("label.lh-metricfilter__label"))e.classList.toggle("lh-metricfilter__label--active",e.htmlFor===r);t.classList.toggle("lh-category--filtered","All"!==e.acronym);for(const n of t.querySelectorAll("div.lh-audit"))"All"!==e.acronym?(n.hidden=!0,e.relevantAudits&&e.relevantAudits.includes(n.id)&&(n.hidden=!1)):n.hidden=!1;const i=t.querySelectorAll("div.lh-audit-group, details.lh-audit-group");for(const e of i){e.hidden=!1;const t=Array.from(e.querySelectorAll("div.lh-audit")),n=!!t.length&&t.every((e=>e.hidden));e.hidden=n}}))}}}
130
130
  /**
131
131
  * @license
132
132
  * Copyright 2018 The Lighthouse Authors. All Rights Reserved.
@@ -142,7 +142,7 @@ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._
142
142
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
143
143
  * See the License for the specific language governing permissions and
144
144
  * limitations under the License.
145
- */class D extends c{render(e,t={}){const n=this.dom.createElement("div","lh-category");this.createPermalinkSpan(n,e.id),n.appendChild(this.renderCategoryHeader(e,t));const r=e.auditRefs,i=r.filter((e=>"manual"!==e.result.scoreDisplayMode)),o=this._renderAudits(i,t);n.appendChild(o);const s=r.filter((e=>"manual"===e.result.scoreDisplayMode)),a=this.renderClump("manual",{auditRefs:s,description:e.manualDescription});return n.appendChild(a),n}renderScoreGauge(e,t){if(null===e.score)return super.renderScoreGauge(e,t);const n=this.dom.createComponent("gaugePwa"),r=this.dom.find("a.lh-gauge--pwa__wrapper",n);this.dom.safelySetHref(r,`#${e.id}`);const i=n.querySelector("svg");if(!i)throw new Error("no SVG element found in PWA score gauge template");D._makeSvgReferencesUnique(i);const o=this._getGroupIds(e.auditRefs),s=this._getPassingGroupIds(e.auditRefs);if(s.size===o.size)r.classList.add("lh-badged--all");else for(const e of s)r.classList.add(`lh-badged--${e}`);return this.dom.find(".lh-gauge__label",n).textContent=e.title,r.title=this._getGaugeTooltip(e.auditRefs,t),n}_getGroupIds(e){const t=e.map((e=>e.group)).filter((e=>!!e));return new Set(t)}_getPassingGroupIds(e){const t=this._getGroupIds(e);for(const n of e)!a.showAsPassed(n.result)&&n.group&&t.delete(n.group);return t}_getGaugeTooltip(e,t){const n=this._getGroupIds(e),r=[];for(const i of n){const n=e.filter((e=>e.group===i)),o=n.length,s=n.filter((e=>a.showAsPassed(e.result))).length,l=t[i].title;r.push(`${l}: ${s}/${o}`)}return r.join(", ")}_renderAudits(e,t){const n=this.renderUnexpandableClump(e,t),r=this._getPassingGroupIds(e);for(const e of r){this.dom.find(`.lh-audit-group--${e}`,n).classList.add("lh-badged")}return n}static _makeSvgReferencesUnique(e){const t=e.querySelector("defs");if(!t)return;const n=a.getUniqueSuffix(),r=t.querySelectorAll("[id]");for(const t of r){const r=t.id,i=`${r}-${n}`;t.id=i;const o=e.querySelectorAll(`use[href="#${r}"]`);for(const e of o)e.setAttribute("href",`#${i}`);const s=e.querySelectorAll(`[fill="url(#${r})"]`);for(const e of s)e.setAttribute("fill",`url(#${i})`)}}}
145
+ */class D extends c{render(e,t={}){const n=this.dom.createElement("div","lh-category");this.createPermalinkSpan(n,e.id),n.appendChild(this.renderCategoryHeader(e,t));const r=e.auditRefs,i=r.filter((e=>"manual"!==e.result.scoreDisplayMode)),o=this._renderAudits(i,t);n.appendChild(o);const s=r.filter((e=>"manual"===e.result.scoreDisplayMode)),a=this.renderClump("manual",{auditRefs:s,description:e.manualDescription});return n.appendChild(a),n}renderScoreGauge(e,t){return this.renderCategoryScore(e,t)}renderCategoryScore(e,t){if(null===e.score)return super.renderScoreGauge(e,t);const n=this.dom.createComponent("gaugePwa"),r=this.dom.find("a.lh-gauge--pwa__wrapper",n);this.dom.safelySetHref(r,`#${e.id}`);const i=n.querySelector("svg");if(!i)throw new Error("no SVG element found in PWA score gauge template");D._makeSvgReferencesUnique(i);const o=this._getGroupIds(e.auditRefs),s=this._getPassingGroupIds(e.auditRefs);if(s.size===o.size)r.classList.add("lh-badged--all");else for(const e of s)r.classList.add(`lh-badged--${e}`);return this.dom.find(".lh-gauge__label",n).textContent=e.title,r.title=this._getGaugeTooltip(e.auditRefs,t),n}_getGroupIds(e){const t=e.map((e=>e.group)).filter((e=>!!e));return new Set(t)}_getPassingGroupIds(e){const t=this._getGroupIds(e);for(const n of e)!a.showAsPassed(n.result)&&n.group&&t.delete(n.group);return t}_getGaugeTooltip(e,t){const n=this._getGroupIds(e),r=[];for(const i of n){const n=e.filter((e=>e.group===i)),o=n.length,s=n.filter((e=>a.showAsPassed(e.result))).length,l=t[i].title;r.push(`${l}: ${s}/${o}`)}return r.join(", ")}_renderAudits(e,t){const n=this.renderUnexpandableClump(e,t),r=this._getPassingGroupIds(e);for(const e of r){this.dom.find(`.lh-audit-group--${e}`,n).classList.add("lh-badged")}return n}static _makeSvgReferencesUnique(e){const t=e.querySelector("defs");if(!t)return;const n=a.getUniqueSuffix(),r=t.querySelectorAll("[id]");for(const t of r){const r=t.id,i=`${r}-${n}`;t.id=i;const o=e.querySelectorAll(`use[href="#${r}"]`);for(const e of o)e.setAttribute("href",`#${i}`);const s=e.querySelectorAll(`[fill="url(#${r})"]`);for(const e of s)e.setAttribute("fill",`url(#${i})`)}}}
146
146
  /**
147
147
  * @license
148
148
  * Copyright 2017 The Lighthouse Authors. All Rights Reserved.
@@ -161,7 +161,7 @@ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._
161
161
  *
162
162
  * Dummy text for ensuring report robustness: <\/script> pre$`post %%LIGHTHOUSE_JSON%%
163
163
  * (this is handled by terser)
164
- */class F{constructor(e){this._dom=e}renderReport(e,t){this._dom.setLighthouseChannel(e.configSettings.channel||"unknown");const n=a.prepareReportResult(e);return t.textContent="",t.appendChild(this._renderReport(n)),t}_renderReportTopbar(e){const t=this._dom.createComponent("topbar"),n=this._dom.find("a.lh-topbar__url",t);return n.textContent=e.finalUrl,n.title=e.finalUrl,this._dom.safelySetHref(n,e.finalUrl),t}_renderReportHeader(){const e=this._dom.createComponent("heading"),t=this._dom.createComponent("scoresWrapper");return this._dom.find(".lh-scores-wrapper-placeholder",e).replaceWith(t),e}_renderReportFooter(e){const t=this._dom.createComponent("footer"),n=this._dom.find(".lh-env__items",t);n.id="runtime-settings",this._dom.find(".lh-env__title",t).textContent=a.i18n.strings.runtimeSettingsTitle;const r=a.getEnvironmentDisplayValues(e.configSettings||{}),i=[{name:a.i18n.strings.runtimeSettingsUrl,description:e.finalUrl},{name:a.i18n.strings.runtimeSettingsFetchTime,description:a.i18n.formatDateTime(e.fetchTime)},...r,{name:a.i18n.strings.runtimeSettingsChannel,description:e.configSettings.channel},{name:a.i18n.strings.runtimeSettingsUA,description:e.userAgent},{name:a.i18n.strings.runtimeSettingsUANetwork,description:e.environment&&e.environment.networkUserAgent},{name:a.i18n.strings.runtimeSettingsBenchmark,description:e.environment&&e.environment.benchmarkIndex.toFixed(0)}];e.environment.credits&&e.environment.credits["axe-core"]&&i.push({name:a.i18n.strings.runtimeSettingsAxeVersion,description:e.environment.credits["axe-core"]});for(const e of i){if(!e.description)continue;const t=this._dom.createComponent("envItem");this._dom.find(".lh-env__name",t).textContent=e.name,this._dom.find(".lh-env__description",t).textContent=e.description,n.appendChild(t)}return this._dom.find(".lh-footer__version_issue",t).textContent=a.i18n.strings.footerIssue,this._dom.find(".lh-footer__version",t).textContent=e.lighthouseVersion,t}_renderReportWarnings(e){if(!e.runWarnings||0===e.runWarnings.length)return this._dom.createElement("div");const t=this._dom.createComponent("warningsToplevel");this._dom.find(".lh-warnings__msg",t).textContent=a.i18n.strings.toplevelWarningsMessage;const n=this._dom.find("ul",t);for(const t of e.runWarnings){n.appendChild(this._dom.createElement("li")).appendChild(this._dom.convertMarkdownLinkSnippets(t))}return t}_renderScoreGauges(e,t,n){const r=[],i=[],o=[];for(const s of Object.values(e.categories)){const l=n[s.id]||t,d=l.renderScoreGauge(s,e.categoryGroups||{});a.isPluginCategory(s.id)?o.push(d):l.renderScoreGauge===t.renderScoreGauge?r.push(d):i.push(d)}return[...r,...i,...o]}_renderReport(e){const t=new N(e.configSettings.locale,{...a.UIStrings,...e.i18n.rendererFormattedStrings});a.i18n=t,a.reportJson=e;const n=e.audits["full-page-screenshot"]&&e.audits["full-page-screenshot"].details&&"full-page-screenshot"===e.audits["full-page-screenshot"].details.type?e.audits["full-page-screenshot"].details:void 0,r=new L(this._dom,{fullPageScreenshot:n}),i=new c(this._dom,r),o={performance:new T(this._dom,r),pwa:new D(this._dom,r)},s=this._dom.createElement("div");s.appendChild(this._renderReportHeader());const l=this._dom.createElement("div","lh-container"),d=this._dom.createElement("div","lh-report");let p;d.appendChild(this._renderReportWarnings(e));if(1===Object.keys(e.categories).length?s.classList.add("lh-header--solo-category"):p=this._dom.createElement("div","lh-scores-header"),p){const t=this._dom.createComponent("scorescale"),n=this._dom.find(".lh-scores-container",s);p.append(...this._renderScoreGauges(e,i,o)),n.appendChild(p),n.appendChild(t);const r=this._dom.createElement("div","lh-sticky-header");r.append(...this._renderScoreGauges(e,i,o)),l.appendChild(r)}const h=d.appendChild(this._dom.createElement("div","lh-categories"));for(const t of Object.values(e.categories)){const n=o[t.id]||i;n.dom.createChildOf(h,"div","lh-category-wrapper").appendChild(n.render(t,e.categoryGroups))}const u=this._dom.createFragment(),m=this._renderReportTopbar(e);return u.appendChild(m),u.appendChild(l),l.appendChild(s),l.appendChild(d),d.appendChild(this._renderReportFooter(e)),n&&S.installFullPageScreenshot(l,n.screenshot),u}}
164
+ */class F{constructor(e){this._dom=e}renderReport(e,t){this._dom.setLighthouseChannel(e.configSettings.channel||"unknown");const n=a.prepareReportResult(e);return t.textContent="",t.appendChild(this._renderReport(n)),t}_renderReportTopbar(e){const t=this._dom.createComponent("topbar"),n=this._dom.find("a.lh-topbar__url",t);return n.textContent=e.finalUrl,n.title=e.finalUrl,this._dom.safelySetHref(n,e.finalUrl),t}_renderReportHeader(){const e=this._dom.createComponent("heading"),t=this._dom.createComponent("scoresWrapper");return this._dom.find(".lh-scores-wrapper-placeholder",e).replaceWith(t),e}_renderReportFooter(e){const t=this._dom.createComponent("footer"),n=this._dom.find(".lh-env__items",t);n.id="runtime-settings",this._dom.find(".lh-env__title",t).textContent=a.i18n.strings.runtimeSettingsTitle;const r=a.getEnvironmentDisplayValues(e.configSettings||{}),i=[{name:a.i18n.strings.runtimeSettingsUrl,description:e.finalUrl},{name:a.i18n.strings.runtimeSettingsFetchTime,description:a.i18n.formatDateTime(e.fetchTime)},...r,{name:a.i18n.strings.runtimeSettingsChannel,description:e.configSettings.channel},{name:a.i18n.strings.runtimeSettingsUA,description:e.userAgent},{name:a.i18n.strings.runtimeSettingsUANetwork,description:e.environment&&e.environment.networkUserAgent},{name:a.i18n.strings.runtimeSettingsBenchmark,description:e.environment&&e.environment.benchmarkIndex.toFixed(0)}];e.environment.credits&&e.environment.credits["axe-core"]&&i.push({name:a.i18n.strings.runtimeSettingsAxeVersion,description:e.environment.credits["axe-core"]});for(const e of i){if(!e.description)continue;const t=this._dom.createComponent("envItem");this._dom.find(".lh-env__name",t).textContent=e.name,this._dom.find(".lh-env__description",t).textContent=e.description,n.appendChild(t)}return this._dom.find(".lh-footer__version_issue",t).textContent=a.i18n.strings.footerIssue,this._dom.find(".lh-footer__version",t).textContent=e.lighthouseVersion,t}_renderReportWarnings(e){if(!e.runWarnings||0===e.runWarnings.length)return this._dom.createElement("div");const t=this._dom.createComponent("warningsToplevel");this._dom.find(".lh-warnings__msg",t).textContent=a.i18n.strings.toplevelWarningsMessage;const n=this._dom.find("ul",t);for(const t of e.runWarnings){n.appendChild(this._dom.createElement("li")).appendChild(this._dom.convertMarkdownLinkSnippets(t))}return t}_renderScoreGauges(e,t,n){const r=[],i=[],o=[];for(const s of Object.values(e.categories)){const l=n[s.id]||t,d=l.renderCategoryScore(s,e.categoryGroups||{},{gatherMode:e.gatherMode});a.isPluginCategory(s.id)?o.push(d):l.renderCategoryScore===t.renderCategoryScore?r.push(d):i.push(d)}return[...r,...i,...o]}_renderReport(e){const t=new N(e.configSettings.locale,{...a.UIStrings,...e.i18n.rendererFormattedStrings});a.i18n=t,a.reportJson=e;const n=e.audits["full-page-screenshot"]&&e.audits["full-page-screenshot"].details&&"full-page-screenshot"===e.audits["full-page-screenshot"].details.type?e.audits["full-page-screenshot"].details:void 0,r=new L(this._dom,{fullPageScreenshot:n}),i=new c(this._dom,r),o={performance:new T(this._dom,r),pwa:new D(this._dom,r)},s=this._dom.createElement("div");s.appendChild(this._renderReportHeader());const l=this._dom.createElement("div","lh-container"),d=this._dom.createElement("div","lh-report");let p;d.appendChild(this._renderReportWarnings(e));if(1===Object.keys(e.categories).length?s.classList.add("lh-header--solo-category"):p=this._dom.createElement("div","lh-scores-header"),p){const t=this._dom.createComponent("scorescale"),n=this._dom.find(".lh-scores-container",s);p.append(...this._renderScoreGauges(e,i,o)),n.appendChild(p),n.appendChild(t);const r=this._dom.createElement("div","lh-sticky-header");r.append(...this._renderScoreGauges(e,i,o)),l.appendChild(r)}const h=d.appendChild(this._dom.createElement("div","lh-categories")),u={gatherMode:e.gatherMode};for(const t of Object.values(e.categories)){const n=o[t.id]||i;n.dom.createChildOf(h,"div","lh-category-wrapper").appendChild(n.render(t,e.categoryGroups,u))}const m=this._dom.createFragment(),g=this._renderReportTopbar(e);return m.appendChild(g),m.appendChild(l),l.appendChild(s),l.appendChild(d),d.appendChild(this._renderReportFooter(e)),n&&S.installFullPageScreenshot(l,n.screenshot),m}}
165
165
  /**
166
166
  * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
167
167
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
@@ -171,7 +171,7 @@ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._
171
171
  * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
172
172
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
173
173
  * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
174
- */const U="undefined"!=typeof btoa?btoa:e=>Buffer.from(e).toString("base64"),P="undefined"!=typeof atob?atob:e=>Buffer.from(e,"base64").toString();const H={toBase64:async function(e,t){let n=(new TextEncoder).encode(e);if(t.gzip)if("undefined"!=typeof CompressionStream){const e=new CompressionStream("gzip"),t=e.writable.getWriter();t.write(n),t.close();const r=await new Response(e.readable).arrayBuffer();n=new Uint8Array(r)}else{n=window.pako.gzip(e)}let r="";for(let e=0;e<n.length;e+=5e3)r+=String.fromCharCode(...n.subarray(e,e+5e3));return U(r)},fromBase64:function(e,t){const n=P(e),r=Uint8Array.from(n,(e=>e.charCodeAt(0)));if(t.gzip){return window.pako.ungzip(r,{to:"string"})}return(new TextDecoder).decode(r)}};
174
+ */const U="undefined"!=typeof btoa?btoa:e=>Buffer.from(e).toString("base64"),P="undefined"!=typeof atob?atob:e=>Buffer.from(e,"base64").toString();const $={toBase64:async function(e,t){let n=(new TextEncoder).encode(e);if(t.gzip)if("undefined"!=typeof CompressionStream){const e=new CompressionStream("gzip"),t=e.writable.getWriter();t.write(n),t.close();const r=await new Response(e.readable).arrayBuffer();n=new Uint8Array(r)}else{n=window.pako.gzip(e)}let r="";for(let e=0;e<n.length;e+=5e3)r+=String.fromCharCode(...n.subarray(e,e+5e3));return U(r)},fromBase64:function(e,t){const n=P(e),r=Uint8Array.from(n,(e=>e.charCodeAt(0)));if(t.gzip){return window.pako.ungzip(r,{to:"string"})}return(new TextDecoder).decode(r)}};
175
175
  /**
176
176
  * @license
177
177
  * Copyright 2021 The Lighthouse Authors. All Rights Reserved.
@@ -187,7 +187,7 @@ class l{constructor(e){this._document=e,this._lighthouseChannel="unknown",this._
187
187
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
188
188
  * See the License for the specific language governing permissions and
189
189
  * limitations under the License.
190
- */function $(){const e=window.location.host.endsWith(".vercel.app"),t=new URLSearchParams(window.location.search).has("dev");return e?`https://${window.location.host}/gh-pages`:t?"http://localhost:8000":"https://googlechrome.github.io/lighthouse"}function O(e){const t=e.generatedTime,n=e.fetchTime||t;return`${e.lighthouseVersion}-${e.requestedUrl}-${n}`}async function z(e,t,n){const r=new URL(t),i=Boolean(window.CompressionStream);r.hash=await H.toBase64(JSON.stringify(e),{gzip:i}),i&&r.searchParams.set("gzip","1"),window.open(r.toString(),n)}async function I(e){const t="viewer-"+O(e);!function(e,t,n){const r=new URL(t).origin;window.addEventListener("message",(function t(n){n.origin===r&&i&&n.data.opened&&(i.postMessage(e,r),window.removeEventListener("message",t))}));const i=window.open(t,n)}({lhr:e},$()+"/viewer/",t)}
190
+ */function H(){const e=window.location.host.endsWith(".vercel.app"),t=new URLSearchParams(window.location.search).has("dev");return e?`https://${window.location.host}/gh-pages`:t?"http://localhost:8000":"https://googlechrome.github.io/lighthouse"}function O(e){const t=e.generatedTime,n=e.fetchTime||t;return`${e.lighthouseVersion}-${e.requestedUrl}-${n}`}async function z(e,t,n){const r=new URL(t),i=Boolean(window.CompressionStream);r.hash=await $.toBase64(JSON.stringify(e),{gzip:i}),i&&r.searchParams.set("gzip","1"),window.open(r.toString(),n)}async function I(e){const t="viewer-"+O(e);!function(e,t,n){const r=new URL(t).origin;window.addEventListener("message",(function t(n){n.origin===r&&i&&n.data.opened&&(i.postMessage(e,r),window.removeEventListener("message",t))}));const i=window.open(t,n)}({lhr:e},H()+"/viewer/",t)}
191
191
  /**
192
192
  * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
193
193
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
@@ -198,12 +198,12 @@ class B{constructor(e){this._dom=e,this._toggleEl,this._menuEl,this.onDocumentKe
198
198
  * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
199
199
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
200
200
  * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
201
- */class G{constructor(e,t){this.lhr,this._reportUIFeatures=e,this._dom=t,this._document=this._dom.document(),this._dropDownMenu=new B(this._dom),this._copyAttempt=!1,this.topbarEl,this.scoreScaleEl,this.stickyHeaderEl,this.highlightEl,this.onDropDownMenuClick=this.onDropDownMenuClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.onCopy=this.onCopy.bind(this),this.collapseAllDetails=this.collapseAllDetails.bind(this),this._updateStickyHeaderOnScroll=this._updateStickyHeaderOnScroll.bind(this)}enable(e){this.lhr=e,this._document.addEventListener("keyup",this.onKeyUp),this._document.addEventListener("copy",this.onCopy),this._dropDownMenu.setup(this.onDropDownMenuClick),this._setUpCollapseDetailsAfterPrinting();if(this._dom.find(".lh-topbar__logo",this._document).addEventListener("click",(()=>R(this._dom))),Object.keys(this.lhr.categories).length>=2){this._setupStickyHeaderElements();const e=this._dom.find(".lh-container",this._document);if(this._getScrollParent(e).addEventListener("scroll",this._updateStickyHeaderOnScroll),this._dom.isDevTools()){new window.ResizeObserver(this._updateStickyHeaderOnScroll).observe(e)}else window.addEventListener("resize",this._updateStickyHeaderOnScroll)}}onDropDownMenuClick(e){e.preventDefault();const t=e.target;if(t&&t.hasAttribute("data-action")){switch(t.getAttribute("data-action")){case"copy":this.onCopyButtonClick();break;case"print-summary":this.collapseAllDetails(),this._print();break;case"print-expanded":this.expandAllDetails(),this._print();break;case"save-json":{const e=JSON.stringify(this.lhr,null,2);this._reportUIFeatures._saveFile(new Blob([e],{type:"application/json"}));break}case"save-html":{const t=this._reportUIFeatures.getReportHtml();try{this._reportUIFeatures._saveFile(new Blob([t],{type:"text/html"}))}catch(e){this._dom.fireEventOn("lh-log",this._document,{cmd:"error",msg:"Could not export as HTML. "+e.message})}break}case"open-viewer":this._dom.isDevTools()?async function(e){const t="viewer-"+O(e),n=$()+"/viewer/";await z({lhr:e},n,t)}(this.lhr):I(this.lhr);break;case"save-gist":this._reportUIFeatures.saveAsGist();break;case"toggle-dark":R(this._dom)}this._dropDownMenu.close()}}onCopy(e){this._copyAttempt&&e.clipboardData&&(e.preventDefault(),e.clipboardData.setData("text/plain",JSON.stringify(this.lhr,null,2)),this._dom.fireEventOn("lh-log",this._document,{cmd:"log",msg:"Report JSON copied to clipboard"})),this._copyAttempt=!1}onCopyButtonClick(){this._dom.fireEventOn("lh-analytics",this._document,{cmd:"send",fields:{hitType:"event",eventCategory:"report",eventAction:"copy"}});try{this._document.queryCommandSupported("copy")&&(this._copyAttempt=!0,this._document.execCommand("copy")||(this._copyAttempt=!1,this._dom.fireEventOn("lh-log",this._document,{cmd:"warn",msg:"Your browser does not support copy to clipboard."})))}catch(e){this._copyAttempt=!1,this._dom.fireEventOn("lh-log",this._document,{cmd:"log",msg:e.message})}}onKeyUp(e){(e.ctrlKey||e.metaKey)&&80===e.keyCode&&this._dropDownMenu.close()}expandAllDetails(){this._dom.findAll(".lh-categories details",this._document).map((e=>e.open=!0))}collapseAllDetails(){this._dom.findAll(".lh-categories details",this._document).map((e=>e.open=!1))}_print(){self.print()}resetUIState(){this._dropDownMenu.close()}_getScrollParent(e){const{overflowY:t}=window.getComputedStyle(e);return"visible"!==t&&"hidden"!==t?e:e.parentElement?this._getScrollParent(e.parentElement):document}_setUpCollapseDetailsAfterPrinting(){"onbeforeprint"in self?self.addEventListener("afterprint",this.collapseAllDetails):self.matchMedia("print").addListener((e=>{e.matches?this.expandAllDetails():this.collapseAllDetails()}))}_setupStickyHeaderElements(){this.topbarEl=this._dom.find("div.lh-topbar",this._document),this.scoreScaleEl=this._dom.find("div.lh-scorescale",this._document),this.stickyHeaderEl=this._dom.find("div.lh-sticky-header",this._document),this.highlightEl=this._dom.createChildOf(this.stickyHeaderEl,"div","lh-highlighter")}_updateStickyHeaderOnScroll(){const e=this.topbarEl.getBoundingClientRect().bottom>=this.scoreScaleEl.getBoundingClientRect().top,t=Array.from(this._document.querySelectorAll(".lh-category")).filter((e=>e.getBoundingClientRect().top-window.innerHeight/2<0)),n=t.length>0?t.length-1:0,r=this.stickyHeaderEl.querySelectorAll(".lh-gauge__wrapper"),i=r[n],o=r[0].getBoundingClientRect().left,s=i.getBoundingClientRect().left-o;this.highlightEl.style.transform=`translate(${s}px)`,this.stickyHeaderEl.classList.toggle("lh-sticky-header--visible",e)}}
201
+ */class G{constructor(e,t){this.lhr,this._reportUIFeatures=e,this._dom=t,this._document=this._dom.document(),this._dropDownMenu=new B(this._dom),this._copyAttempt=!1,this.topbarEl,this.scoreScaleEl,this.stickyHeaderEl,this.highlightEl,this.onDropDownMenuClick=this.onDropDownMenuClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.onCopy=this.onCopy.bind(this),this.collapseAllDetails=this.collapseAllDetails.bind(this),this._updateStickyHeaderOnScroll=this._updateStickyHeaderOnScroll.bind(this)}enable(e){this.lhr=e,this._document.addEventListener("keyup",this.onKeyUp),this._document.addEventListener("copy",this.onCopy),this._dropDownMenu.setup(this.onDropDownMenuClick),this._setUpCollapseDetailsAfterPrinting();if(this._dom.find(".lh-topbar__logo",this._document).addEventListener("click",(()=>R(this._dom))),Object.keys(this.lhr.categories).length>=2){this._setupStickyHeaderElements();const e=this._dom.find(".lh-container",this._document);if(this._getScrollParent(e).addEventListener("scroll",this._updateStickyHeaderOnScroll),this._dom.isDevTools()){new window.ResizeObserver(this._updateStickyHeaderOnScroll).observe(e)}else window.addEventListener("resize",this._updateStickyHeaderOnScroll)}}onDropDownMenuClick(e){e.preventDefault();const t=e.target;if(t&&t.hasAttribute("data-action")){switch(t.getAttribute("data-action")){case"copy":this.onCopyButtonClick();break;case"print-summary":this.collapseAllDetails(),this._print();break;case"print-expanded":this.expandAllDetails(),this._print();break;case"save-json":{const e=JSON.stringify(this.lhr,null,2);this._reportUIFeatures._saveFile(new Blob([e],{type:"application/json"}));break}case"save-html":{const t=this._reportUIFeatures.getReportHtml();try{this._reportUIFeatures._saveFile(new Blob([t],{type:"text/html"}))}catch(e){this._dom.fireEventOn("lh-log",this._document,{cmd:"error",msg:"Could not export as HTML. "+e.message})}break}case"open-viewer":this._dom.isDevTools()?async function(e){const t="viewer-"+O(e),n=H()+"/viewer/";await z({lhr:e},n,t)}(this.lhr):I(this.lhr);break;case"save-gist":this._reportUIFeatures.saveAsGist();break;case"toggle-dark":R(this._dom)}this._dropDownMenu.close()}}onCopy(e){this._copyAttempt&&e.clipboardData&&(e.preventDefault(),e.clipboardData.setData("text/plain",JSON.stringify(this.lhr,null,2)),this._dom.fireEventOn("lh-log",this._document,{cmd:"log",msg:"Report JSON copied to clipboard"})),this._copyAttempt=!1}onCopyButtonClick(){this._dom.fireEventOn("lh-analytics",this._document,{cmd:"send",fields:{hitType:"event",eventCategory:"report",eventAction:"copy"}});try{this._document.queryCommandSupported("copy")&&(this._copyAttempt=!0,this._document.execCommand("copy")||(this._copyAttempt=!1,this._dom.fireEventOn("lh-log",this._document,{cmd:"warn",msg:"Your browser does not support copy to clipboard."})))}catch(e){this._copyAttempt=!1,this._dom.fireEventOn("lh-log",this._document,{cmd:"log",msg:e.message})}}onKeyUp(e){(e.ctrlKey||e.metaKey)&&80===e.keyCode&&this._dropDownMenu.close()}expandAllDetails(){this._dom.findAll(".lh-categories details",this._document).map((e=>e.open=!0))}collapseAllDetails(){this._dom.findAll(".lh-categories details",this._document).map((e=>e.open=!1))}_print(){self.print()}resetUIState(){this._dropDownMenu.close()}_getScrollParent(e){const{overflowY:t}=window.getComputedStyle(e);return"visible"!==t&&"hidden"!==t?e:e.parentElement?this._getScrollParent(e.parentElement):document}_setUpCollapseDetailsAfterPrinting(){"onbeforeprint"in self?self.addEventListener("afterprint",this.collapseAllDetails):self.matchMedia("print").addListener((e=>{e.matches?this.expandAllDetails():this.collapseAllDetails()}))}_setupStickyHeaderElements(){this.topbarEl=this._dom.find("div.lh-topbar",this._document),this.scoreScaleEl=this._dom.find("div.lh-scorescale",this._document),this.stickyHeaderEl=this._dom.find("div.lh-sticky-header",this._document),this.highlightEl=this._dom.createChildOf(this.stickyHeaderEl,"div","lh-highlighter")}_updateStickyHeaderOnScroll(){const e=this.topbarEl.getBoundingClientRect().bottom>=this.scoreScaleEl.getBoundingClientRect().top,t=Array.from(this._document.querySelectorAll(".lh-category")).filter((e=>e.getBoundingClientRect().top-window.innerHeight/2<0)),n=t.length>0?t.length-1:0,r=this.stickyHeaderEl.querySelectorAll(".lh-gauge__wrapper"),i=r[n],o=r[0].getBoundingClientRect().left,s=i.getBoundingClientRect().left-o;this.highlightEl.style.transform=`translate(${s}px)`,this.stickyHeaderEl.classList.toggle("lh-sticky-header--visible",e)}}
202
202
  /**
203
203
  * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
204
204
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
205
205
  * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
206
- */var j=function(e){const t=new URL(e.finalUrl).hostname,n=e.fetchTime&&new Date(e.fetchTime)||new Date,r=n.toLocaleTimeString("en-US",{hour12:!1}),i=n.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}).split("/");return i.unshift(i.pop()),`${t}_${i.join("-")}_${r}`.replace(/[/?<>\\:*|"]/g,"-")};class q{constructor(e){this.json,this._dom=e,this._document=this._dom.document(),this._topbar=new G(this,e),this.onMediaQueryChange=this.onMediaQueryChange.bind(this)}initFeatures(e){this.json=e,this._topbar.enable(e),this._topbar.resetUIState(),this._setupMediaQueryListeners(),this._setupThirdPartyFilter(),this._setupElementScreenshotOverlay(this._dom.find(".lh-container",this._document));let t=!1;!this._dom.isDevTools()&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(t=!0);["performance","accessibility","best-practices","seo"].every((t=>{const n=e.categories[t];return n&&1===n.score}))&&(t=!0,this._enableFireworks()),t&&R(this._dom,!0);if(e.categories.performance&&e.categories.performance.auditRefs.some((t=>Boolean("metrics"===t.group&&e.audits[t.id].errorMessage)))){this._dom.find("input.lh-metrics-toggle__input",this._document).checked=!0}this.json.audits["script-treemap-data"]&&this.json.audits["script-treemap-data"].details&&this.addButton({text:a.i18n.strings.viewTreemapLabel,icon:"treemap",onClick:()=>function(e){if(!e.audits["script-treemap-data"].details)throw new Error("no script treemap data found");z({lhr:{requestedUrl:e.requestedUrl,finalUrl:e.finalUrl,audits:{"script-treemap-data":e.audits["script-treemap-data"]},configSettings:{locale:e.configSettings.locale}}},$()+"/treemap/","treemap-"+O(e))}(this.json)});for(const e of this._dom.findAll("[data-i18n]",this._dom.document())){const t=e.getAttribute("data-i18n");e.textContent=a.i18n.strings[t]}}addButton(e){const t=this._document.querySelector(".lh-audit-group--metrics"),n=e.container||t;if(!n)return;let r=n.querySelector(".lh-buttons");r||(r=this._dom.createChildOf(n,"div","lh-buttons"));const i=["lh-button"];e.icon&&(i.push("lh-report-icon"),i.push(`lh-report-icon--${e.icon}`));const o=this._dom.createChildOf(r,"button",i.join(" "));return o.textContent=e.text,o.addEventListener("click",e.onClick),o}getReportHtml(){return this._topbar.resetUIState(),this._document.documentElement.outerHTML}saveAsGist(){throw new Error("Cannot save as gist from base report")}_enableFireworks(){const e=this._dom.find(".lh-scores-container",this._document);e.classList.add("lh-score100"),e.addEventListener("click",(t=>{e.classList.toggle("lh-fireworks-paused")}))}_setupMediaQueryListeners(){const e=self.matchMedia("(max-width: 500px)");e.addListener(this.onMediaQueryChange),this.onMediaQueryChange(e)}_resetUIState(){this._topbar.resetUIState()}onMediaQueryChange(e){this._dom.find(".lh-root",this._document).classList.toggle("lh-narrow",e.matches)}_setupThirdPartyFilter(){const e=["uses-rel-preconnect","third-party-facades"],t=["legacy-javascript"];Array.from(this._document.querySelectorAll("table.lh-table")).filter((e=>e.querySelector("td.lh-table-column--url, td.lh-table-column--source-location"))).filter((t=>{const n=t.closest(".lh-audit");if(!n)throw new Error(".lh-table not within audit");return!e.includes(n.id)})).forEach(((e,n)=>{const r=
206
+ */var j=function(e){const t=new URL(e.finalUrl).hostname,n=e.fetchTime&&new Date(e.fetchTime)||new Date,r=n.toLocaleTimeString("en-US",{hour12:!1}),i=n.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}).split("/");return i.unshift(i.pop()),`${t}_${i.join("-")}_${r}`.replace(/[/?<>\\:*|"]/g,"-")};class q{constructor(e){this.json,this._dom=e,this._document=this._dom.document(),this._topbar=new G(this,e),this.onMediaQueryChange=this.onMediaQueryChange.bind(this)}initFeatures(e){this.json=e,this._topbar.enable(e),this._topbar.resetUIState(),this._setupMediaQueryListeners(),this._setupThirdPartyFilter(),this._setupElementScreenshotOverlay(this._dom.find(".lh-container",this._document));let t=!1;!this._dom.isDevTools()&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(t=!0);["performance","accessibility","best-practices","seo"].every((t=>{const n=e.categories[t];return n&&1===n.score}))&&(t=!0,this._enableFireworks()),t&&R(this._dom,!0);if(e.categories.performance&&e.categories.performance.auditRefs.some((t=>Boolean("metrics"===t.group&&e.audits[t.id].errorMessage)))){this._dom.find("input.lh-metrics-toggle__input",this._document).checked=!0}this.json.audits["script-treemap-data"]&&this.json.audits["script-treemap-data"].details&&this.addButton({text:a.i18n.strings.viewTreemapLabel,icon:"treemap",onClick:()=>function(e){if(!e.audits["script-treemap-data"].details)throw new Error("no script treemap data found");z({lhr:{requestedUrl:e.requestedUrl,finalUrl:e.finalUrl,audits:{"script-treemap-data":e.audits["script-treemap-data"]},configSettings:{locale:e.configSettings.locale}}},H()+"/treemap/","treemap-"+O(e))}(this.json)});for(const e of this._dom.findAll("[data-i18n]",this._dom.document())){const t=e.getAttribute("data-i18n");e.textContent=a.i18n.strings[t]}}addButton(e){const t=this._document.querySelector(".lh-audit-group--metrics"),n=e.container||t;if(!n)return;let r=n.querySelector(".lh-buttons");r||(r=this._dom.createChildOf(n,"div","lh-buttons"));const i=["lh-button"];e.icon&&(i.push("lh-report-icon"),i.push(`lh-report-icon--${e.icon}`));const o=this._dom.createChildOf(r,"button",i.join(" "));return o.textContent=e.text,o.addEventListener("click",e.onClick),o}getReportHtml(){return this._topbar.resetUIState(),this._document.documentElement.outerHTML}saveAsGist(){throw new Error("Cannot save as gist from base report")}_enableFireworks(){const e=this._dom.find(".lh-scores-container",this._document);e.classList.add("lh-score100"),e.addEventListener("click",(t=>{e.classList.toggle("lh-fireworks-paused")}))}_setupMediaQueryListeners(){const e=self.matchMedia("(max-width: 500px)");e.addListener(this.onMediaQueryChange),this.onMediaQueryChange(e)}_resetUIState(){this._topbar.resetUIState()}onMediaQueryChange(e){this._dom.find(".lh-root",this._document).classList.toggle("lh-narrow",e.matches)}_setupThirdPartyFilter(){const e=["uses-rel-preconnect","third-party-facades"],t=["legacy-javascript"];Array.from(this._document.querySelectorAll("table.lh-table")).filter((e=>e.querySelector("td.lh-table-column--url, td.lh-table-column--source-location"))).filter((t=>{const n=t.closest(".lh-audit");if(!n)throw new Error(".lh-table not within audit");return!e.includes(n.id)})).forEach((e=>{const n=
207
207
  /**
208
208
  * @license
209
209
  * Copyright 2017 The Lighthouse Authors. All Rights Reserved.
@@ -220,7 +220,7 @@ class B{constructor(e){this._dom=e,this._toggleEl,this._menuEl,this.onDocumentKe
220
220
  * See the License for the specific language governing permissions and
221
221
  * limitations under the License.
222
222
  */
223
- function(e){return Array.from(e.tBodies[0].rows)}(e),i=this._getThirdPartyRows(r,this.json.finalUrl),o=this._dom.createComponent("3pFilter"),s=this._dom.find("input",o),l=`lh-3p-filter-label--${n}`;s.id=l,s.addEventListener("change",(e=>{const t=e.target instanceof HTMLInputElement&&!e.target.checked;let n=!0,o=r[0];for(;o;){const e=t&&i.includes(o);do{o.classList.toggle("lh-row--hidden",e),o.classList.toggle("lh-row--even",!e&&n),o.classList.toggle("lh-row--odd",!e&&!n),o=o.nextElementSibling}while(o&&o.classList.contains("lh-sub-item-row"));e||(n=!n)}})),this._dom.find("label",o).setAttribute("for",l),this._dom.find(".lh-3p-filter-count",o).textContent=`${i.length}`,this._dom.find(".lh-3p-ui-string",o).textContent=a.i18n.strings.thirdPartyResourcesLabel;const d=i.length===r.length,c=!i.length;if((d||c)&&(s.disabled=!0,s.checked=d),!e.parentNode)return;e.parentNode.insertBefore(o,e);const p=e.closest(".lh-audit");if(!p)throw new Error(".lh-table not within audit");t.includes(p.id)&&!d&&s.click()}))}_setupElementScreenshotOverlay(e){const t=this.json.audits["full-page-screenshot"]&&this.json.audits["full-page-screenshot"].details&&"full-page-screenshot"===this.json.audits["full-page-screenshot"].details.type&&this.json.audits["full-page-screenshot"].details;t&&S.installOverlayFeature({dom:this._dom,reportEl:e,overlayContainerEl:e,fullPageScreenshot:t})}_getThirdPartyRows(e,t){const n=[],r=a.getRootDomain(t);for(const t of e){if(t.classList.contains("lh-sub-item-row"))continue;const e=t.querySelector("div.lh-text__url");if(!e)continue;const i=e.dataset.url;if(!i)continue;a.getRootDomain(i)!==r&&n.push(t)}return n}_saveFile(e){const t=j({finalUrl:this.json.finalUrl,fetchTime:this.json.fetchTime}),n=e.type.match("json")?".json":".html",r=this._dom.createElement("a");r.download=`${t}${n}`,this._dom.safelySetBlobHref(r,e),this._document.body.appendChild(r),r.click(),this._document.body.removeChild(r),setTimeout((()=>URL.revokeObjectURL(r.href)),500)}}
223
+ function(e){return Array.from(e.tBodies[0].rows)}(e),r=this._getThirdPartyRows(n,this.json.finalUrl),i=this._dom.createComponent("3pFilter"),o=this._dom.find("input",i);o.addEventListener("change",(e=>{const t=e.target instanceof HTMLInputElement&&!e.target.checked;let i=!0,o=n[0];for(;o;){const e=t&&r.includes(o);do{o.classList.toggle("lh-row--hidden",e),o.classList.toggle("lh-row--even",!e&&i),o.classList.toggle("lh-row--odd",!e&&!i),o=o.nextElementSibling}while(o&&o.classList.contains("lh-sub-item-row"));e||(i=!i)}})),this._dom.find(".lh-3p-filter-count",i).textContent=`${r.length}`,this._dom.find(".lh-3p-ui-string",i).textContent=a.i18n.strings.thirdPartyResourcesLabel;const s=r.length===n.length,l=!r.length;if((s||l)&&(o.disabled=!0,o.checked=s),!e.parentNode)return;e.parentNode.insertBefore(i,e);const d=e.closest(".lh-audit");if(!d)throw new Error(".lh-table not within audit");t.includes(d.id)&&!s&&o.click()}))}_setupElementScreenshotOverlay(e){const t=this.json.audits["full-page-screenshot"]&&this.json.audits["full-page-screenshot"].details&&"full-page-screenshot"===this.json.audits["full-page-screenshot"].details.type&&this.json.audits["full-page-screenshot"].details;t&&S.installOverlayFeature({dom:this._dom,reportEl:e,overlayContainerEl:e,fullPageScreenshot:t})}_getThirdPartyRows(e,t){const n=[],r=a.getRootDomain(t);for(const t of e){if(t.classList.contains("lh-sub-item-row"))continue;const e=t.querySelector("div.lh-text__url");if(!e)continue;const i=e.dataset.url;if(!i)continue;a.getRootDomain(i)!==r&&n.push(t)}return n}_saveFile(e){const t=j({finalUrl:this.json.finalUrl,fetchTime:this.json.fetchTime}),n=e.type.match("json")?".json":".html",r=this._dom.createElement("a");r.download=`${t}${n}`,this._dom.safelySetBlobHref(r,e),this._document.body.appendChild(r),r.click(),this._document.body.removeChild(r),setTimeout((()=>URL.revokeObjectURL(r.href)),500)}}
224
224
  /**
225
225
  * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
226
226
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
@@ -1,7 +1,7 @@
1
1
  Name: Puppeteer
2
2
  Short Name: Puppeteer
3
3
  URL: https://github.com/puppeteer/puppeteer
4
- Version: 10.0.0
4
+ Version: 10.4.0
5
5
  License: Apache-2.0
6
6
  License File: LICENSE
7
7
  Security Critical: no