@qilin-agent/experimental-inspector 0.0.0-stage → 3.1.3
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.
- package/README.i18n.yaml +49 -0
- package/README.md +179 -2
- package/README.zh.md +180 -0
- package/cordis.patch.yml +5 -0
- package/icon.svg +12 -0
- package/lib/client.js +3572 -0
- package/lib/client.page.js +314 -0
- package/lib/devtools/Images/3d-center.svg +3 -0
- package/lib/devtools/Images/3d-pan.svg +3 -0
- package/lib/devtools/Images/3d-rotate.svg +3 -0
- package/lib/devtools/Images/accelerometer-back.svg +69 -0
- package/lib/devtools/Images/accelerometer-bottom.png +0 -0
- package/lib/devtools/Images/accelerometer-front.svg +28 -0
- package/lib/devtools/Images/accelerometer-left.png +0 -0
- package/lib/devtools/Images/accelerometer-right.png +0 -0
- package/lib/devtools/Images/accelerometer-top.png +0 -0
- package/lib/devtools/Images/account-tree.svg +10 -0
- package/lib/devtools/Images/add-photo.svg +3 -0
- package/lib/devtools/Images/ai-explorer-badge.svg +114 -0
- package/lib/devtools/Images/align-content-center.svg +5 -0
- package/lib/devtools/Images/align-content-end.svg +5 -0
- package/lib/devtools/Images/align-content-space-around.svg +6 -0
- package/lib/devtools/Images/align-content-space-between.svg +4 -0
- package/lib/devtools/Images/align-content-space-evenly.svg +6 -0
- package/lib/devtools/Images/align-content-start.svg +5 -0
- package/lib/devtools/Images/align-content-stretch.svg +4 -0
- package/lib/devtools/Images/align-items-baseline.svg +4 -0
- package/lib/devtools/Images/align-items-center.svg +5 -0
- package/lib/devtools/Images/align-items-end.svg +5 -0
- package/lib/devtools/Images/align-items-start.svg +5 -0
- package/lib/devtools/Images/align-items-stretch.svg +6 -0
- package/lib/devtools/Images/align-self-center.svg +3 -0
- package/lib/devtools/Images/align-self-end.svg +4 -0
- package/lib/devtools/Images/align-self-start.svg +4 -0
- package/lib/devtools/Images/align-self-stretch.svg +5 -0
- package/lib/devtools/Images/animation.svg +3 -0
- package/lib/devtools/Images/arrow-back.svg +4 -0
- package/lib/devtools/Images/arrow-collapse.svg +3 -0
- package/lib/devtools/Images/arrow-down.svg +10 -0
- package/lib/devtools/Images/arrow-drop-down-dark.svg +3 -0
- package/lib/devtools/Images/arrow-drop-down-light.svg +3 -0
- package/lib/devtools/Images/arrow-drop-down.svg +3 -0
- package/lib/devtools/Images/arrow-forward.svg +4 -0
- package/lib/devtools/Images/arrow-right-circle.svg +3 -0
- package/lib/devtools/Images/arrow-up-down-circle.svg +3 -0
- package/lib/devtools/Images/arrow-up-down.svg +3 -0
- package/lib/devtools/Images/arrow-up.svg +10 -0
- package/lib/devtools/Images/attach-file.svg +3 -0
- package/lib/devtools/Images/baseline-high-availability.svg +17 -0
- package/lib/devtools/Images/baseline-limited-availability.svg +19 -0
- package/lib/devtools/Images/baseline-low-availability.svg +31 -0
- package/lib/devtools/Images/bell.svg +3 -0
- package/lib/devtools/Images/bezier-curve-filled.svg +3 -0
- package/lib/devtools/Images/bin.svg +1 -0
- package/lib/devtools/Images/bottom-panel-close.svg +1 -0
- package/lib/devtools/Images/bottom-panel-open.svg +1 -0
- package/lib/devtools/Images/brackets.svg +1 -0
- package/lib/devtools/Images/breakpoint-circle.svg +4 -0
- package/lib/devtools/Images/breakpoint-crossed-filled.svg +1 -0
- package/lib/devtools/Images/breakpoint-crossed.svg +1 -0
- package/lib/devtools/Images/brush-2.svg +3 -0
- package/lib/devtools/Images/brush-filled.svg +1 -0
- package/lib/devtools/Images/brush.svg +1 -0
- package/lib/devtools/Images/bucket.svg +4 -0
- package/lib/devtools/Images/bug.svg +3 -0
- package/lib/devtools/Images/button-magic.svg +3 -0
- package/lib/devtools/Images/calendar-today.svg +3 -0
- package/lib/devtools/Images/center-focus-weak.svg +3 -0
- package/lib/devtools/Images/check-circle.svg +3 -0
- package/lib/devtools/Images/check-double.svg +3 -0
- package/lib/devtools/Images/checker.svg +12 -0
- package/lib/devtools/Images/checkmark.svg +1 -0
- package/lib/devtools/Images/chevron-double-right.svg +3 -0
- package/lib/devtools/Images/chevron-down.svg +3 -0
- package/lib/devtools/Images/chevron-left-dot.svg +4 -0
- package/lib/devtools/Images/chevron-left.svg +3 -0
- package/lib/devtools/Images/chevron-right.svg +3 -0
- package/lib/devtools/Images/chevron-up.svg +3 -0
- package/lib/devtools/Images/chromeLeft.avif +0 -0
- package/lib/devtools/Images/chromeMiddle.avif +0 -0
- package/lib/devtools/Images/chromeRight.avif +0 -0
- package/lib/devtools/Images/class.svg +6 -0
- package/lib/devtools/Images/clear-list.svg +3 -0
- package/lib/devtools/Images/clear.svg +3 -0
- package/lib/devtools/Images/cloud.svg +3 -0
- package/lib/devtools/Images/code-circle.svg +5 -0
- package/lib/devtools/Images/code-whisperer-badge.svg +166 -0
- package/lib/devtools/Images/code.svg +3 -0
- package/lib/devtools/Images/colon.svg +4 -0
- package/lib/devtools/Images/color-picker-filled.svg +3 -0
- package/lib/devtools/Images/color-picker.svg +3 -0
- package/lib/devtools/Images/compress.svg +8 -0
- package/lib/devtools/Images/console-conditional-breakpoint.svg +1 -0
- package/lib/devtools/Images/console-logpoint.svg +1 -0
- package/lib/devtools/Images/container.svg +4 -0
- package/lib/devtools/Images/cookie.svg +3 -0
- package/lib/devtools/Images/cookie_off.svg +3 -0
- package/lib/devtools/Images/copy.svg +3 -0
- package/lib/devtools/Images/corporate-fare.svg +3 -0
- package/lib/devtools/Images/credit-card.svg +3 -0
- package/lib/devtools/Images/cross-circle-filled.svg +3 -0
- package/lib/devtools/Images/cross-circle.svg +3 -0
- package/lib/devtools/Images/cross.svg +3 -0
- package/lib/devtools/Images/cssoverview_icons_2x.avif +0 -0
- package/lib/devtools/Images/database-off.svg +1 -0
- package/lib/devtools/Images/database.svg +3 -0
- package/lib/devtools/Images/deployed.svg +3 -0
- package/lib/devtools/Images/device-fold.svg +1 -0
- package/lib/devtools/Images/devices.svg +3 -0
- package/lib/devtools/Images/devtools-thumbnail.svg +57 -0
- package/lib/devtools/Images/devtools-tips.svg +61 -0
- package/lib/devtools/Images/devtools-user-badge.svg +129 -0
- package/lib/devtools/Images/devtools.svg +13 -0
- package/lib/devtools/Images/difference.svg +3 -0
- package/lib/devtools/Images/dock-bottom.svg +3 -0
- package/lib/devtools/Images/dock-left.svg +3 -0
- package/lib/devtools/Images/dock-right.svg +3 -0
- package/lib/devtools/Images/dock-window.svg +3 -0
- package/lib/devtools/Images/document.svg +3 -0
- package/lib/devtools/Images/dog-paw.svg +10 -0
- package/lib/devtools/Images/dom-detective-badge.svg +136 -0
- package/lib/devtools/Images/domain.svg +3 -0
- package/lib/devtools/Images/dots-horizontal.svg +1 -0
- package/lib/devtools/Images/dots-vertical.svg +3 -0
- package/lib/devtools/Images/download.svg +3 -0
- package/lib/devtools/Images/edit.svg +1 -0
- package/lib/devtools/Images/empty.svg +2 -0
- package/lib/devtools/Images/errorWave.svg +74 -0
- package/lib/devtools/Images/exclamation.svg +3 -0
- package/lib/devtools/Images/expand.svg +1 -0
- package/lib/devtools/Images/experiment-check.svg +1 -0
- package/lib/devtools/Images/experiment.svg +3 -0
- package/lib/devtools/Images/extension.svg +1 -0
- package/lib/devtools/Images/eye-crossed.svg +3 -0
- package/lib/devtools/Images/eye.svg +3 -0
- package/lib/devtools/Images/file-document.svg +3 -0
- package/lib/devtools/Images/file-fetch-xhr.svg +3 -0
- package/lib/devtools/Images/file-font.svg +4 -0
- package/lib/devtools/Images/file-generic.svg +3 -0
- package/lib/devtools/Images/file-image.svg +3 -0
- package/lib/devtools/Images/file-json.svg +4 -0
- package/lib/devtools/Images/file-manifest.svg +3 -0
- package/lib/devtools/Images/file-media.svg +3 -0
- package/lib/devtools/Images/file-script.svg +3 -0
- package/lib/devtools/Images/file-snippet.svg +4 -0
- package/lib/devtools/Images/file-stylesheet.svg +4 -0
- package/lib/devtools/Images/file-wasm.svg +5 -0
- package/lib/devtools/Images/file-websocket.svg +3 -0
- package/lib/devtools/Images/filter-clear.svg +3 -0
- package/lib/devtools/Images/filter-filled.svg +3 -0
- package/lib/devtools/Images/filter.svg +3 -0
- package/lib/devtools/Images/flex-direction.svg +5 -0
- package/lib/devtools/Images/flex-no-wrap.svg +5 -0
- package/lib/devtools/Images/flex-wrap.svg +8 -0
- package/lib/devtools/Images/flow.svg +3 -0
- package/lib/devtools/Images/flowsheet.svg +1 -0
- package/lib/devtools/Images/fold-more.svg +3 -0
- package/lib/devtools/Images/folder-asterisk.svg +10 -0
- package/lib/devtools/Images/folder-off.svg +3 -0
- package/lib/devtools/Images/folder.svg +3 -0
- package/lib/devtools/Images/frame-crossed.svg +3 -0
- package/lib/devtools/Images/frame-icon.svg +54 -0
- package/lib/devtools/Images/frame.svg +3 -0
- package/lib/devtools/Images/gdp-logo-dark.png +0 -0
- package/lib/devtools/Images/gdp-logo-light.png +0 -0
- package/lib/devtools/Images/gear-filled.svg +3 -0
- package/lib/devtools/Images/gear.svg +4 -0
- package/lib/devtools/Images/gears.svg +3 -0
- package/lib/devtools/Images/geminiInDevTools.png +0 -0
- package/lib/devtools/Images/geminiInDevTools_2x.png +0 -0
- package/lib/devtools/Images/global.svg +5 -0
- package/lib/devtools/Images/google.svg +3 -0
- package/lib/devtools/Images/goto-filled.svg +1 -0
- package/lib/devtools/Images/grid-direction.svg +6 -0
- package/lib/devtools/Images/grid-on.svg +10 -0
- package/lib/devtools/Images/group.svg +3 -0
- package/lib/devtools/Images/heap-snapshot.svg +6 -0
- package/lib/devtools/Images/heap-snapshots.svg +7 -0
- package/lib/devtools/Images/help.svg +3 -0
- package/lib/devtools/Images/history.svg +3 -0
- package/lib/devtools/Images/home.svg +3 -0
- package/lib/devtools/Images/hover.svg +6 -0
- package/lib/devtools/Images/iframe-crossed.svg +3 -0
- package/lib/devtools/Images/iframe.svg +3 -0
- package/lib/devtools/Images/import.svg +3 -0
- package/lib/devtools/Images/indeterminate-question-box.svg +3 -0
- package/lib/devtools/Images/info-filled.svg +3 -0
- package/lib/devtools/Images/info.svg +3 -0
- package/lib/devtools/Images/issue-cross-filled.svg +3 -0
- package/lib/devtools/Images/issue-exclamation-filled.svg +3 -0
- package/lib/devtools/Images/issue-questionmark-filled.svg +3 -0
- package/lib/devtools/Images/issue-text-filled.svg +3 -0
- package/lib/devtools/Images/justify-content-center.svg +5 -0
- package/lib/devtools/Images/justify-content-end.svg +5 -0
- package/lib/devtools/Images/justify-content-space-around.svg +6 -0
- package/lib/devtools/Images/justify-content-space-between.svg +4 -0
- package/lib/devtools/Images/justify-content-space-evenly.svg +6 -0
- package/lib/devtools/Images/justify-content-start.svg +5 -0
- package/lib/devtools/Images/justify-content-stretch.svg +4 -0
- package/lib/devtools/Images/justify-items-center.svg +4 -0
- package/lib/devtools/Images/justify-items-end.svg +4 -0
- package/lib/devtools/Images/justify-items-start.svg +4 -0
- package/lib/devtools/Images/justify-items-stretch.svg +4 -0
- package/lib/devtools/Images/keyboard-arrow-right.svg +1 -0
- package/lib/devtools/Images/keyboard-full.svg +10 -0
- package/lib/devtools/Images/keyboard-pen.svg +1 -0
- package/lib/devtools/Images/keyboard.svg +3 -0
- package/lib/devtools/Images/label-auto.svg +3 -0
- package/lib/devtools/Images/label.svg +10 -0
- package/lib/devtools/Images/large-arrow-right-filled.svg +1 -0
- package/lib/devtools/Images/layers-filled.svg +1 -0
- package/lib/devtools/Images/layers.svg +1 -0
- package/lib/devtools/Images/left-panel-close.svg +1 -0
- package/lib/devtools/Images/left-panel-open.svg +1 -0
- package/lib/devtools/Images/lightbulb-spark.svg +13 -0
- package/lib/devtools/Images/lightbulb.svg +3 -0
- package/lib/devtools/Images/lighthouse_logo.svg +158 -0
- package/lib/devtools/Images/list.svg +3 -0
- package/lib/devtools/Images/location-on.svg +3 -0
- package/lib/devtools/Images/lock-person.svg +1 -0
- package/lib/devtools/Images/lock.svg +3 -0
- package/lib/devtools/Images/mark-email-unread.svg +3 -0
- package/lib/devtools/Images/match-case.svg +3 -0
- package/lib/devtools/Images/match-whole-word.svg +1 -0
- package/lib/devtools/Images/memory.svg +6 -0
- package/lib/devtools/Images/minus.svg +3 -0
- package/lib/devtools/Images/mop.svg +1 -0
- package/lib/devtools/Images/mouse.svg +4 -0
- package/lib/devtools/Images/navigationControls.png +0 -0
- package/lib/devtools/Images/navigationControls_2x.png +0 -0
- package/lib/devtools/Images/network-settings.svg +3 -0
- package/lib/devtools/Images/node-stack-icon.svg +1 -0
- package/lib/devtools/Images/nodeIcon.avif +0 -0
- package/lib/devtools/Images/open-externally.svg +3 -0
- package/lib/devtools/Images/override.svg +11 -0
- package/lib/devtools/Images/palette.svg +10 -0
- package/lib/devtools/Images/pause-circle.svg +1 -0
- package/lib/devtools/Images/pause.svg +1 -0
- package/lib/devtools/Images/pen-spark.svg +3 -0
- package/lib/devtools/Images/performance-panel-delete-annotation.svg +32 -0
- package/lib/devtools/Images/performance-panel-diagram.svg +34 -0
- package/lib/devtools/Images/performance-panel-entry-label.svg +75 -0
- package/lib/devtools/Images/performance-panel-time-range.svg +15 -0
- package/lib/devtools/Images/performance.svg +3 -0
- package/lib/devtools/Images/person.svg +3 -0
- package/lib/devtools/Images/photo-camera.svg +10 -0
- package/lib/devtools/Images/play.svg +3 -0
- package/lib/devtools/Images/plus.svg +3 -0
- package/lib/devtools/Images/policy.svg +3 -0
- package/lib/devtools/Images/popoverArrows.png +0 -0
- package/lib/devtools/Images/popup.svg +3 -0
- package/lib/devtools/Images/preview_feature_video_thumbnail.svg +92 -0
- package/lib/devtools/Images/profile.svg +3 -0
- package/lib/devtools/Images/psychiatry.svg +3 -0
- package/lib/devtools/Images/puzzle.svg +3 -0
- package/lib/devtools/Images/record-start.svg +4 -0
- package/lib/devtools/Images/record-stop.svg +4 -0
- package/lib/devtools/Images/redo.svg +3 -0
- package/lib/devtools/Images/refresh.svg +10 -0
- package/lib/devtools/Images/regular-expression.svg +3 -0
- package/lib/devtools/Images/replace.svg +1 -0
- package/lib/devtools/Images/replay.svg +3 -0
- package/lib/devtools/Images/report.svg +1 -0
- package/lib/devtools/Images/resizeDiagonal.svg +1 -0
- package/lib/devtools/Images/resizeHorizontal.svg +1 -0
- package/lib/devtools/Images/resizeVertical.svg +1 -0
- package/lib/devtools/Images/resume.svg +1 -0
- package/lib/devtools/Images/revert.svg +3 -0
- package/lib/devtools/Images/review.svg +5 -0
- package/lib/devtools/Images/right-panel-close.svg +1 -0
- package/lib/devtools/Images/right-panel-open.svg +1 -0
- package/lib/devtools/Images/scissors.svg +3 -0
- package/lib/devtools/Images/screen-rotation.svg +1 -0
- package/lib/devtools/Images/search.svg +3 -0
- package/lib/devtools/Images/select-element.svg +3 -0
- package/lib/devtools/Images/send.svg +3 -0
- package/lib/devtools/Images/shadow.svg +3 -0
- package/lib/devtools/Images/shield.svg +3 -0
- package/lib/devtools/Images/small-status-dot.svg +3 -0
- package/lib/devtools/Images/smart-assistant.svg +3 -0
- package/lib/devtools/Images/snippet.svg +4 -0
- package/lib/devtools/Images/spark-info.svg +3 -0
- package/lib/devtools/Images/spark.svg +3 -0
- package/lib/devtools/Images/speculative-loads.svg +1 -0
- package/lib/devtools/Images/speedster-badge.svg +166 -0
- package/lib/devtools/Images/star.svg +3 -0
- package/lib/devtools/Images/step-into.svg +1 -0
- package/lib/devtools/Images/step-out.svg +1 -0
- package/lib/devtools/Images/step-over.svg +1 -0
- package/lib/devtools/Images/step.svg +1 -0
- package/lib/devtools/Images/stop.svg +3 -0
- package/lib/devtools/Images/symbol.svg +3 -0
- package/lib/devtools/Images/sync.svg +3 -0
- package/lib/devtools/Images/tab-move.svg +1 -0
- package/lib/devtools/Images/table.svg +3 -0
- package/lib/devtools/Images/terminal.svg +10 -0
- package/lib/devtools/Images/text-analysis.svg +3 -0
- package/lib/devtools/Images/thumb-down-filled.svg +3 -0
- package/lib/devtools/Images/thumb-down.svg +3 -0
- package/lib/devtools/Images/thumb-up-filled.svg +3 -0
- package/lib/devtools/Images/thumb-up.svg +3 -0
- package/lib/devtools/Images/tonality.svg +10 -0
- package/lib/devtools/Images/toolbarResizerVertical.png +0 -0
- package/lib/devtools/Images/top-panel-close.svg +1 -0
- package/lib/devtools/Images/top-panel-open.svg +1 -0
- package/lib/devtools/Images/touch-app.svg +4 -0
- package/lib/devtools/Images/touchCursor.png +0 -0
- package/lib/devtools/Images/touchCursor_2x.png +0 -0
- package/lib/devtools/Images/triangle-bottom-right.svg +3 -0
- package/lib/devtools/Images/triangle-down.svg +1 -0
- package/lib/devtools/Images/triangle-left.svg +1 -0
- package/lib/devtools/Images/triangle-right.svg +1 -0
- package/lib/devtools/Images/triangle-up.svg +3 -0
- package/lib/devtools/Images/trophy.svg +3 -0
- package/lib/devtools/Images/tune.svg +3 -0
- package/lib/devtools/Images/undo.svg +1 -0
- package/lib/devtools/Images/warning-filled.svg +3 -0
- package/lib/devtools/Images/warning.svg +3 -0
- package/lib/devtools/Images/watch.svg +3 -0
- package/lib/devtools/Images/whatsnew.svg +61 -0
- package/lib/devtools/Images/width.svg +3 -0
- package/lib/devtools/Images/zoom-in.svg +3 -0
- package/lib/devtools/LICENSE +27 -0
- package/lib/devtools/application_tokens.css +413 -0
- package/lib/devtools/chunks/FormatterActions-FcPgI0uV.js +19 -0
- package/lib/devtools/chunks/UIFilter-CIzBruM3.js +18 -0
- package/lib/devtools/chunks/UIRequestLocation-CtGcVN3I.js +48 -0
- package/lib/devtools/chunks/_qilin-devtools_empty-BvRk9kiK.js +0 -0
- package/lib/devtools/chunks/accessibility-CwvHp3sj.js +2718 -0
- package/lib/devtools/chunks/acorn-_jSanihy.js +3232 -0
- package/lib/devtools/chunks/adorners-D4aU6nuY.js +45 -0
- package/lib/devtools/chunks/ai_assistance-BU6E0Wio.js +4255 -0
- package/lib/devtools/chunks/angular-Dutmu-L9.js +117 -0
- package/lib/devtools/chunks/animation-TEwO5UI_.js +922 -0
- package/lib/devtools/chunks/application-SCf6MiCN.js +12740 -0
- package/lib/devtools/chunks/autofill-Dp3nMnuK.js +198 -0
- package/lib/devtools/chunks/autofill_manager-BXntqfdp.js +58 -0
- package/lib/devtools/chunks/bindings-DgoVEdsr.js +4105 -0
- package/lib/devtools/chunks/browser-DL1S1Kiu.js +62 -0
- package/lib/devtools/chunks/browser_debugger-p7Rr4IBR.js +629 -0
- package/lib/devtools/chunks/changes-DeW5MC9u.js +2 -0
- package/lib/devtools/chunks/changes-k42bihtm.js +393 -0
- package/lib/devtools/chunks/checkbox.css-CZJJ6atQ.js +4 -0
- package/lib/devtools/chunks/chunk-DF993M8W.js +11 -0
- package/lib/devtools/chunks/code_highlighter-BnTPt9_G.js +210 -0
- package/lib/devtools/chunks/codemirror-CBR9VJma.js +15842 -0
- package/lib/devtools/chunks/color_picker-Cuh_X19Y.js +1566 -0
- package/lib/devtools/chunks/common-DjRFwulW.js +15145 -0
- package/lib/devtools/chunks/common-Uu9A2glf.js +2 -0
- package/lib/devtools/chunks/common-qd_KLeYO.js +6639 -0
- package/lib/devtools/chunks/components-CnPGgDUW.js +704 -0
- package/lib/devtools/chunks/components-Cw5tHQqN.js +1338 -0
- package/lib/devtools/chunks/components-EJwviLtZ.js +1090 -0
- package/lib/devtools/chunks/console-D1WlMaFQ.js +3855 -0
- package/lib/devtools/chunks/console-yMm3XVTY.js +2 -0
- package/lib/devtools/chunks/console_counters-9SfIdrUo.js +103 -0
- package/lib/devtools/chunks/coverage-BbFH390Q.js +1176 -0
- package/lib/devtools/chunks/coverage-CLBpovLw.js +2 -0
- package/lib/devtools/chunks/cpp-CdElSCaB.js +435 -0
- package/lib/devtools/chunks/css_overview-cITV9auE.js +1288 -0
- package/lib/devtools/chunks/data_grid-pC5qqfsJ.js +1671 -0
- package/lib/devtools/chunks/developer_resources-4DqQIvy6.js +240 -0
- package/lib/devtools/chunks/diff-qn55JSCS.js +444 -0
- package/lib/devtools/chunks/dom_extension-BfrKZ4JG.js +172 -0
- package/lib/devtools/chunks/elements-CgEYz3mX.js +2 -0
- package/lib/devtools/chunks/elements-Dbx4q9-v.js +11407 -0
- package/lib/devtools/chunks/emulation-C6XKPPGu.js +1306 -0
- package/lib/devtools/chunks/emulation-D8xbdsAj.js +2 -0
- package/lib/devtools/chunks/emulation-EtJlEukP.js +2732 -0
- package/lib/devtools/chunks/emulation-cjFPXHT9.js +157 -0
- package/lib/devtools/chunks/event_listeners-BeTH3gi2.js +414 -0
- package/lib/devtools/chunks/explain-P_aDGFSD.js +747 -0
- package/lib/devtools/chunks/greendev-BU0QcVPX.js +152 -0
- package/lib/devtools/chunks/heap_snapshot-CZt2KUPL.js +427 -0
- package/lib/devtools/chunks/helper-CI72KvIC.js +33 -0
- package/lib/devtools/chunks/helpers--xrfGSwQ.js +29 -0
- package/lib/devtools/chunks/i18n-DvFMqQdJ.js +17 -0
- package/lib/devtools/chunks/icon_button-BebVdJD8.js +83 -0
- package/lib/devtools/chunks/inline_editor-D54X5UUr.js +1309 -0
- package/lib/devtools/chunks/inspector_main-DRbdXLmF.js +279 -0
- package/lib/devtools/chunks/issue_counter-CeOjTNGW.js +193 -0
- package/lib/devtools/chunks/issues-CegBKEda.js +1649 -0
- package/lib/devtools/chunks/issues_manager-D7nfNPN1.js +3009 -0
- package/lib/devtools/chunks/java-7g_qfFa2.js +263 -0
- package/lib/devtools/chunks/layer_viewer-CaFC5oyv.js +1423 -0
- package/lib/devtools/chunks/layers-CXqlD9zH.js +370 -0
- package/lib/devtools/chunks/legacy-Bqn4Q0Tf.js +41804 -0
- package/lib/devtools/chunks/legacy-DOCLCisy.js +1434 -0
- package/lib/devtools/chunks/less-DXiRNbd4.js +195 -0
- package/lib/devtools/chunks/lighthouse-DtpzvfT6.js +3920 -0
- package/lib/devtools/chunks/lighthouse-T9ZpmENr.js +2 -0
- package/lib/devtools/chunks/linear_memory_inspector-C50PtM45.js +305 -0
- package/lib/devtools/chunks/live-metrics-Bs7wxibB.js +284 -0
- package/lib/devtools/chunks/main-C5y6NscM.js +2 -0
- package/lib/devtools/chunks/main-DcgYyEI0.js +755 -0
- package/lib/devtools/chunks/markdown-tZoR6Bsu.js +1512 -0
- package/lib/devtools/chunks/markdown_view-C67b2DdG.js +461 -0
- package/lib/devtools/chunks/marked-zGgfoDxO.js +1362 -0
- package/lib/devtools/chunks/media-BhuqASbO.js +1337 -0
- package/lib/devtools/chunks/media-Wfo1AbXC.js +2 -0
- package/lib/devtools/chunks/menus-BAUukA5-.js +969 -0
- package/lib/devtools/chunks/mobile_throttling-C26zde8o.js +2 -0
- package/lib/devtools/chunks/mobile_throttling-Cw4AkJH4.js +1052 -0
- package/lib/devtools/chunks/network-C3gIloDN.js +2 -0
- package/lib/devtools/chunks/network-CaxdpGU2.js +9181 -0
- package/lib/devtools/chunks/objectValue.css-C9o9fdM2.js +4 -0
- package/lib/devtools/chunks/object_ui-BYgPTK_b.js +1461 -0
- package/lib/devtools/chunks/object_ui-E7eR7aD-.js +2 -0
- package/lib/devtools/chunks/perf_ui-BqzJrt4p.js +2 -0
- package/lib/devtools/chunks/perf_ui-CQMkYfn3.js +3143 -0
- package/lib/devtools/chunks/performance_monitor-B2kUoCv0.js +385 -0
- package/lib/devtools/chunks/php-tl5gKrxu.js +423 -0
- package/lib/devtools/chunks/platform-BzB373NB.js +600 -0
- package/lib/devtools/chunks/profiler-BGu3akEf.js +4608 -0
- package/lib/devtools/chunks/protocol_client-Cwf_jb8R.js +24329 -0
- package/lib/devtools/chunks/protocol_monitor-B9nMqAAE.js +2 -0
- package/lib/devtools/chunks/protocol_monitor-CvLQ8ms1.js +1224 -0
- package/lib/devtools/chunks/puppeteer-CaOjgj3v.js +13299 -0
- package/lib/devtools/chunks/python-D9AdRkMm.js +580 -0
- package/lib/devtools/chunks/quick_open-C3IZ69m9.js +2 -0
- package/lib/devtools/chunks/quick_open-DRITaPnZ.js +722 -0
- package/lib/devtools/chunks/recorder-C0f1n95b.js +5465 -0
- package/lib/devtools/chunks/recorder-actions-S2RfLX4H.js +6 -0
- package/lib/devtools/chunks/request_link_icon-fGy57GcW.js +87 -0
- package/lib/devtools/chunks/root-DbVQo07X.js +255 -0
- package/lib/devtools/chunks/sass-BPQlMmw2.js +370 -0
- package/lib/devtools/chunks/security-NbgKa3ux.js +898 -0
- package/lib/devtools/chunks/sensors-nM7qcBE4.js +752 -0
- package/lib/devtools/chunks/settings-aKtQC12v.js +1433 -0
- package/lib/devtools/chunks/settings_ui-CzxAFzIb.js +175 -0
- package/lib/devtools/chunks/snackbars-lPThuWYs.js +12010 -0
- package/lib/devtools/chunks/snippets-dIuBmVBv.js +173 -0
- package/lib/devtools/chunks/source_frame-CSjno3kf.js +1352 -0
- package/lib/devtools/chunks/sources-BIZssBei.js +8216 -0
- package/lib/devtools/chunks/sources-Bf8QJxju.js +2 -0
- package/lib/devtools/chunks/suggestion_input-Duuu5pyd.js +196 -0
- package/lib/devtools/chunks/svelte-DJS1itbE.js +744 -0
- package/lib/devtools/chunks/textInput.css-DPvwvIic.js +4 -0
- package/lib/devtools/chunks/text_editor-Dq1P6D2J.js +15706 -0
- package/lib/devtools/chunks/text_utils-ohNt_gua.js +608 -0
- package/lib/devtools/chunks/theme_support-CbSSLkbO.js +92 -0
- package/lib/devtools/chunks/third-party-web-DGiPoc0U.js +12626 -0
- package/lib/devtools/chunks/timeline-BE_ysZxO.js +2 -0
- package/lib/devtools/chunks/timeline-C4vCX79k.js +16347 -0
- package/lib/devtools/chunks/utils-CELci976.js +298 -0
- package/lib/devtools/chunks/vue-CjH9yovn.js +73 -0
- package/lib/devtools/chunks/wast-CbGHiqaW.js +109 -0
- package/lib/devtools/chunks/web_audio-IdfBLjwV.js +277 -0
- package/lib/devtools/chunks/webauthn-iRZlbjGV.js +522 -0
- package/lib/devtools/chunks/whats_new-DOTPf2xJ.js +177 -0
- package/lib/devtools/chunks/xml-DI9dcP5w.js +327 -0
- package/lib/devtools/connect.js +9 -0
- package/lib/devtools/design_system_tokens.css +1061 -0
- package/lib/devtools/device_mode_emulation_frame.html +25 -0
- package/lib/devtools/devtools_app.html +25 -0
- package/lib/devtools/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/lib/devtools/emulated_devices/optimized/optimized_images.gni +53 -0
- package/lib/devtools/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +4 -0
- package/lib/devtools/entrypoints/devtools_app/devtools_app.js +6240 -0
- package/lib/devtools/entrypoints/formatter_worker/formatter_worker-entrypoint.js +2810 -0
- package/lib/devtools/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +2142 -0
- package/lib/devtools/entrypoints/lighthouse_worker/lighthouse_worker.js +290095 -0
- package/lib/devtools/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +3403 -0
- package/lib/devtools/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
- package/lib/devtools/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/LowTextContrast.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/arInsecureContext.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
- package/lib/devtools/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
- package/lib/devtools/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
- package/lib/devtools/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
- package/lib/devtools/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/connectionAllowlistInvalidHeader.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/connectionAllowlistItemNotInnerList.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/connectionAllowlistMoreThanOneList.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/connectionAllowlistReportingEndpointNotToken.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
- package/lib/devtools/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
- package/lib/devtools/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/cspURLViolation.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/deprecation.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestDnsFetchFailed.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestInvalidEmail.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestTokenNoResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestUserLoggedOut.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/genericBackUINavigationWouldSkipAd.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormModelContextMissingToolDescription.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormModelContextMissingToolName.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormModelContextParameterMissingName.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormModelContextParameterMissingTitleAndDescription.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericFormModelContextRequiredParameterMissingName.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/heavyAd.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/mixedContent.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementActivationDisabled.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementGeolocationDeprecated.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementInvalidType.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementLowContrast.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementRegistrationFailed.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementRequestInProgress.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/selectivePermissionsIntervention.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
- package/lib/devtools/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
- package/lib/devtools/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
- package/lib/devtools/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
- package/lib/devtools/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
- package/lib/devtools/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
- package/lib/devtools/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
- package/lib/devtools/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
- package/lib/devtools/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
- package/lib/devtools/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
- package/lib/devtools/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
- package/lib/devtools/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
- package/lib/devtools/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
- package/lib/devtools/panels/recorder/injected/injected.generated.js +1 -0
- package/lib/devtools/panels/whats_new/resources/WNDT.md +14 -0
- package/lib/devtools/resource-manifest.json +3818 -0
- package/lib/devtools/third_party/acorn/package/LICENSE +21 -0
- package/lib/devtools/third_party/axe-core/LICENSE +362 -0
- package/lib/devtools/third_party/chromium/LICENSE +27 -0
- package/lib/devtools/third_party/codemirror/package/LICENSE +21 -0
- package/lib/devtools/third_party/codemirror.next/LICENSE +21 -0
- package/lib/devtools/third_party/csp_evaluator/package/LICENSE +202 -0
- package/lib/devtools/third_party/diff/LICENSE +202 -0
- package/lib/devtools/third_party/i18n/LICENSE +202 -0
- package/lib/devtools/third_party/intl-messageformat/LICENSE +33 -0
- package/lib/devtools/third_party/intl-messageformat/package/LICENSE.md +33 -0
- package/lib/devtools/third_party/json5/LICENSE +23 -0
- package/lib/devtools/third_party/legacy-javascript/LICENSE +202 -0
- package/lib/devtools/third_party/lighthouse/LICENSE +202 -0
- package/lib/devtools/third_party/lit/LICENSE +28 -0
- package/lib/devtools/third_party/marked/LICENSE +39 -0
- package/lib/devtools/third_party/marked/package/LICENSE.md +44 -0
- package/lib/devtools/third_party/puppeteer/LICENSE +202 -0
- package/lib/devtools/third_party/puppeteer/third_party/mitt/LICENSE +21 -0
- package/lib/devtools/third_party/puppeteer/third_party/parsel/LICENSE +21 -0
- package/lib/devtools/third_party/puppeteer/third_party/rxjs/LICENSE +201 -0
- package/lib/devtools/third_party/puppeteer-replay/package/LICENSE +202 -0
- package/lib/devtools/third_party/source-map-scopes-codec/LICENSE +26 -0
- package/lib/devtools/third_party/source-map-scopes-codec/package/LICENSE +26 -0
- package/lib/devtools/third_party/third-party-web/LICENSE +20 -0
- package/lib/devtools/third_party/third-party-web/package/LICENSE +20 -0
- package/lib/devtools/third_party/vscode.web-custom-data/package/LICENSE.md +21 -0
- package/lib/devtools/third_party/wasmparser/package/LICENSE +177 -0
- package/lib/devtools/third_party/web-vitals/package/LICENSE +202 -0
- package/lib/index.js +2554 -0
- package/lib/types/client/bottom/keyboard.d.ts +10 -0
- package/lib/types/client/bottom/locales.d.ts +17 -0
- package/lib/types/client/bottom/page.d.ts +10 -0
- package/lib/types/client/bottom/resize.d.ts +12 -0
- package/lib/types/client/bridge/controller.d.ts +10 -0
- package/lib/types/client/bridge/dispatcher.d.ts +26 -0
- package/lib/types/client/bridge/lifecycle.d.ts +22 -0
- package/lib/types/client/bridge/locales.d.ts +3 -0
- package/lib/types/client/bridge/publisher.d.ts +42 -0
- package/lib/types/client/bridge/rpc.d.ts +13 -0
- package/lib/types/client/bridge/transport.d.ts +41 -0
- package/lib/types/client/cdp/console.d.ts +45 -0
- package/lib/types/client/cdp/debugger.d.ts +8 -0
- package/lib/types/client/cdp/errors.d.ts +8 -0
- package/lib/types/client/cdp/heap-profiler.d.ts +8 -0
- package/lib/types/client/cdp/index.d.ts +10 -0
- package/lib/types/client/cdp/objects.d.ts +69 -0
- package/lib/types/client/cdp/profiler.d.ts +8 -0
- package/lib/types/client/cdp/properties.d.ts +16 -0
- package/lib/types/client/cdp/runtime.d.ts +79 -0
- package/lib/types/client/cdp/sources.d.ts +53 -0
- package/lib/types/client/cdp/stack.d.ts +27 -0
- package/lib/types/client/index.d.ts +3 -0
- package/lib/types/client/inspection/cordis.d.ts +3 -0
- package/lib/types/client/inspection/network.d.ts +4 -0
- package/lib/types/client/inspection/realm.d.ts +27 -0
- package/lib/types/client/plugin.d.ts +29 -0
- package/lib/types/host/bridge/controller.d.ts +108 -0
- package/lib/types/host/bridge/dispatcher.d.ts +16 -0
- package/lib/types/host/bridge/lifecycle.d.ts +42 -0
- package/lib/types/host/bridge/publisher.d.ts +31 -0
- package/lib/types/host/bridge/rpc.d.ts +15 -0
- package/lib/types/host/bridge/transport.d.ts +28 -0
- package/lib/types/host/cdp/console.d.ts +14 -0
- package/lib/types/host/cdp/debugger.d.ts +8 -0
- package/lib/types/host/cdp/errors.d.ts +6 -0
- package/lib/types/host/cdp/heap-profiler.d.ts +8 -0
- package/lib/types/host/cdp/index.d.ts +10 -0
- package/lib/types/host/cdp/objects.d.ts +8 -0
- package/lib/types/host/cdp/profiler.d.ts +8 -0
- package/lib/types/host/cdp/properties.d.ts +7 -0
- package/lib/types/host/cdp/runtime.d.ts +16 -0
- package/lib/types/host/cdp/sources.d.ts +14 -0
- package/lib/types/host/cdp/stack.d.ts +4 -0
- package/lib/types/host/index.d.ts +3 -0
- package/lib/types/host/inspection/cordis.d.ts +3 -0
- package/lib/types/host/inspection/network.d.ts +23 -0
- package/lib/types/host/inspection/realm.d.ts +9 -0
- package/lib/types/host/plugin.d.ts +19 -0
- package/lib/types/index.d.ts +50 -0
- package/lib/types/shared/bridge/buffer.d.ts +62 -0
- package/lib/types/shared/bridge/codec.d.ts +4 -0
- package/lib/types/shared/bridge/control-codec.d.ts +27 -0
- package/lib/types/shared/bridge/ids.d.ts +19 -0
- package/lib/types/shared/bridge/messages/control.d.ts +64 -0
- package/lib/types/shared/bridge/messages/cordis.d.ts +4 -0
- package/lib/types/shared/bridge/messages/network.d.ts +4 -0
- package/lib/types/shared/bridge/messages/observation.d.ts +110 -0
- package/lib/types/shared/bridge/messages/query/codec.d.ts +40 -0
- package/lib/types/shared/bridge/messages/query/commands.d.ts +35 -0
- package/lib/types/shared/bridge/messages/query/frames.d.ts +31 -0
- package/lib/types/shared/bridge/messages/query/index.d.ts +5 -0
- package/lib/types/shared/bridge/messages/runtime/command-codec.d.ts +9 -0
- package/lib/types/shared/bridge/messages/runtime/commands.d.ts +76 -0
- package/lib/types/shared/bridge/messages/runtime/console-frames.d.ts +52 -0
- package/lib/types/shared/bridge/messages/runtime/frames.d.ts +98 -0
- package/lib/types/shared/bridge/messages/runtime/index.d.ts +5 -0
- package/lib/types/shared/bridge/messages/runtime/value-codec.d.ts +28 -0
- package/lib/types/shared/bridge/messages/sources/codec.d.ts +15 -0
- package/lib/types/shared/bridge/messages/sources/commands.d.ts +42 -0
- package/lib/types/shared/bridge/messages/sources/frames.d.ts +67 -0
- package/lib/types/shared/bridge/messages/sources/index.d.ts +5 -0
- package/lib/types/shared/bridge/publisher.d.ts +33 -0
- package/lib/types/shared/bridge/query-reader.d.ts +10 -0
- package/lib/types/shared/bridge/rpc.d.ts +62 -0
- package/lib/types/shared/bridge/validation.d.ts +3 -0
- package/lib/types/shared/bridge/version.d.ts +3 -0
- package/lib/types/shared/cdp/capabilities.d.ts +17 -0
- package/lib/types/shared/cdp/console.d.ts +28 -0
- package/lib/types/shared/cdp/debugger.d.ts +69 -0
- package/lib/types/shared/cdp/errors.d.ts +27 -0
- package/lib/types/shared/cdp/ids.d.ts +9 -0
- package/lib/types/shared/cdp/index.d.ts +11 -0
- package/lib/types/shared/cdp/operations.d.ts +86 -0
- package/lib/types/shared/cdp/property.d.ts +28 -0
- package/lib/types/shared/cdp/realm.d.ts +137 -0
- package/lib/types/shared/cdp/remote-object.d.ts +44 -0
- package/lib/types/shared/cdp/sources.d.ts +18 -0
- package/lib/types/shared/cordis/collector.d.ts +26 -0
- package/lib/types/shared/cordis/ids.d.ts +7 -0
- package/lib/types/shared/cordis/model.d.ts +61 -0
- package/lib/types/shared/cordis/object-reference.d.ts +14 -0
- package/lib/types/shared/cordis/object-registry.d.ts +80 -0
- package/lib/types/shared/cordis/observer.d.ts +15 -0
- package/lib/types/shared/cordis/projector.d.ts +34 -0
- package/lib/types/shared/cordis/publisher.d.ts +13 -0
- package/lib/types/shared/cordis/reader.d.ts +18 -0
- package/lib/types/shared/cordis/snapshot.d.ts +39 -0
- package/lib/types/shared/dispose.d.ts +11 -0
- package/lib/types/shared/identity.d.ts +12 -0
- package/lib/types/shared/index.d.ts +18 -0
- package/lib/types/shared/json.d.ts +35 -0
- package/lib/types/shared/network/event-source.d.ts +20 -0
- package/lib/types/shared/network/observation.d.ts +52 -0
- package/lib/types/shared/service.d.ts +23 -0
- package/lib/types/shared/validation.d.ts +52 -0
- package/lib/types/shared/web.d.ts +16 -0
- package/lib/types/worker/bridge/endpoint.d.ts +49 -0
- package/lib/types/worker/bridge/hub.d.ts +108 -0
- package/lib/types/worker/bridge/runtime-rpc.d.ts +90 -0
- package/lib/types/worker/bridge/session.d.ts +15 -0
- package/lib/types/worker/bridge/source-rpc.d.ts +42 -0
- package/lib/types/worker/cdp/domains/debugger/cdp-params.d.ts +15 -0
- package/lib/types/worker/cdp/domains/debugger/index.d.ts +6 -0
- package/lib/types/worker/cdp/domains/debugger/projector.d.ts +22 -0
- package/lib/types/worker/cdp/domains/debugger/script-registry.d.ts +70 -0
- package/lib/types/worker/cdp/domains/debugger/session.d.ts +47 -0
- package/lib/types/worker/cdp/domains/dom/index.d.ts +4 -0
- package/lib/types/worker/cdp/domains/dom/model.d.ts +121 -0
- package/lib/types/worker/cdp/domains/dom/session.d.ts +78 -0
- package/lib/types/worker/cdp/domains/native.d.ts +25 -0
- package/lib/types/worker/cdp/domains/network/session.d.ts +46 -0
- package/lib/types/worker/cdp/domains/runtime/cdp-params.d.ts +82 -0
- package/lib/types/worker/cdp/domains/runtime/index.d.ts +3 -0
- package/lib/types/worker/cdp/domains/runtime/object-table.d.ts +117 -0
- package/lib/types/worker/cdp/domains/runtime/session.d.ts +97 -0
- package/lib/types/worker/cdp/ids.d.ts +37 -0
- package/lib/types/worker/cdp/protocol.d.ts +46 -0
- package/lib/types/worker/cdp/realm-sessions.d.ts +67 -0
- package/lib/types/worker/cdp/session.d.ts +39 -0
- package/lib/types/worker/cdp/target.d.ts +17 -0
- package/lib/types/worker/entry.d.ts +3 -0
- package/lib/types/worker/inspection/cordis-query.d.ts +11 -0
- package/lib/types/worker/inspection/cordis-store.d.ts +94 -0
- package/lib/types/worker/inspection/network-store.d.ts +110 -0
- package/lib/types/worker/inspection/query-router.d.ts +78 -0
- package/lib/types/worker/inspection/realm-store.d.ts +58 -0
- package/lib/types/worker/inspection/realm.d.ts +43 -0
- package/lib/types/worker/realms/client/bridge.d.ts +18 -0
- package/lib/types/worker/realms/client/console.d.ts +21 -0
- package/lib/types/worker/realms/client/debugger.d.ts +8 -0
- package/lib/types/worker/realms/client/index.d.ts +18 -0
- package/lib/types/worker/realms/client/runtime.d.ts +28 -0
- package/lib/types/worker/realms/client/scripts.d.ts +15 -0
- package/lib/types/worker/realms/client/sources.d.ts +30 -0
- package/lib/types/worker/realms/client/values.d.ts +55 -0
- package/lib/types/worker/realms/host/bridge.d.ts +49 -0
- package/lib/types/worker/realms/host/console.d.ts +25 -0
- package/lib/types/worker/realms/host/debugger.d.ts +25 -0
- package/lib/types/worker/realms/host/index.d.ts +13 -0
- package/lib/types/worker/realms/host/runtime.d.ts +54 -0
- package/lib/types/worker/realms/host/scripts.d.ts +9 -0
- package/lib/types/worker/realms/host/sources.d.ts +26 -0
- package/lib/types/worker/realms/host/values.d.ts +22 -0
- package/lib/types/worker/server.d.ts +16 -0
- package/lib/worker.js +7289 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +90 -3
|
@@ -0,0 +1,1306 @@
|
|
|
1
|
+
import { n as e } from "./chunk-DF993M8W.js";
|
|
2
|
+
import { F as t, K as n, M as r, m as i, z as a } from "./platform-BzB373NB.js";
|
|
3
|
+
import { at as o, bt as s, d as c, jt as l, n as u, wt as d } from "./common-qd_KLeYO.js";
|
|
4
|
+
import { o as f } from "./root-DbVQo07X.js";
|
|
5
|
+
import { $i as p, $t as m, Al as h, An as g, Bn as _, Bo as v, Fd as ee, Fi as y, Fo as b, Ii as x, Io as S, La as C, Li as w, Md as T, Nl as E, Oa as te, Or as D, Po as O, Qi as ne, Qo as re, Qr as k, Qt as ie, Ro as ae, Ua as oe, Ur as se, Wc as ce, Wo as le, Xf as A, Xr as ue, Zo as de, Zr as j, br as M, di as N, ei as P, fi as fe, ha as F, ii as pe, ja as I, jn as me, ll as he, mf as ge, mo as _e, na as ve, ni as L, oo as ye, pf as be, rl as xe, tl as Se, to as Ce, ul as we, uo as Te, v as Ee, vi as R, zo as De } from "./legacy-Bqn4Q0Tf.js";
|
|
6
|
+
import { f as Oe } from "./bindings-DgoVEdsr.js";
|
|
7
|
+
import { a as z, c as ke, d as Ae, i as je, l as Me, n as Ne, o as B, p as Pe, t as Fe, u as Ie } from "./emulation-EtJlEukP.js";
|
|
8
|
+
import { n as Le } from "./theme_support-CbSSLkbO.js";
|
|
9
|
+
import { n as Re, s as ze } from "./mobile_throttling-Cw4AkJH4.js";
|
|
10
|
+
//#region node_modules/.pnpm/chrome-devtools-frontend@1.0.1638082/node_modules/chrome-devtools-frontend/front_end/panels/emulation/DeviceModeToolbar.ts
|
|
11
|
+
var Be = /* @__PURE__ */ e({
|
|
12
|
+
DEFAULT_VIEW: () => Ke,
|
|
13
|
+
DeviceModeToolbar: () => qe
|
|
14
|
+
}), V = ae(class e extends De {
|
|
15
|
+
static itemWidthCache = /* @__PURE__ */ new Map();
|
|
16
|
+
constructor(e) {
|
|
17
|
+
if (super(e), e.type !== v.ELEMENT) throw Error("AutoWidthSelectDirective must be used as an element directive");
|
|
18
|
+
}
|
|
19
|
+
update(t, [n]) {
|
|
20
|
+
let r = t.element, i = e.itemWidthCache.get(n);
|
|
21
|
+
if (!i) {
|
|
22
|
+
let t = document.createElement("select");
|
|
23
|
+
t.className = r.className, t.style.width = "fit-content", t.style.position = "absolute", t.style.visibility = "hidden", t.style.pointerEvents = "none", t.appendChild(document.createElement("option")), t.options[0].textContent = n, r.parentElement?.appendChild(t);
|
|
24
|
+
let a = t.offsetWidth;
|
|
25
|
+
t.remove(), i = a ? `${a}px` : "", a > 0 && e.itemWidthCache.set(n, i);
|
|
26
|
+
}
|
|
27
|
+
return r.style.width = i, this.render(n);
|
|
28
|
+
}
|
|
29
|
+
render(e) {
|
|
30
|
+
return re;
|
|
31
|
+
}
|
|
32
|
+
}), H = {
|
|
33
|
+
dimensions: "Dimensions: {PH1}",
|
|
34
|
+
dpr: "DPR: {PH1}",
|
|
35
|
+
width: "Width",
|
|
36
|
+
heightLeaveEmptyForFull: "Height (leave empty for full)",
|
|
37
|
+
zoom: "Zoom",
|
|
38
|
+
devicePixelRatio: "Device pixel ratio",
|
|
39
|
+
deviceType: "Device type",
|
|
40
|
+
moreOptions: "More options",
|
|
41
|
+
fitToWindowPercentage: "{PH1}% (fit to window)",
|
|
42
|
+
autoadjustZoom: "Auto-adjust zoom",
|
|
43
|
+
defaultF: "{PH1} (default)",
|
|
44
|
+
hideDeviceFrame: "Hide device frame",
|
|
45
|
+
showDeviceFrame: "Show device frame",
|
|
46
|
+
hideMediaQueries: "Hide media queries",
|
|
47
|
+
showMediaQueries: "Show media queries",
|
|
48
|
+
hideRulers: "Hide rulers",
|
|
49
|
+
showRulers: "Show rulers",
|
|
50
|
+
removeDevicePixelRatio: "Remove device pixel ratio",
|
|
51
|
+
addDevicePixelRatio: "Add device pixel ratio",
|
|
52
|
+
removeDeviceType: "Remove device type",
|
|
53
|
+
addDeviceType: "Add device type",
|
|
54
|
+
resetToDefaults: "Reset to defaults",
|
|
55
|
+
closeDevtools: "Close DevTools",
|
|
56
|
+
responsive: "Responsive",
|
|
57
|
+
edit: "Edit…",
|
|
58
|
+
portrait: "Portrait",
|
|
59
|
+
landscape: "Landscape",
|
|
60
|
+
rotate: "Rotate",
|
|
61
|
+
screenOrientationOptions: "Screen orientation options",
|
|
62
|
+
screenOrientationLocked: "Screen orientation is locked by the page",
|
|
63
|
+
toggleDualscreenMode: "Toggle dual-screen mode",
|
|
64
|
+
devicePosture: "Device posture",
|
|
65
|
+
throttling: "Throttling"
|
|
66
|
+
}, U = d("panels/emulation/DeviceModeToolbar.ts", H), W = s.bind(void 0, U), { ifDefined: Ve, live: He } = le, { widget: Ue } = pe, { bindToSetting: We } = ie;
|
|
67
|
+
function Ge(e, t, n, r, i, a) {
|
|
68
|
+
return O`
|
|
69
|
+
<input type="number"
|
|
70
|
+
max=${je}
|
|
71
|
+
min=${50}
|
|
72
|
+
title=${e}
|
|
73
|
+
class="device-mode-size-input"
|
|
74
|
+
.disabled=${r ?? !1}
|
|
75
|
+
jslog=${Te().track({ change: !0 }).context(t)}
|
|
76
|
+
.value=${n ?? ""}
|
|
77
|
+
placeholder=${Ve(i)}
|
|
78
|
+
@change=${a}
|
|
79
|
+
@keydown=${(e) => {
|
|
80
|
+
let t = e.target, n = _(Number(t.value), e);
|
|
81
|
+
n !== null && (n = Math.min(n, je), n = Math.max(n, 50), e.preventDefault(), t.value = String(n), t.dispatchEvent(new Event("change")));
|
|
82
|
+
}}>`;
|
|
83
|
+
}
|
|
84
|
+
var Ke = (e, t, n) => {
|
|
85
|
+
b(O`
|
|
86
|
+
<devtools-toolbar class="main-toolbar">
|
|
87
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
88
|
+
${S(U, H.dimensions, { PH1: O`
|
|
89
|
+
<select class="dark-text toolbar-has-dropdown-shrinkable"
|
|
90
|
+
${V(e.deviceText)}
|
|
91
|
+
title=${W(H.deviceType)}
|
|
92
|
+
aria-label=${W(H.deviceType)}
|
|
93
|
+
@change=${e.onDeviceChange}
|
|
94
|
+
.value=${He(e.selectedDeviceOption === e.deviceModeOptions.responsive ? "Responsive" : e.selectedDeviceOption?.title || "Responsive")}
|
|
95
|
+
jslog=${I().track({ change: !0 }).context("device")}>
|
|
96
|
+
<option value="Responsive" ?selected=${e.deviceModeOptions.responsive.selected} jslog=${C(e.deviceModeOptions.responsive.jslogContext).track({ click: !0 })}>
|
|
97
|
+
${e.deviceModeOptions.responsive.title}
|
|
98
|
+
</option>
|
|
99
|
+
${e.deviceModeOptions.standard.length > 0 ? O`
|
|
100
|
+
<optgroup label="Standard">
|
|
101
|
+
${e.deviceModeOptions.standard.map((e) => O`<option value=${e.title} ?selected=${e.selected} jslog=${C(e.jslogContext).track({ click: !0 })}>${e.title}</option>`)}
|
|
102
|
+
</optgroup>
|
|
103
|
+
` : ""}
|
|
104
|
+
${e.deviceModeOptions.custom.length > 0 ? O`
|
|
105
|
+
<optgroup label="Custom">
|
|
106
|
+
${e.deviceModeOptions.custom.map((e) => O`<option value=${e.title} ?selected=${e.selected} jslog=${C(e.jslogContext).track({ click: !0 })}>${e.title}</option>`)}
|
|
107
|
+
</optgroup>
|
|
108
|
+
` : ""}
|
|
109
|
+
<option value="Edit" jslog=${C(e.deviceModeOptions.edit.jslogContext).track({ click: !0 })}>
|
|
110
|
+
${e.deviceModeOptions.edit.title}
|
|
111
|
+
</option>
|
|
112
|
+
</select>` })}
|
|
113
|
+
|
|
114
|
+
${Ge(W(H.width), "width", e.widthValue, !e.isResponsive, "", e.onWidthChange)}
|
|
115
|
+
|
|
116
|
+
<div class="device-mode-x">×</div>
|
|
117
|
+
${Ge(W(H.heightLeaveEmptyForFull), "height", e.heightValue, !e.isResponsive, e.heightPlaceholder, e.onHeightChange)}
|
|
118
|
+
|
|
119
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
120
|
+
<select class="dark-text toolbar-has-dropdown-shrinkable"
|
|
121
|
+
${V(e.scaleText)}
|
|
122
|
+
title=${W(H.zoom)}
|
|
123
|
+
aria-label=${W(H.zoom)}
|
|
124
|
+
@change=${e.onScaleChange}
|
|
125
|
+
.value=${String(e.scaleOptions.find((e) => e.selected)?.value || "")}
|
|
126
|
+
jslog=${I().track({ change: !0 }).context("scale")}>
|
|
127
|
+
${e.scaleOptions.map((e) => O`<option value=${e.value} ?selected=${e.selected} jslog=${C(e.jslogContext).track({ click: !0 })}>${e.title}</option>`)}
|
|
128
|
+
</select>
|
|
129
|
+
|
|
130
|
+
<devtools-button .data=${{
|
|
131
|
+
variant: p.TOOLBAR,
|
|
132
|
+
iconName: "center-focus-weak",
|
|
133
|
+
toggledIconName: "center-focus-weak",
|
|
134
|
+
toggleType: ne.PRIMARY
|
|
135
|
+
}}
|
|
136
|
+
class="toolbar-button" title=${W(H.autoadjustZoom)}
|
|
137
|
+
${We(e.autoAdjustScaleSetting)}>
|
|
138
|
+
</devtools-button>
|
|
139
|
+
|
|
140
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
141
|
+
|
|
142
|
+
${e.showDeviceScaleFactorSetting.get() ? O`
|
|
143
|
+
<div class="toolbar-text">
|
|
144
|
+
${S(U, H.dpr, { PH1: O`
|
|
145
|
+
<select class="dark-text toolbar-has-dropdown-shrinkable"
|
|
146
|
+
${V(e.dprText)}
|
|
147
|
+
title=${W(H.devicePixelRatio)}
|
|
148
|
+
aria-label=${W(H.devicePixelRatio)}
|
|
149
|
+
@change=${e.onDeviceScaleChange}
|
|
150
|
+
.value=${String(e.dprOptions.find((e) => e.selected)?.value || "")}
|
|
151
|
+
jslog=${I().track({ change: !0 }).context("device-pixel-ratio")}
|
|
152
|
+
?disabled=${!e.isResponsive}>
|
|
153
|
+
${e.dprOptions.map((e) => O`<option value=${e.value} ?selected=${e.selected} jslog=${C(e.jslogContext).track({ click: !0 })}>${e.title}</option>`)}
|
|
154
|
+
</select>` })}
|
|
155
|
+
</div>` : ""}
|
|
156
|
+
|
|
157
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
158
|
+
${e.showUserAgentTypeSetting.get() ? O`
|
|
159
|
+
<select class="dark-text toolbar-has-dropdown-shrinkable"
|
|
160
|
+
${V(e.uaText)}
|
|
161
|
+
title=${W(H.deviceType)}
|
|
162
|
+
aria-label=${W(H.deviceType)}
|
|
163
|
+
@change=${e.onUAChange}
|
|
164
|
+
.value=${e.uaOptions.find((e) => e.selected)?.value || ""}
|
|
165
|
+
jslog=${I().track({ change: !0 }).context("device-type")}
|
|
166
|
+
?disabled=${!e.isResponsive}>
|
|
167
|
+
${e.uaOptions.map((e) => O`<option value=${e.value} ?selected=${e.selected} jslog=${C(e.jslogContext).track({ click: !0 })}>${e.title}</option>`)}
|
|
168
|
+
</select>` : ""}
|
|
169
|
+
<select class="dark-text" ${Ue(Re, {
|
|
170
|
+
title: W(H.throttling),
|
|
171
|
+
bindToGlobalConditions: !0
|
|
172
|
+
})}></select>
|
|
173
|
+
<select class="dark-text toolbar-has-dropdown-shrinkable" ${Ue(ze)}></select>
|
|
174
|
+
|
|
175
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
176
|
+
<devtools-button class="toolbar-button"
|
|
177
|
+
.data=${{
|
|
178
|
+
variant: p.TOOLBAR,
|
|
179
|
+
iconName: "screen-rotation"
|
|
180
|
+
}}
|
|
181
|
+
jslog=${F("screen-rotation").track({ click: !0 })}
|
|
182
|
+
@click=${e.onModeMenuClick}
|
|
183
|
+
.title=${e.modeButtonTitle}
|
|
184
|
+
.disabled=${e.modeButtonDisabled}>
|
|
185
|
+
</devtools-button>
|
|
186
|
+
|
|
187
|
+
<!-- Show dual screen toolbar -->
|
|
188
|
+
${e.showSpanButton ? O`
|
|
189
|
+
<devtools-button class="toolbar-button"
|
|
190
|
+
.data=${{
|
|
191
|
+
variant: p.TOOLBAR,
|
|
192
|
+
iconName: "device-fold"
|
|
193
|
+
}}
|
|
194
|
+
jslog=${F("device-fold").track({ click: !0 })}
|
|
195
|
+
.title=${W(H.toggleDualscreenMode)}
|
|
196
|
+
@click=${e.onSpanClick}>
|
|
197
|
+
</devtools-button>` : ""}
|
|
198
|
+
|
|
199
|
+
<!-- Show posture toolbar menu for foldable devices. -->
|
|
200
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
201
|
+
${e.showPostureItem ? O`
|
|
202
|
+
<select class="dark-text toolbar-has-dropdown-shrinkable"
|
|
203
|
+
${V(e.postureText)}
|
|
204
|
+
title=${W(H.devicePosture)}
|
|
205
|
+
aria-label=${W(H.devicePosture)}
|
|
206
|
+
@change=${e.onPostureChange}
|
|
207
|
+
.value=${e.postureOptions.find((e) => e.selected)?.value || ""}
|
|
208
|
+
jslog=${I().track({ change: !0 }).context("device-posture")}>
|
|
209
|
+
${e.postureOptions.map((e) => O`<option value=${e.value} ?selected=${e.selected} jslog=${C(e.value.toLowerCase()).track({ click: !0 })}>${e.title}</option>`)}
|
|
210
|
+
</select>` : ""}
|
|
211
|
+
</devtools-toolbar>
|
|
212
|
+
<devtools-toolbar class="device-mode-toolbar-options" wrappable>
|
|
213
|
+
<div class="device-mode-empty-toolbar-element"></div>
|
|
214
|
+
<devtools-button
|
|
215
|
+
.data=${{
|
|
216
|
+
variant: p.TOOLBAR,
|
|
217
|
+
iconName: "dots-vertical",
|
|
218
|
+
title: W(H.moreOptions)
|
|
219
|
+
}}
|
|
220
|
+
@click=${e.onMoreOptionsClick}
|
|
221
|
+
jslog=${I("more-options").track({ click: !0 })}
|
|
222
|
+
></devtools-button></devtools-toolbar>
|
|
223
|
+
`, n, { container: {
|
|
224
|
+
classes: ["device-mode-toolbar"],
|
|
225
|
+
attributes: { jslog: `${_e("device-mode").track({ resize: !0 })}` }
|
|
226
|
+
} });
|
|
227
|
+
}, qe = class extends L {
|
|
228
|
+
model;
|
|
229
|
+
showMediaInspectorSetting;
|
|
230
|
+
showRulersSetting;
|
|
231
|
+
deviceOutlineSetting;
|
|
232
|
+
showDeviceScaleFactorSetting;
|
|
233
|
+
showUserAgentTypeSetting;
|
|
234
|
+
autoAdjustScaleSetting;
|
|
235
|
+
lastMode;
|
|
236
|
+
emulatedDevicesList;
|
|
237
|
+
persistenceSetting;
|
|
238
|
+
view;
|
|
239
|
+
constructor(e, t, n, r = Ke) {
|
|
240
|
+
super(), this.view = r, this.model = e, this.showMediaInspectorSetting = t, this.showRulersSetting = n, this.deviceOutlineSetting = this.model.deviceOutlineSetting(), this.showDeviceScaleFactorSetting = c.instance().createSetting("emulation.show-device-scale-factor", !1), this.showDeviceScaleFactorSetting.addChangeListener(this.requestUpdate, this), this.showUserAgentTypeSetting = c.instance().createSetting("emulation.show-user-agent-type", !1), this.showUserAgentTypeSetting.addChangeListener(this.requestUpdate, this), this.autoAdjustScaleSetting = c.instance().createSetting("emulation.auto-adjust-scale", !0), this.lastMode = /* @__PURE__ */ new Map(), this.emulatedDevicesList = Me.instance(), this.emulatedDevicesList.addEventListener(Ie.CUSTOM_DEVICES_UPDATED, this.deviceListChanged, this), this.emulatedDevicesList.addEventListener(Ie.STANDARD_DEVICES_UPDATED, this.deviceListChanged, this), this.persistenceSetting = c.instance().createSetting("emulation.device-mode-value", {
|
|
241
|
+
device: "",
|
|
242
|
+
orientation: "",
|
|
243
|
+
mode: ""
|
|
244
|
+
}), this.model.toolbarControlsEnabledSetting().addChangeListener(this.requestUpdate, this), this.model.scaleSetting().addChangeListener(this.requestUpdate, this), this.model.uaSetting().addChangeListener(this.requestUpdate, this), this.model.deviceScaleFactorSetting().addChangeListener(this.requestUpdate, this), this.model.addEventListener(Ne.UPDATED, this.requestUpdate, this), this.performUpdate();
|
|
245
|
+
}
|
|
246
|
+
performUpdate() {
|
|
247
|
+
let e = this.model.type() === z.Responsive, t = e && this.model.isFullHeight(), n = this.model.appliedDeviceSize(), r = String(n.width), i = t ? "" : String(n.height), a = String(n.height), o = this.model.device();
|
|
248
|
+
this.model.type() === z.Device && o && this.lastMode.set(o, this.model.mode());
|
|
249
|
+
let s = this.persistenceSetting.get(), c = this.model.mode();
|
|
250
|
+
o ? (s.device = o.title, s.orientation = c ? c.orientation : "", s.mode = c ? c.title : "") : (s.device = "", s.orientation = "", s.mode = ""), this.persistenceSetting.set(s);
|
|
251
|
+
let l = W(H.rotate), u = !1;
|
|
252
|
+
if (this.model.isScreenOrientationLocked()) u = !0, l = W(H.screenOrientationLocked);
|
|
253
|
+
else if (o) {
|
|
254
|
+
let e = o.modes.length;
|
|
255
|
+
u = e < 2, l = W(e === 2 ? H.rotate : H.screenOrientationOptions);
|
|
256
|
+
} else e ? (u = !1, l = W(H.rotate)) : u = !0;
|
|
257
|
+
let d = !!o?.isDualScreen, f = !!(!o?.isDualScreen && o?.isFoldableScreen), p = this.getDeviceModeOptions(), m = this.getScaleOptions(), h = this.getDeviceScaleFactorOptions(), g = this.getUserAgentOptions(), _ = this.getDevicePostureOptions(), v = [
|
|
258
|
+
p.responsive,
|
|
259
|
+
...p.standard,
|
|
260
|
+
...p.custom
|
|
261
|
+
].find((e) => e.selected), ee = v ? v.title : p.responsive.title, y = m.find((e) => e.selected)?.title || "";
|
|
262
|
+
y.includes(" (") && (y = y.substring(0, y.indexOf(" (")));
|
|
263
|
+
let b = h.find((e) => e.selected)?.title || "";
|
|
264
|
+
b.includes(" (") && (b = b.substring(0, b.indexOf(" (")));
|
|
265
|
+
let x = g.find((e) => e.selected)?.title || "", S = _.find((e) => e.selected)?.title || "", C = this.model.toolbarControlsEnabledSetting().get();
|
|
266
|
+
this.contentElement.classList.toggle("disabled", !C);
|
|
267
|
+
let w = {
|
|
268
|
+
isResponsive: e,
|
|
269
|
+
isFullHeight: t,
|
|
270
|
+
widthValue: r,
|
|
271
|
+
heightValue: i,
|
|
272
|
+
heightPlaceholder: a,
|
|
273
|
+
modeButtonTitle: l,
|
|
274
|
+
modeButtonDisabled: u,
|
|
275
|
+
showSpanButton: d,
|
|
276
|
+
showPostureItem: f,
|
|
277
|
+
deviceModeOptions: p,
|
|
278
|
+
scaleOptions: m,
|
|
279
|
+
dprOptions: h,
|
|
280
|
+
uaOptions: g,
|
|
281
|
+
postureOptions: _,
|
|
282
|
+
selectedDeviceOption: v,
|
|
283
|
+
deviceText: ee,
|
|
284
|
+
scaleText: y,
|
|
285
|
+
dprText: b,
|
|
286
|
+
uaText: x,
|
|
287
|
+
postureText: S,
|
|
288
|
+
onDeviceChange: this.onDeviceChange.bind(this),
|
|
289
|
+
onWidthChange: (e) => {
|
|
290
|
+
let t = Number(e.target.value);
|
|
291
|
+
this.autoAdjustScaleSetting.get() ? this.model.setWidthAndScaleToFit(t) : this.model.setWidth(t);
|
|
292
|
+
},
|
|
293
|
+
onHeightChange: (e) => {
|
|
294
|
+
let t = Number(e.target.value);
|
|
295
|
+
this.autoAdjustScaleSetting.get() ? this.model.setHeightAndScaleToFit(t) : this.model.setHeight(t);
|
|
296
|
+
},
|
|
297
|
+
onScaleChange: this.onScaleChange.bind(this),
|
|
298
|
+
onDeviceScaleChange: this.onDeviceScaleChange.bind(this),
|
|
299
|
+
onUAChange: this.onUAChange.bind(this),
|
|
300
|
+
onPostureChange: this.onPostureChange.bind(this),
|
|
301
|
+
onModeMenuClick: this.modeMenuClicked.bind(this),
|
|
302
|
+
onSpanClick: this.spanClicked.bind(this),
|
|
303
|
+
onMoreOptionsClick: (e) => {
|
|
304
|
+
let t = new M(e);
|
|
305
|
+
this.appendOptionsMenuItems(t), t.show();
|
|
306
|
+
},
|
|
307
|
+
autoAdjustScaleSetting: this.autoAdjustScaleSetting,
|
|
308
|
+
showDeviceScaleFactorSetting: this.showDeviceScaleFactorSetting,
|
|
309
|
+
showUserAgentTypeSetting: this.showUserAgentTypeSetting
|
|
310
|
+
};
|
|
311
|
+
this.view(w, {}, this.contentElement);
|
|
312
|
+
}
|
|
313
|
+
getDevicePostureOptions() {
|
|
314
|
+
let e = this.currentDevicePosture();
|
|
315
|
+
return ["Continuous", "Folded"].map((t) => ({
|
|
316
|
+
title: t,
|
|
317
|
+
value: t,
|
|
318
|
+
selected: e === t
|
|
319
|
+
}));
|
|
320
|
+
}
|
|
321
|
+
onPostureChange(e) {
|
|
322
|
+
e.target.value !== this.currentDevicePosture() && this.spanClicked();
|
|
323
|
+
}
|
|
324
|
+
currentDevicePosture() {
|
|
325
|
+
let e = this.model.mode();
|
|
326
|
+
return e && (e.orientation === "vertical-spanned" || e.orientation === "horizontal-spanned") ? "Folded" : "Continuous";
|
|
327
|
+
}
|
|
328
|
+
getScaleOptions() {
|
|
329
|
+
let e = [
|
|
330
|
+
.5,
|
|
331
|
+
.75,
|
|
332
|
+
1,
|
|
333
|
+
1.25,
|
|
334
|
+
1.5,
|
|
335
|
+
2
|
|
336
|
+
], t = null;
|
|
337
|
+
if (this.model.type() === z.Device) {
|
|
338
|
+
t = this.model.fitScale();
|
|
339
|
+
let n = (t * 100).toFixed(0), r = !1;
|
|
340
|
+
for (let i = 0; i < e.length; ++i) if ((e[i] * 100).toFixed(0) === n) {
|
|
341
|
+
r = !0, e[i] = t;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
r || (e.push(t), e.sort((e, t) => e - t));
|
|
345
|
+
}
|
|
346
|
+
let n = this.model.scaleSetting().get();
|
|
347
|
+
return e.map((e) => {
|
|
348
|
+
let r = (e * 100).toFixed(0) + "%", i = r;
|
|
349
|
+
return e === t && (r = W(H.fitToWindowPercentage, { PH1: (e * 100).toFixed(0) }), i = "fit-to-window"), {
|
|
350
|
+
title: r,
|
|
351
|
+
value: e,
|
|
352
|
+
selected: n === e,
|
|
353
|
+
jslogContext: i
|
|
354
|
+
};
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
onScaleChange(e) {
|
|
358
|
+
let t = Number(e.target.value);
|
|
359
|
+
this.model.scaleSetting().set(t);
|
|
360
|
+
}
|
|
361
|
+
getDeviceScaleFactorOptions() {
|
|
362
|
+
let e = this.model.deviceScaleFactorSetting(), t = this.model.uaSetting().get() === B.MOBILE || this.model.uaSetting().get() === B.MOBILE_NO_TOUCH ? 2 : window.devicePixelRatio, n = [
|
|
363
|
+
1,
|
|
364
|
+
2,
|
|
365
|
+
3
|
|
366
|
+
];
|
|
367
|
+
n.includes(t) || (n.push(t), n.sort((e, t) => e - t));
|
|
368
|
+
let r = e.get();
|
|
369
|
+
return n.map((e) => {
|
|
370
|
+
let n = String(e), i = `dpr-${e}`;
|
|
371
|
+
return e === t && (n = W(H.defaultF, { PH1: e }), i = "dpr-default"), {
|
|
372
|
+
title: n,
|
|
373
|
+
value: e === t ? 0 : e,
|
|
374
|
+
selected: r === e || e === t && r === 0,
|
|
375
|
+
jslogContext: i
|
|
376
|
+
};
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
onDeviceScaleChange(e) {
|
|
380
|
+
let t = Number(e.target.value);
|
|
381
|
+
this.model.deviceScaleFactorSetting().set(t);
|
|
382
|
+
}
|
|
383
|
+
getUserAgentOptions() {
|
|
384
|
+
let e = this.model.uaSetting().get();
|
|
385
|
+
return [
|
|
386
|
+
B.MOBILE,
|
|
387
|
+
B.MOBILE_NO_TOUCH,
|
|
388
|
+
B.DESKTOP,
|
|
389
|
+
B.DESKTOP_TOUCH
|
|
390
|
+
].map((t) => ({
|
|
391
|
+
title: t,
|
|
392
|
+
value: t,
|
|
393
|
+
selected: e === t,
|
|
394
|
+
jslogContext: a(t)
|
|
395
|
+
}));
|
|
396
|
+
}
|
|
397
|
+
onUAChange(e) {
|
|
398
|
+
let t = e.target.value;
|
|
399
|
+
this.model.uaSetting().set(t);
|
|
400
|
+
}
|
|
401
|
+
appendOptionsMenuItems(e) {
|
|
402
|
+
let t = this.model;
|
|
403
|
+
n(e.headerSection(), this.deviceOutlineSetting, W(H.hideDeviceFrame), W(H.showDeviceFrame), t.type() !== z.Device, "device-frame"), n(e.headerSection(), this.showMediaInspectorSetting, W(H.hideMediaQueries), W(H.showMediaQueries), void 0, "media-queries"), n(e.headerSection(), this.showRulersSetting, W(H.hideRulers), W(H.showRulers), void 0, "rulers"), n(e.defaultSection(), this.showDeviceScaleFactorSetting, W(H.removeDevicePixelRatio), W(H.addDevicePixelRatio), void 0, "device-pixel-ratio"), n(e.defaultSection(), this.showUserAgentTypeSetting, W(H.removeDeviceType), W(H.addDeviceType), void 0, "device-type"), e.appendItemsAtLocation("deviceModeMenu"), e.footerSection().appendItem(W(H.resetToDefaults), this.reset.bind(this), { jslogContext: "reset-to-defaults" }), e.footerSection().appendItem(W(H.closeDevtools), A.closeWindow.bind(A), { jslogContext: "close-dev-tools" });
|
|
404
|
+
function n(e, n, r, i, a, o) {
|
|
405
|
+
a === void 0 && (a = t.type() === z.None);
|
|
406
|
+
let s = n.get(), c = `${o}-${s ? "disable" : "enable"}`;
|
|
407
|
+
e.appendItem(s ? r : i, n.set.bind(n, !n.get()), {
|
|
408
|
+
disabled: a,
|
|
409
|
+
jslogContext: c
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
reset() {
|
|
414
|
+
this.deviceOutlineSetting.set(!1), this.showDeviceScaleFactorSetting.set(!1), this.showUserAgentTypeSetting.set(!1), this.showMediaInspectorSetting.set(!1), this.showRulersSetting.set(!1), this.model.reset();
|
|
415
|
+
}
|
|
416
|
+
emulateDevice(e) {
|
|
417
|
+
let t = this.autoAdjustScaleSetting.get() ? void 0 : this.model.scaleSetting().get();
|
|
418
|
+
this.model.emulate(z.Device, e, this.lastMode.get(e) || e.modes[0], t);
|
|
419
|
+
}
|
|
420
|
+
switchToResponsive() {
|
|
421
|
+
this.model.emulate(z.Responsive, null, null);
|
|
422
|
+
}
|
|
423
|
+
filterDevices(e) {
|
|
424
|
+
return e = e.filter(function(e) {
|
|
425
|
+
return e.show();
|
|
426
|
+
}), e.sort(ke.deviceComparator), e;
|
|
427
|
+
}
|
|
428
|
+
standardDevices() {
|
|
429
|
+
return this.filterDevices(this.emulatedDevicesList.standard());
|
|
430
|
+
}
|
|
431
|
+
customDevices() {
|
|
432
|
+
return this.filterDevices(this.emulatedDevicesList.custom());
|
|
433
|
+
}
|
|
434
|
+
allDevices() {
|
|
435
|
+
return this.standardDevices().concat(this.customDevices());
|
|
436
|
+
}
|
|
437
|
+
getDeviceModeOptions() {
|
|
438
|
+
return {
|
|
439
|
+
responsive: {
|
|
440
|
+
title: W(H.responsive),
|
|
441
|
+
selected: this.model.type() === z.Responsive,
|
|
442
|
+
jslogContext: "responsive"
|
|
443
|
+
},
|
|
444
|
+
standard: this.standardDevices().map((e) => ({
|
|
445
|
+
device: e,
|
|
446
|
+
title: e.title,
|
|
447
|
+
selected: this.model.device() === e,
|
|
448
|
+
jslogContext: a(e.title)
|
|
449
|
+
})),
|
|
450
|
+
custom: this.customDevices().map((e) => ({
|
|
451
|
+
device: e,
|
|
452
|
+
title: e.title,
|
|
453
|
+
selected: this.model.device() === e,
|
|
454
|
+
jslogContext: a(e.title)
|
|
455
|
+
})),
|
|
456
|
+
edit: {
|
|
457
|
+
title: W(H.edit),
|
|
458
|
+
jslogContext: "edit"
|
|
459
|
+
}
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
onDeviceChange(e) {
|
|
463
|
+
let t = e.target.value;
|
|
464
|
+
if (t === "Edit") this.emulatedDevicesList.revealCustomSetting(), this.requestUpdate();
|
|
465
|
+
else if (t === "Responsive") this.switchToResponsive();
|
|
466
|
+
else for (let e of this.allDevices()) if (e.title === t) {
|
|
467
|
+
this.emulateDevice(e);
|
|
468
|
+
break;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
deviceListChanged() {
|
|
472
|
+
this.requestUpdate();
|
|
473
|
+
let e = this.model.device();
|
|
474
|
+
if (!e) return;
|
|
475
|
+
let t = this.allDevices();
|
|
476
|
+
t.indexOf(e) === -1 ? t.length ? this.emulateDevice(t[0]) : this.model.emulate(z.Responsive, null, null) : this.emulateDevice(e);
|
|
477
|
+
}
|
|
478
|
+
spanClicked() {
|
|
479
|
+
let e = this.model.device();
|
|
480
|
+
if (!e || !e.isDualScreen && !e.isFoldableScreen) return;
|
|
481
|
+
let t = this.autoAdjustScaleSetting.get() ? void 0 : this.model.scaleSetting().get(), n = this.model.mode();
|
|
482
|
+
if (!n) return;
|
|
483
|
+
let r = e.getSpanPartner(n);
|
|
484
|
+
r && this.model.emulate(this.model.type(), e, r, t);
|
|
485
|
+
}
|
|
486
|
+
modeMenuClicked(e) {
|
|
487
|
+
if (this.model.isScreenOrientationLocked()) return;
|
|
488
|
+
let t = this.model.device(), n = this.model, r = this.autoAdjustScaleSetting;
|
|
489
|
+
if (n.type() === z.Responsive) {
|
|
490
|
+
let e = n.appliedDeviceSize();
|
|
491
|
+
r.get() ? n.setSizeAndScaleToFit(e.height, e.width) : (n.setWidth(e.height), n.setHeight(e.width));
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
if (!t) return;
|
|
495
|
+
if ((t.isDualScreen || t.isFoldableScreen || t.modes.length === 2) && t.modes[0].orientation !== t.modes[1].orientation) {
|
|
496
|
+
let e = r.get() ? void 0 : n.scaleSetting().get(), i = n.mode();
|
|
497
|
+
if (!i) return;
|
|
498
|
+
let a = t.getRotationPartner(i);
|
|
499
|
+
if (!a) return;
|
|
500
|
+
n.emulate(n.type(), n.device(), a, e);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
let i = e.target, a = new M(e, {
|
|
504
|
+
x: i.getBoundingClientRect().left,
|
|
505
|
+
y: i.getBoundingClientRect().top + i.offsetHeight
|
|
506
|
+
});
|
|
507
|
+
o(Pe, W(H.portrait)), o(Ae, W(H.landscape)), a.show();
|
|
508
|
+
function o(e, n) {
|
|
509
|
+
if (!t) return;
|
|
510
|
+
let r = t.modesForOrientation(e);
|
|
511
|
+
if (r.length) if (r.length === 1) s(r[0], n);
|
|
512
|
+
else for (let e = 0; e < r.length; e++) s(r[e], n + " – " + r[e].title);
|
|
513
|
+
}
|
|
514
|
+
function s(e, t) {
|
|
515
|
+
a.defaultSection().appendCheckboxItem(t, c.bind(null, e), {
|
|
516
|
+
checked: n.mode() === e,
|
|
517
|
+
jslogContext: "device-mode"
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
function c(e) {
|
|
521
|
+
let t = r.get() ? void 0 : n.scaleSetting().get();
|
|
522
|
+
n.emulate(n.type(), n.device(), e, t);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
getPrettyFitZoomPercentage() {
|
|
526
|
+
return `${(this.model.fitScale() * 100).toFixed(0)}`;
|
|
527
|
+
}
|
|
528
|
+
getPrettyZoomPercentage() {
|
|
529
|
+
return `${(this.model.scale() * 100).toFixed(0)}`;
|
|
530
|
+
}
|
|
531
|
+
restore() {
|
|
532
|
+
for (let e of this.allDevices()) if (e.title === this.persistenceSetting.get().device) {
|
|
533
|
+
for (let t of e.modes) if (t.orientation === this.persistenceSetting.get().orientation && t.title === this.persistenceSetting.get().mode) {
|
|
534
|
+
this.lastMode.set(e, t), this.emulateDevice(e);
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
this.model.emulate(z.Responsive, null, null);
|
|
539
|
+
}
|
|
540
|
+
}, Je = "/*\n * Copyright 2015 The Chromium Authors\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n:host {\n overflow: hidden;\n align-items: stretch;\n flex: auto;\n background-color: var(--app-color-toolbar-background);\n}\n\n.device-mode-toolbar {\n flex: none;\n background-color: var(--app-color-toolbar-background);\n border-bottom: 1px solid var(--sys-color-divider);\n display: flex;\n flex-direction: row;\n align-items: stretch;\n}\n\n.device-mode-x {\n margin: 0 1px;\n font-size: 16px;\n}\n\n.device-mode-size-input {\n /*\n * 4 characters for the maximum size of the value,\n * 2 characters for the width of the step-buttons,\n * 2 pixels padding between the characters and the\n * step-buttons.\n */\n width: calc(4ch + 2ch + 2px);\n max-height: 18px;\n border: var(--sys-color-neutral-outline);\n border-radius: 4px;\n margin: 0 2px;\n text-align: center;\n font-size: inherit;\n font-family: inherit;\n}\n\n.device-mode-size-input:disabled {\n user-select: none;\n}\n\n.device-mode-size-input:focus::-webkit-input-placeholder {\n color: transparent;\n}\n\n.device-mode-empty-toolbar-element {\n width: 0;\n}\n\ndevtools-toolbar {\n overflow: hidden;\n flex: 0 100000 auto;\n padding: 0 5px;\n\n &[wrappable] {\n height: var(--toolbar-height);\n }\n}\n\ndevtools-toolbar.main-toolbar {\n margin: 0 auto;\n}\n\ndevtools-toolbar.device-mode-toolbar-options {\n flex: none;\n}\n\n.device-mode-content-clip {\n overflow: hidden;\n flex: auto;\n}\n\n.device-mode-media-container {\n flex: none;\n overflow: hidden;\n box-shadow: inset 0 -1px var(--sys-color-divider);\n}\n\n.device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-media-container {\n margin-bottom: 20px;\n}\n\n.device-mode-presets-container {\n flex: 0 0 20px;\n display: flex;\n}\n\n.device-mode-presets-container-inner {\n flex: auto;\n justify-content: center;\n position: relative;\n background-color: var(--sys-color-surface1);\n border-bottom: 1px solid var(--sys-color-divider);\n}\n\n.device-mode-presets-container:hover {\n transition: opacity 0.1s;\n transition-delay: 50ms;\n opacity: 100%;\n}\n\n.device-mode-preset-bar-outer {\n pointer-events: none;\n display: flex;\n justify-content: center;\n}\n\n.device-mode-preset-bar {\n border-left: 2px solid var(--sys-color-divider);\n border-right: 2px solid var(--sys-color-divider);\n pointer-events: auto;\n text-align: center;\n flex: none;\n color: var(--sys-color-on-surface);\n display: flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n margin-bottom: 1px;\n}\n\n.device-mode-preset-bar:hover {\n transition: background-color 0.1s;\n transition-delay: 50ms;\n background-color: var(--sys-color-state-hover-on-subtle);\n}\n\n.device-mode-preset-bar > span {\n visibility: hidden;\n}\n\n.device-mode-preset-bar:hover > span {\n transition: visibility 0.1s;\n transition-delay: 50ms;\n visibility: visible;\n}\n\n.device-mode-content-area {\n flex: auto;\n position: relative;\n margin: 0;\n}\n\n.device-mode-screen-area {\n position: absolute;\n left: 0;\n right: 0;\n width: 0;\n height: 0;\n background-color: var(--sys-color-inverse-surface);\n}\n\n.device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-screen-area {\n --override-screen-area-box-shadow: hsl(240deg 3% 84%) 0 0 0 0.5px, hsl(0deg 0% 80% / 40%) 0 0 20px;\n\n box-shadow: var(--override-screen-area-box-shadow);\n}\n\n.theme-with-dark-background .device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-screen-area,\n:host-context(.theme-with-dark-background) .device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-screen-area {\n --override-screen-area-box-shadow: rgb(40 40 42) 0 0 0 0.5px, rgb(51 51 51 / 40%) 0 0 20px;\n}\n\n.device-mode-screen-image {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n\n.device-mode-resizer {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n transition: background-color 0.1s ease, opacity 0.1s ease;\n}\n\n.device-mode-resizer:hover {\n background-color: var(--sys-color-state-hover-on-subtle);\n opacity: 100%;\n}\n\n.device-mode-resizer > div {\n pointer-events: none;\n}\n\n.device-mode-right-resizer {\n top: 0;\n bottom: -1px;\n right: -20px;\n width: 20px;\n}\n\n.device-mode-left-resizer {\n top: 0;\n bottom: -1px;\n left: -20px;\n width: 20px;\n opacity: 0%;\n}\n\n.device-mode-bottom-resizer {\n left: 0;\n right: -1px;\n bottom: -20px;\n height: 20px;\n}\n\n.device-mode-bottom-right-resizer {\n inset: 0 -20px -20px 0;\n background-color: var(--sys-color-surface1);\n}\n\n.device-mode-bottom-left-resizer {\n inset: 0 0 -20px -20px;\n opacity: 0%;\n}\n\n.device-mode-right-resizer > div {\n /* stylelint-disable-next-line custom-property-pattern */\n content: var(--image-file-resizeHorizontal);\n width: 6px;\n height: 26px;\n}\n\n.device-mode-left-resizer > div {\n /* stylelint-disable-next-line custom-property-pattern */\n content: var(--image-file-resizeHorizontal);\n width: 6px;\n height: 26px;\n}\n\n.device-mode-bottom-resizer > div {\n /* stylelint-disable-next-line custom-property-pattern */\n content: var(--image-file-resizeVertical);\n margin-bottom: -2px;\n width: 26px;\n height: 6px;\n}\n\n.device-mode-bottom-right-resizer > div {\n position: absolute;\n bottom: 3px;\n right: 3px;\n width: 13px;\n height: 13px;\n /* stylelint-disable-next-line custom-property-pattern */\n content: var(--image-file-resizeDiagonal);\n}\n\n.device-mode-bottom-left-resizer > div {\n position: absolute;\n bottom: 3px;\n left: 3px;\n width: 13px;\n height: 13px;\n /* stylelint-disable-next-line custom-property-pattern */\n content: var(--image-file-resizeDiagonal);\n transform: rotate(90deg);\n}\n\n.device-mode-page-area {\n position: absolute;\n left: 0;\n right: 0;\n width: 0;\n height: 0;\n display: flex;\n background-color: var(--sys-color-cdt-base-container);\n}\n\n.device-mode-ruler {\n position: absolute;\n overflow: visible;\n}\n\n.device-mode-ruler-top {\n height: 20px;\n right: 0;\n}\n\n.device-mode-ruler-left {\n width: 20px;\n bottom: 0;\n}\n\n.device-mode-ruler-content {\n pointer-events: none;\n position: absolute;\n left: -20px;\n top: -20px;\n}\n\n.device-mode-ruler-top .device-mode-ruler-content {\n border-top: 1px solid transparent;\n right: 0;\n bottom: 20px;\n background-color: var(--sys-color-cdt-base-container);\n}\n\n.device-mode-ruler-left .device-mode-ruler-content {\n border-left: 1px solid transparent;\n border-top: 1px solid transparent;\n right: 20px;\n bottom: 0;\n}\n\n.device-mode-content-clip.device-mode-outline-visible .device-mode-ruler-top .device-mode-ruler-content {\n border-top: 1px solid var(--sys-color-token-subtle);\n}\n\n.device-mode-content-clip.device-mode-outline-visible .device-mode-ruler-left .device-mode-ruler-content {\n border-left: 1px solid var(--sys-color-token-subtle);\n border-top: 1px solid var(--sys-color-token-subtle);\n}\n\n.device-mode-ruler-inner {\n position: absolute;\n}\n\n.device-mode-ruler-top .device-mode-ruler-inner {\n inset: 0 0 0 20px;\n border-bottom: 1px solid var(--sys-color-token-subtle);\n}\n\n.device-mode-ruler-left .device-mode-ruler-inner {\n inset: 19px 0 0;\n border-right: 1px solid var(--sys-color-token-subtle);\n background-color: var(--sys-color-cdt-base-container);\n}\n\n.device-mode-ruler-marker {\n position: absolute;\n}\n\n.device-mode-ruler-top .device-mode-ruler-marker {\n width: 0;\n height: 5px;\n bottom: 0;\n border-right: 1px solid var(--sys-color-token-subtle);\n margin-right: -1px;\n}\n\n.device-mode-ruler-top .device-mode-ruler-marker.device-mode-ruler-marker-medium {\n height: 10px;\n}\n\n.device-mode-ruler-top .device-mode-ruler-marker.device-mode-ruler-marker-large {\n height: 15px;\n}\n\n.device-mode-ruler-left .device-mode-ruler-marker {\n height: 0;\n width: 5px;\n right: 0;\n border-bottom: 1px solid var(--sys-color-token-subtle);\n margin-bottom: -1px;\n}\n\n.device-mode-ruler-left .device-mode-ruler-marker.device-mode-ruler-marker-medium {\n width: 10px;\n}\n\n.device-mode-ruler-left .device-mode-ruler-marker.device-mode-ruler-marker-large {\n width: 15px;\n}\n\n.device-mode-ruler-text {\n color: var(--sys-color-token-subtle);\n position: relative;\n pointer-events: auto;\n}\n\n.device-mode-ruler-text:hover {\n color: var(--sys-color-on-surface);\n}\n\n.device-mode-ruler-top .device-mode-ruler-text {\n left: 2px;\n top: -2px;\n}\n\n.device-mode-ruler-left .device-mode-ruler-text {\n left: -4px;\n top: -15px;\n transform: rotate(270deg);\n}\n", Ye = "/*\n * Copyright 2015 The Chromium Authors\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n/* Media query bars */\n\n.media-inspector-view {\n height: 50px;\n}\n\n.media-inspector-marker-container {\n height: 14px;\n margin: 2px 0;\n position: relative;\n}\n\n.media-inspector-bar {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n pointer-events: none;\n position: absolute;\n inset: 0;\n}\n\n.media-inspector-marker {\n flex: none;\n pointer-events: auto;\n margin: 1px 0;\n white-space: nowrap;\n z-index: auto;\n position: relative;\n}\n\n.media-inspector-marker-spacer {\n flex: auto;\n}\n\n.media-inspector-marker:hover {\n margin: -1px 0;\n opacity: 100%;\n}\n\n.media-inspector-marker-min-width {\n flex: auto;\n background-color: var(--sys-color-yellow-container);\n border-right: 2px solid var(--sys-color-yellow-bright);\n border-left: 2px solid var(--sys-color-yellow-bright);\n\n &:hover {\n background-color: color-mix(in srgb, var(--sys-color-yellow-container), var(--sys-color-yellow-bright) 30%);\n }\n}\n\n.media-inspector-marker-min-width-right {\n border-left: 2px solid var(--sys-color-yellow-bright);\n}\n\n.media-inspector-marker-min-width-left {\n border-right: 2px solid var(--sys-color-yellow-bright);\n}\n\n.media-inspector-marker-min-max-width {\n background-color: var(--sys-color-tertiary-container);\n border-left: 2px solid var(--sys-color-tertiary);\n border-right: 2px solid var(--sys-color-tertiary);\n}\n\n.media-inspector-marker-min-max-width:hover {\n z-index: 1;\n}\n\n.media-inspector-marker-max-width {\n background-color: var(--sys-color-inverse-primary);\n border-right: 2px solid var(--sys-color-primary-bright);\n border-left: 2px solid var(--sys-color-primary-bright);\n}\n\n/* Clear background colors when query is not active and not hovering */\n\n.media-inspector-marker-inactive .media-inspector-marker-min-width:not(:hover) {\n background-color: var(--sys-color-surface-yellow);\n}\n\n.media-inspector-marker-inactive .media-inspector-marker-min-max-width:not(:hover) {\n background-color: color-mix(in srgb, var(--sys-color-tertiary-container), var(--sys-color-cdt-base-container) 30%);\n}\n\n.media-inspector-marker-inactive .media-inspector-marker-max-width:not(:hover) {\n background-color: var(--sys-color-tonal-container);\n}\n\n/* Media query labels */\n\n.media-inspector-marker-label-container {\n position: absolute;\n z-index: 1;\n}\n\n.media-inspector-marker:not(:hover) .media-inspector-marker-label-container {\n display: none;\n}\n\n.media-inspector-marker-label-container-left {\n left: -2px;\n}\n\n.media-inspector-marker-label-container-right {\n right: -2px;\n}\n\n.media-inspector-marker-label {\n color: var(--sys-color-on-surface);\n position: absolute;\n top: 1px;\n bottom: 0;\n font-size: 12px;\n pointer-events: none;\n}\n\n.media-inspector-label-right {\n right: 4px;\n}\n\n.media-inspector-label-left {\n left: 4px;\n}\n", Xe = /* @__PURE__ */ e({
|
|
541
|
+
DEFAULT_VIEW: () => et,
|
|
542
|
+
MediaQueryInspector: () => it,
|
|
543
|
+
MediaQueryUIModel: () => ot,
|
|
544
|
+
Section: () => at
|
|
545
|
+
}), Ze = { revealInSourceCode: "Reveal in source code" }, Qe = d("panels/emulation/MediaQueryInspector.ts", Ze), $e = s.bind(void 0, Qe), { classMap: G } = le, et = (e, t, n) => {
|
|
546
|
+
let r = (e) => ({
|
|
547
|
+
"media-inspector-bar": !0,
|
|
548
|
+
"media-inspector-marker-inactive": !e.active
|
|
549
|
+
});
|
|
550
|
+
b(O`
|
|
551
|
+
<style>${Ye}</style>
|
|
552
|
+
<div class='media-inspector-view'>
|
|
553
|
+
${e.markers.entries().map(([t, n]) => O`
|
|
554
|
+
<div class='media-inspector-marker-container'>
|
|
555
|
+
${n.map((n) => O`
|
|
556
|
+
<div
|
|
557
|
+
class=${G(r(n))}
|
|
558
|
+
@click=${() => e.onMediaQueryClicked(n.model)}
|
|
559
|
+
@contextmenu=${(t) => e.onContextMenu(t, n.locations)}
|
|
560
|
+
>
|
|
561
|
+
${t === 0 ? tt(e.zoomFactor, n.model) : t === 1 ? nt(e.zoomFactor, n.model) : rt(e.zoomFactor, n.model)}
|
|
562
|
+
</div>
|
|
563
|
+
`)}
|
|
564
|
+
</div>
|
|
565
|
+
`).toArray()}
|
|
566
|
+
</div>`, n, { container: { attributes: { jslog: `${oe().track({ click: !0 })}` } } });
|
|
567
|
+
};
|
|
568
|
+
function tt(e, t) {
|
|
569
|
+
return O`
|
|
570
|
+
<div class='media-inspector-marker-spacer'></div>
|
|
571
|
+
<div
|
|
572
|
+
class='media-inspector-marker media-inspector-marker-max-width'
|
|
573
|
+
style=${"width: " + t.maxWidthValue(e) + "px"}
|
|
574
|
+
title=${t.mediaText()}
|
|
575
|
+
>
|
|
576
|
+
${K(t.maxWidthExpression(), !1, !1)}
|
|
577
|
+
${K(t.maxWidthExpression(), !0, !0)}
|
|
578
|
+
</div>
|
|
579
|
+
<div class='media-inspector-marker-spacer'></div>
|
|
580
|
+
`;
|
|
581
|
+
}
|
|
582
|
+
function nt(e, t) {
|
|
583
|
+
let n = (t.maxWidthValue(e) - t.minWidthValue(e)) * .5;
|
|
584
|
+
return O`
|
|
585
|
+
<div class='media-inspector-marker-spacer'></div>
|
|
586
|
+
<div
|
|
587
|
+
class='media-inspector-marker media-inspector-marker-min-max-width'
|
|
588
|
+
style=${"width: " + n + "px"}
|
|
589
|
+
title=${t.mediaText()}
|
|
590
|
+
>
|
|
591
|
+
${K(t.maxWidthExpression(), !0, !1)}
|
|
592
|
+
${K(t.minWidthExpression(), !1, !0)}
|
|
593
|
+
</div>
|
|
594
|
+
<div class='media-inspector-marker-spacer' style=${"flex: 0 0 " + t.minWidthValue(e) + "px"}></div>
|
|
595
|
+
<div
|
|
596
|
+
class='media-inspector-marker media-inspector-marker-min-max-width'
|
|
597
|
+
style=${"width: " + n + "px"}
|
|
598
|
+
title=${t.mediaText()}
|
|
599
|
+
>
|
|
600
|
+
${K(t.minWidthExpression(), !0, !1)}
|
|
601
|
+
${K(t.maxWidthExpression(), !1, !0)}
|
|
602
|
+
</div>
|
|
603
|
+
<div class='media-inspector-marker-spacer'></div>
|
|
604
|
+
`;
|
|
605
|
+
}
|
|
606
|
+
function rt(e, t) {
|
|
607
|
+
return O`
|
|
608
|
+
<div
|
|
609
|
+
class='media-inspector-marker media-inspector-marker-min-width media-inspector-marker-min-width-left'
|
|
610
|
+
title=${t.mediaText()}
|
|
611
|
+
>${K(t.minWidthExpression(), !1, !1)}</div>
|
|
612
|
+
<div class='media-inspector-marker-spacer' style=${"flex: 0 0 " + t.minWidthValue(e) + "px"}></div>
|
|
613
|
+
<div
|
|
614
|
+
class='media-inspector-marker media-inspector-marker-min-width media-inspector-marker-min-width-right'
|
|
615
|
+
title=${t.mediaText()}
|
|
616
|
+
>${K(t.minWidthExpression(), !0, !0)}</div>
|
|
617
|
+
`;
|
|
618
|
+
}
|
|
619
|
+
function K(e, t, n) {
|
|
620
|
+
if (!e) return de;
|
|
621
|
+
let r = {
|
|
622
|
+
"media-inspector-marker-label-container": !0,
|
|
623
|
+
"media-inspector-marker-label-container-left": t,
|
|
624
|
+
"media-inspector-marker-label-container-right": !t
|
|
625
|
+
}, i = {
|
|
626
|
+
"media-inspector-marker-label": !0,
|
|
627
|
+
"media-inspector-label-left": n,
|
|
628
|
+
"media-inspector-label-right": !n
|
|
629
|
+
};
|
|
630
|
+
return O`
|
|
631
|
+
<div class=${G(r)}>
|
|
632
|
+
<span class=${G(i)}>${e.value()}${e.unit()}</span>
|
|
633
|
+
</div>
|
|
634
|
+
`;
|
|
635
|
+
}
|
|
636
|
+
var it = class extends L {
|
|
637
|
+
view;
|
|
638
|
+
mediaThrottler;
|
|
639
|
+
getWidthCallback;
|
|
640
|
+
setWidthCallback;
|
|
641
|
+
scale;
|
|
642
|
+
cssModel;
|
|
643
|
+
cachedQueryModels;
|
|
644
|
+
constructor(e, t, n, r = et) {
|
|
645
|
+
super({ useShadowDom: "pure" }), this.view = r, this.mediaThrottler = n, this.getWidthCallback = e, this.setWidthCallback = t, this.scale = 1, T.instance().observeModels(h, this), k.instance().addEventListener(j.ZOOM_CHANGED, this.requestUpdate.bind(this), this);
|
|
646
|
+
}
|
|
647
|
+
modelAdded(e) {
|
|
648
|
+
e.target() === T.instance().primaryPageTarget() && (this.cssModel = e, this.cssModel.addEventListener(E.StyleSheetAdded, this.scheduleMediaQueriesUpdate, this), this.cssModel.addEventListener(E.StyleSheetRemoved, this.scheduleMediaQueriesUpdate, this), this.cssModel.addEventListener(E.StyleSheetChanged, this.scheduleMediaQueriesUpdate, this), this.cssModel.addEventListener(E.MediaQueryResultChanged, this.scheduleMediaQueriesUpdate, this));
|
|
649
|
+
}
|
|
650
|
+
modelRemoved(e) {
|
|
651
|
+
e === this.cssModel && (this.cssModel.removeEventListener(E.StyleSheetAdded, this.scheduleMediaQueriesUpdate, this), this.cssModel.removeEventListener(E.StyleSheetRemoved, this.scheduleMediaQueriesUpdate, this), this.cssModel.removeEventListener(E.StyleSheetChanged, this.scheduleMediaQueriesUpdate, this), this.cssModel.removeEventListener(E.MediaQueryResultChanged, this.scheduleMediaQueriesUpdate, this), delete this.cssModel);
|
|
652
|
+
}
|
|
653
|
+
setAxisTransform(e) {
|
|
654
|
+
Math.abs(this.scale - e) < 1e-8 || (this.scale = e, this.performUpdate());
|
|
655
|
+
}
|
|
656
|
+
onMediaQueryClicked(e) {
|
|
657
|
+
let t = e.maxWidthExpression(), n = e.minWidthExpression();
|
|
658
|
+
if (e.section() === 0) {
|
|
659
|
+
this.setWidthCallback(t && t.computedLength() || 0);
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
if (e.section() === 2) {
|
|
663
|
+
this.setWidthCallback(n && n.computedLength() || 0);
|
|
664
|
+
return;
|
|
665
|
+
}
|
|
666
|
+
let r = this.getWidthCallback();
|
|
667
|
+
n && r !== n.computedLength() ? this.setWidthCallback(n.computedLength() || 0) : this.setWidthCallback(t && t.computedLength() || 0);
|
|
668
|
+
}
|
|
669
|
+
onContextMenu(e, n) {
|
|
670
|
+
if (!this.cssModel?.isEnabled()) return;
|
|
671
|
+
let r = /* @__PURE__ */ new Map();
|
|
672
|
+
for (let e = 0; e < n.length; ++e) {
|
|
673
|
+
let i = Oe.instance().rawLocationToUILocation(n[e]);
|
|
674
|
+
if (!i) continue;
|
|
675
|
+
let a = typeof i.columnNumber == "number" ? t("%s:%d:%d", i.uiSourceCode.url(), i.lineNumber + 1, i.columnNumber + 1) : t("%s:%d", i.uiSourceCode.url(), i.lineNumber + 1);
|
|
676
|
+
r.set(a, i);
|
|
677
|
+
}
|
|
678
|
+
let i = [...r.keys()].sort(), a = new M(e), o = a.defaultSection().appendSubMenuItem($e(Ze.revealInSourceCode), void 0, "reveal-in-source-list");
|
|
679
|
+
for (let e = 0; e < i.length; ++e) {
|
|
680
|
+
let t = i[e];
|
|
681
|
+
o.defaultSection().appendItem(t, this.revealSourceLocation.bind(this, r.get(t)), { jslogContext: "reveal-in-source" });
|
|
682
|
+
}
|
|
683
|
+
a.show();
|
|
684
|
+
}
|
|
685
|
+
revealSourceLocation(e) {
|
|
686
|
+
o(e);
|
|
687
|
+
}
|
|
688
|
+
scheduleMediaQueriesUpdate() {
|
|
689
|
+
this.isShowing() && this.mediaThrottler.schedule(this.refetchMediaQueries.bind(this));
|
|
690
|
+
}
|
|
691
|
+
refetchMediaQueries() {
|
|
692
|
+
return !this.isShowing() || !this.cssModel ? Promise.resolve() : this.cssModel.getMediaQueries().then(this.rebuildMediaQueries.bind(this));
|
|
693
|
+
}
|
|
694
|
+
squashAdjacentEqual(e) {
|
|
695
|
+
let t = [];
|
|
696
|
+
for (let n = 0; n < e.length; ++n) t[t.length - 1]?.equals(e[n]) || t.push(e[n]);
|
|
697
|
+
return t;
|
|
698
|
+
}
|
|
699
|
+
rebuildMediaQueries(e) {
|
|
700
|
+
let t = [];
|
|
701
|
+
for (let n = 0; n < e.length; ++n) {
|
|
702
|
+
let r = e[n];
|
|
703
|
+
if (r.mediaList) for (let e = 0; e < r.mediaList.length; ++e) {
|
|
704
|
+
let n = r.mediaList[e], i = ot.createFromMediaQuery(r, n);
|
|
705
|
+
i && t.push(i);
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
t.sort(r), t = this.squashAdjacentEqual(t);
|
|
709
|
+
let n = this.cachedQueryModels && this.cachedQueryModels.length === t.length;
|
|
710
|
+
for (let e = 0; n && e < t.length; ++e) n &&= this.cachedQueryModels?.[e].equals(t[e]);
|
|
711
|
+
if (n) return;
|
|
712
|
+
this.cachedQueryModels = t, this.requestUpdate();
|
|
713
|
+
function r(e, t) {
|
|
714
|
+
return e.compareTo(t);
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
buildMediaQueryMarkers() {
|
|
718
|
+
if (!this.cachedQueryModels) return [];
|
|
719
|
+
let e = [], t = null;
|
|
720
|
+
for (let n of this.cachedQueryModels) {
|
|
721
|
+
t?.model.dimensionsEqual(n) ? t.active = t.active || n.active() : (t = {
|
|
722
|
+
active: n.active(),
|
|
723
|
+
model: n,
|
|
724
|
+
locations: []
|
|
725
|
+
}, e.push(t));
|
|
726
|
+
let r = n.rawLocation();
|
|
727
|
+
r && t.locations.push(r);
|
|
728
|
+
}
|
|
729
|
+
return e;
|
|
730
|
+
}
|
|
731
|
+
zoomFactor() {
|
|
732
|
+
return k.instance().zoomFactor() / this.scale;
|
|
733
|
+
}
|
|
734
|
+
wasShown() {
|
|
735
|
+
super.wasShown(), this.scheduleMediaQueriesUpdate(), this.performUpdate();
|
|
736
|
+
}
|
|
737
|
+
performUpdate() {
|
|
738
|
+
let e = Map.groupBy(this.buildMediaQueryMarkers(), (e) => e.model.section());
|
|
739
|
+
this.view({
|
|
740
|
+
zoomFactor: this.zoomFactor(),
|
|
741
|
+
markers: e,
|
|
742
|
+
onMediaQueryClicked: this.onMediaQueryClicked.bind(this),
|
|
743
|
+
onContextMenu: this.onContextMenu.bind(this)
|
|
744
|
+
}, {}, this.contentElement);
|
|
745
|
+
}
|
|
746
|
+
}, at = /* @__PURE__ */ function(e) {
|
|
747
|
+
return e[e.MAX = 0] = "MAX", e[e.MIN_MAX = 1] = "MIN_MAX", e[e.MIN = 2] = "MIN", e;
|
|
748
|
+
}({}), ot = class e {
|
|
749
|
+
cssMedia;
|
|
750
|
+
#e;
|
|
751
|
+
#t;
|
|
752
|
+
#n;
|
|
753
|
+
#r;
|
|
754
|
+
#i;
|
|
755
|
+
constructor(e, t, n, r) {
|
|
756
|
+
this.cssMedia = e, this.#e = t, this.#t = n, this.#n = r, n && !t ? this.#r = 0 : t && n ? this.#r = 1 : this.#r = 2;
|
|
757
|
+
}
|
|
758
|
+
static createFromMediaQuery(t, n) {
|
|
759
|
+
let r = null, i = Number.MAX_VALUE, a = null, o = Number.MIN_VALUE, s = n.expressions();
|
|
760
|
+
if (!s) return null;
|
|
761
|
+
for (let e = 0; e < s.length; ++e) {
|
|
762
|
+
let t = s[e], n = t.feature();
|
|
763
|
+
if (n.indexOf("width") === -1) continue;
|
|
764
|
+
let c = t.computedLength();
|
|
765
|
+
n.startsWith("max-") && c && c < i ? (r = t, i = c) : n.startsWith("min-") && c && c > o && (a = t, o = c);
|
|
766
|
+
}
|
|
767
|
+
return o > i || !r && !a ? null : new e(t, a, r, n.active());
|
|
768
|
+
}
|
|
769
|
+
equals(e) {
|
|
770
|
+
return this.compareTo(e) === 0;
|
|
771
|
+
}
|
|
772
|
+
dimensionsEqual(e) {
|
|
773
|
+
let t = this.minWidthExpression(), n = e.minWidthExpression(), r = this.maxWidthExpression(), i = e.maxWidthExpression(), a = this.section() === e.section(), o = !t || t.computedLength() === n?.computedLength(), s = !r || r.computedLength() === i?.computedLength();
|
|
774
|
+
return a && o && s;
|
|
775
|
+
}
|
|
776
|
+
compareTo(e) {
|
|
777
|
+
if (this.section() !== e.section()) return this.section() - e.section();
|
|
778
|
+
if (this.dimensionsEqual(e)) {
|
|
779
|
+
let t = this.rawLocation(), n = e.rawLocation();
|
|
780
|
+
return !t && !n ? i(this.mediaText(), e.mediaText()) : t && !n ? 1 : !t && n ? -1 : this.active() === e.active() ? !t || !n ? 0 : i(t.url, n.url) || t.lineNumber - n.lineNumber || t.columnNumber - n.columnNumber : this.active() ? -1 : 1;
|
|
781
|
+
}
|
|
782
|
+
let t = this.maxWidthExpression(), n = e.maxWidthExpression(), r = t && t.computedLength() || 0, a = n && n.computedLength() || 0, o = this.minWidthExpression(), s = e.minWidthExpression(), c = o && o.computedLength() || 0, l = s && s.computedLength() || 0;
|
|
783
|
+
return this.section() === 0 ? a - r : this.section() === 2 ? c - l : c - l || a - r;
|
|
784
|
+
}
|
|
785
|
+
section() {
|
|
786
|
+
return this.#r;
|
|
787
|
+
}
|
|
788
|
+
mediaText() {
|
|
789
|
+
return this.cssMedia.text || "";
|
|
790
|
+
}
|
|
791
|
+
rawLocation() {
|
|
792
|
+
return this.#i ||= this.cssMedia.rawLocation(), this.#i;
|
|
793
|
+
}
|
|
794
|
+
minWidthExpression() {
|
|
795
|
+
return this.#e;
|
|
796
|
+
}
|
|
797
|
+
maxWidthExpression() {
|
|
798
|
+
return this.#t;
|
|
799
|
+
}
|
|
800
|
+
minWidthValue(e) {
|
|
801
|
+
let t = this.minWidthExpression();
|
|
802
|
+
return t ? (t.computedLength() || 0) / e : 0;
|
|
803
|
+
}
|
|
804
|
+
maxWidthValue(e) {
|
|
805
|
+
let t = this.maxWidthExpression();
|
|
806
|
+
return t ? (t.computedLength() || 0) / e : 0;
|
|
807
|
+
}
|
|
808
|
+
active() {
|
|
809
|
+
return this.#n;
|
|
810
|
+
}
|
|
811
|
+
}, st = /* @__PURE__ */ e({
|
|
812
|
+
DeviceModeView: () => Y,
|
|
813
|
+
Ruler: () => X
|
|
814
|
+
}), q = {
|
|
815
|
+
doubleclickForFullHeight: "Double-click for full height",
|
|
816
|
+
mobileS: "Mobile S",
|
|
817
|
+
mobileM: "Mobile M",
|
|
818
|
+
mobileL: "Mobile L",
|
|
819
|
+
tablet: "Tablet",
|
|
820
|
+
laptop: "Laptop",
|
|
821
|
+
laptopL: "Laptop L"
|
|
822
|
+
}, ct = d("panels/emulation/DeviceModeView.ts", q), J = s.bind(void 0, ct), Y = class extends P {
|
|
823
|
+
wrapperInstance;
|
|
824
|
+
blockElementToWidth;
|
|
825
|
+
model;
|
|
826
|
+
mediaInspector;
|
|
827
|
+
showMediaInspectorSetting;
|
|
828
|
+
showRulersSetting;
|
|
829
|
+
topRuler;
|
|
830
|
+
leftRuler;
|
|
831
|
+
presetBlocks;
|
|
832
|
+
responsivePresetsContainer;
|
|
833
|
+
screenArea;
|
|
834
|
+
pageArea;
|
|
835
|
+
outlineImage;
|
|
836
|
+
contentClip;
|
|
837
|
+
contentArea;
|
|
838
|
+
rightResizerElement;
|
|
839
|
+
leftResizerElement;
|
|
840
|
+
bottomResizerElement;
|
|
841
|
+
bottomRightResizerElement;
|
|
842
|
+
bottomLeftResizerElement;
|
|
843
|
+
cachedResizable;
|
|
844
|
+
mediaInspectorContainer;
|
|
845
|
+
screenImage;
|
|
846
|
+
toolbar;
|
|
847
|
+
slowPositionStart;
|
|
848
|
+
resizeStart;
|
|
849
|
+
cachedCssScreenRect;
|
|
850
|
+
cachedCssVisiblePageRect;
|
|
851
|
+
cachedOutlineRect;
|
|
852
|
+
cachedMediaInspectorVisible;
|
|
853
|
+
cachedShowRulers;
|
|
854
|
+
cachedScale;
|
|
855
|
+
handleWidth;
|
|
856
|
+
handleHeight;
|
|
857
|
+
constructor() {
|
|
858
|
+
super({ useShadowDom: !0 }), this.blockElementToWidth = /* @__PURE__ */ new WeakMap(), this.setMinimumSize(150, 150), this.element.classList.add("device-mode-view"), this.registerRequiredCSS(Je), this.model = Fe.instance(), this.model.addEventListener(Ne.UPDATED, this.updateUI, this), this.mediaInspector = new it(() => this.model.appliedDeviceSize().width, this.model.setWidth.bind(this.model), new u(0)), this.showMediaInspectorSetting = c.instance().moduleSetting("show-media-query-inspector"), this.showMediaInspectorSetting.addChangeListener(this.updateUI, this), this.showRulersSetting = c.instance().moduleSetting("emulation.show-rulers"), this.showRulersSetting.addChangeListener(this.updateUI, this), this.topRuler = new X(!0, this.model.setWidthAndScaleToFit.bind(this.model)), this.topRuler.element.classList.add("device-mode-ruler-top"), this.leftRuler = new X(!1, this.model.setHeightAndScaleToFit.bind(this.model)), this.leftRuler.element.classList.add("device-mode-ruler-left"), this.createUI(), k.instance().addEventListener(j.ZOOM_CHANGED, this.zoomChanged, this);
|
|
859
|
+
}
|
|
860
|
+
createUI() {
|
|
861
|
+
this.toolbar = new qe(this.model, this.showMediaInspectorSetting, this.showRulersSetting), this.toolbar.show(this.contentElement), this.contentClip = this.contentElement.createChild("div", "device-mode-content-clip vbox"), this.responsivePresetsContainer = this.contentClip.createChild("div", "device-mode-presets-container"), this.responsivePresetsContainer.setAttribute("jslog", `${Ce()}`), this.populatePresetsContainer(), this.mediaInspectorContainer = this.contentClip.createChild("div", "device-mode-media-container"), this.contentArea = this.contentClip.createChild("div", "device-mode-content-area"), this.outlineImage = this.contentArea.createChild("img", "device-mode-outline-image hidden fill"), this.outlineImage.addEventListener("load", this.onImageLoaded.bind(this, this.outlineImage, !0), !1), this.outlineImage.addEventListener("error", this.onImageLoaded.bind(this, this.outlineImage, !1), !1), this.screenArea = this.contentArea.createChild("div", "device-mode-screen-area"), this.screenImage = this.screenArea.createChild("img", "device-mode-screen-image hidden"), this.screenImage.addEventListener("load", this.onImageLoaded.bind(this, this.screenImage, !0), !1), this.screenImage.addEventListener("error", this.onImageLoaded.bind(this, this.screenImage, !1), !1), this.bottomRightResizerElement = this.screenArea.createChild("div", "device-mode-resizer device-mode-bottom-right-resizer"), this.bottomRightResizerElement.createChild("div", ""), this.createResizer(this.bottomRightResizerElement, 2, 1), this.bottomLeftResizerElement = this.screenArea.createChild("div", "device-mode-resizer device-mode-bottom-left-resizer"), this.bottomLeftResizerElement.createChild("div", ""), this.createResizer(this.bottomLeftResizerElement, -2, 1), this.rightResizerElement = this.screenArea.createChild("div", "device-mode-resizer device-mode-right-resizer"), this.rightResizerElement.createChild("div", ""), this.createResizer(this.rightResizerElement, 2, 0), this.leftResizerElement = this.screenArea.createChild("div", "device-mode-resizer device-mode-left-resizer"), this.leftResizerElement.createChild("div", ""), this.createResizer(this.leftResizerElement, -2, 0), this.bottomResizerElement = this.screenArea.createChild("div", "device-mode-resizer device-mode-bottom-resizer"), this.bottomResizerElement.createChild("div", ""), this.createResizer(this.bottomResizerElement, 0, 1), this.bottomResizerElement.addEventListener("dblclick", this.model.setHeight.bind(this.model, 0), !1), se.install(this.bottomResizerElement, J(q.doubleclickForFullHeight)), this.pageArea = this.screenArea.createChild("div", "device-mode-page-area"), this.pageArea.createChild("slot");
|
|
862
|
+
}
|
|
863
|
+
populatePresetsContainer() {
|
|
864
|
+
let e = [
|
|
865
|
+
320,
|
|
866
|
+
375,
|
|
867
|
+
425,
|
|
868
|
+
768,
|
|
869
|
+
1024,
|
|
870
|
+
1440,
|
|
871
|
+
2560
|
|
872
|
+
], t = [
|
|
873
|
+
J(q.mobileS),
|
|
874
|
+
J(q.mobileM),
|
|
875
|
+
J(q.mobileL),
|
|
876
|
+
J(q.tablet),
|
|
877
|
+
J(q.laptop),
|
|
878
|
+
J(q.laptopL),
|
|
879
|
+
"4K"
|
|
880
|
+
];
|
|
881
|
+
this.presetBlocks = [];
|
|
882
|
+
let n = this.responsivePresetsContainer.createChild("div", "device-mode-presets-container-inner");
|
|
883
|
+
for (let i = e.length - 1; i >= 0; --i) {
|
|
884
|
+
let a = n.createChild("div", "fill device-mode-preset-bar-outer").createChild("div", "device-mode-preset-bar");
|
|
885
|
+
a.createChild("span").textContent = t[i] + " – " + e[i] + "px", a.setAttribute("jslog", `${F().track({ click: !0 }).context(`device-mode-preset-${e[i]}px`)}`), a.addEventListener("click", r.bind(this, e[i]), !1), this.blockElementToWidth.set(a, e[i]), this.presetBlocks.push(a);
|
|
886
|
+
}
|
|
887
|
+
function r(e, t) {
|
|
888
|
+
this.model.emulate(z.Responsive, null, null), this.model.setWidthAndScaleToFit(e), t.consume();
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
createResizer(e, t, n) {
|
|
892
|
+
let r = new fe();
|
|
893
|
+
e.setAttribute("jslog", `${ye("device-mode-resizer").track({ drag: !0 })}`), r.addElement(e);
|
|
894
|
+
let i = t ? "ew-resize" : "ns-resize";
|
|
895
|
+
return t * n > 0 && (i = "nwse-resize"), t * n < 0 && (i = "nesw-resize"), r.setCursor(i), r.addEventListener(N.RESIZE_START, this.onResizeStart, this), r.addEventListener(N.RESIZE_UPDATE_XY, this.onResizeUpdate.bind(this, t, n)), r.addEventListener(N.RESIZE_END, this.onResizeEnd, this), r;
|
|
896
|
+
}
|
|
897
|
+
onResizeStart() {
|
|
898
|
+
this.slowPositionStart = null;
|
|
899
|
+
let e = this.model.screenRect();
|
|
900
|
+
this.resizeStart = new R(e.width, e.height);
|
|
901
|
+
}
|
|
902
|
+
onResizeUpdate(e, t, n) {
|
|
903
|
+
n.data.shiftKey !== !!this.slowPositionStart && (this.slowPositionStart = n.data.shiftKey ? {
|
|
904
|
+
x: n.data.currentX,
|
|
905
|
+
y: n.data.currentY
|
|
906
|
+
} : null);
|
|
907
|
+
let r = n.data.currentX - n.data.startX, i = n.data.currentY - n.data.startY;
|
|
908
|
+
if (this.slowPositionStart && (r = (n.data.currentX - this.slowPositionStart.x) / 10 + this.slowPositionStart.x - n.data.startX, i = (n.data.currentY - this.slowPositionStart.y) / 10 + this.slowPositionStart.y - n.data.startY), e && this.resizeStart) {
|
|
909
|
+
let t = r * k.instance().zoomFactor(), n = this.resizeStart.width + t * e;
|
|
910
|
+
n = Math.round(n / this.model.scale()), n >= 50 && n <= 9999 && this.model.setWidth(n);
|
|
911
|
+
}
|
|
912
|
+
if (t && this.resizeStart) {
|
|
913
|
+
let e = i * k.instance().zoomFactor(), n = this.resizeStart.height + e * t;
|
|
914
|
+
n = Math.round(n / this.model.scale()), n >= 50 && n <= 9999 && this.model.setHeight(n);
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
exitHingeMode() {
|
|
918
|
+
this.model && this.model.exitHingeMode();
|
|
919
|
+
}
|
|
920
|
+
onResizeEnd() {
|
|
921
|
+
delete this.resizeStart, be.actionTaken(ge.ResizedViewInResponsiveMode);
|
|
922
|
+
}
|
|
923
|
+
updateUI() {
|
|
924
|
+
function e(e, t) {
|
|
925
|
+
e.style.left = t.left + "px", e.style.top = t.top + "px", e.style.width = t.width + "px", e.style.height = t.height + "px";
|
|
926
|
+
}
|
|
927
|
+
if (!this.isShowing()) return;
|
|
928
|
+
let t = k.instance().zoomFactor(), n = !1, r = this.showRulersSetting.get() && this.model.type() !== z.None, i = !1, a = !1, o = this.model.screenRect().scale(1 / t);
|
|
929
|
+
(!this.cachedCssScreenRect || !o.isEqual(this.cachedCssScreenRect)) && (e(this.screenArea, o), a = !0, n = !0, this.cachedCssScreenRect = o);
|
|
930
|
+
let s = this.model.visiblePageRect().scale(1 / t);
|
|
931
|
+
(!this.cachedCssVisiblePageRect || !s.isEqual(this.cachedCssVisiblePageRect)) && (e(this.pageArea, s), n = !0, this.cachedCssVisiblePageRect = s);
|
|
932
|
+
let c = this.model.outlineRect();
|
|
933
|
+
if (c) {
|
|
934
|
+
let r = c.scale(1 / t);
|
|
935
|
+
(!this.cachedOutlineRect || !r.isEqual(this.cachedOutlineRect)) && (e(this.outlineImage, r), n = !0, this.cachedOutlineRect = r);
|
|
936
|
+
}
|
|
937
|
+
this.contentClip.classList.toggle("device-mode-outline-visible", !!this.model.outlineImage());
|
|
938
|
+
let l = this.model.type() === z.Responsive;
|
|
939
|
+
l !== this.cachedResizable && (this.rightResizerElement.classList.toggle("hidden", !l), this.leftResizerElement.classList.toggle("hidden", !l), this.bottomResizerElement.classList.toggle("hidden", !l), this.bottomRightResizerElement.classList.toggle("hidden", !l), this.bottomLeftResizerElement.classList.toggle("hidden", !l), this.cachedResizable = l);
|
|
940
|
+
let u = this.showMediaInspectorSetting.get() && this.model.type() !== z.None;
|
|
941
|
+
if (u !== this.cachedMediaInspectorVisible && (u ? this.mediaInspector.show(this.mediaInspectorContainer) : this.mediaInspector.detach(), i = !0, n = !0, this.cachedMediaInspectorVisible = u), r !== this.cachedShowRulers && (this.contentClip.classList.toggle("device-mode-rulers-visible", r), r ? (this.topRuler.show(this.contentArea), this.leftRuler.show(this.contentArea)) : (this.topRuler.detach(), this.leftRuler.detach()), i = !0, n = !0, this.cachedShowRulers = r), this.model.scale() !== this.cachedScale) {
|
|
942
|
+
a = !0, n = !0;
|
|
943
|
+
for (let e of this.presetBlocks) {
|
|
944
|
+
let t = this.blockElementToWidth.get(e);
|
|
945
|
+
if (!t) throw Error("Could not get width for block.");
|
|
946
|
+
e.style.width = t * this.model.scale() + "px";
|
|
947
|
+
}
|
|
948
|
+
this.cachedScale = this.model.scale();
|
|
949
|
+
}
|
|
950
|
+
this.toolbar.requestUpdate(), this.loadImage(this.screenImage, this.model.screenImage()), this.loadImage(this.outlineImage, this.model.outlineImage()), this.mediaInspector.setAxisTransform(this.model.scale()), n && this.doResize(), a && (this.topRuler.render(this.model.scale()), this.leftRuler.render(this.model.scale()), this.topRuler.element.positionAt(this.cachedCssScreenRect ? this.cachedCssScreenRect.left : 0, this.cachedCssScreenRect ? this.cachedCssScreenRect.top : 0), this.leftRuler.element.positionAt(this.cachedCssScreenRect ? this.cachedCssScreenRect.left : 0, this.cachedCssScreenRect ? this.cachedCssScreenRect.top : 0)), i && this.contentAreaResized();
|
|
951
|
+
}
|
|
952
|
+
loadImage(e, t) {
|
|
953
|
+
e.getAttribute("srcset") !== t && (e.setAttribute("srcset", t), t || e.classList.toggle("hidden", !0));
|
|
954
|
+
}
|
|
955
|
+
onImageLoaded(e, t) {
|
|
956
|
+
e.classList.toggle("hidden", !t);
|
|
957
|
+
}
|
|
958
|
+
setNonEmulatedAvailableSize(e) {
|
|
959
|
+
if (this.model.type() !== z.None) return;
|
|
960
|
+
let t = k.instance().zoomFactor(), n = e.getBoundingClientRect(), r = new R(Math.max(n.width * t, 1), Math.max(n.height * t, 1));
|
|
961
|
+
this.model.setAvailableSize(r, r);
|
|
962
|
+
}
|
|
963
|
+
contentAreaResized() {
|
|
964
|
+
let e = k.instance().zoomFactor(), t = this.contentArea.getBoundingClientRect(), n = new R(Math.max(t.width * e, 1), Math.max(t.height * e, 1)), r = new R(Math.max((t.width - 2 * (this.handleWidth || 0)) * e, 1), Math.max((t.height - (this.handleHeight || 0)) * e, 1));
|
|
965
|
+
this.model.setAvailableSize(n, r);
|
|
966
|
+
}
|
|
967
|
+
measureHandles() {
|
|
968
|
+
let e = this.rightResizerElement.classList.contains("hidden");
|
|
969
|
+
this.rightResizerElement.classList.toggle("hidden", !1), this.bottomResizerElement.classList.toggle("hidden", !1), this.handleWidth = this.rightResizerElement.offsetWidth, this.handleHeight = this.bottomResizerElement.offsetHeight, this.rightResizerElement.classList.toggle("hidden", e), this.bottomResizerElement.classList.toggle("hidden", e);
|
|
970
|
+
}
|
|
971
|
+
zoomChanged() {
|
|
972
|
+
delete this.handleWidth, delete this.handleHeight, this.isShowing() && (this.measureHandles(), this.contentAreaResized());
|
|
973
|
+
}
|
|
974
|
+
onResize() {
|
|
975
|
+
this.isShowing() && this.contentAreaResized();
|
|
976
|
+
}
|
|
977
|
+
wasShown() {
|
|
978
|
+
super.wasShown(), this.measureHandles(), this.toolbar.restore();
|
|
979
|
+
}
|
|
980
|
+
willHide() {
|
|
981
|
+
super.willHide(), this.model.emulate(z.None, null, null);
|
|
982
|
+
}
|
|
983
|
+
async captureScreenshot() {
|
|
984
|
+
let e = await this.model.captureScreenshot(!1);
|
|
985
|
+
if (e === null) return;
|
|
986
|
+
let t = new Image();
|
|
987
|
+
t.src = "data:image/png;base64," + e, t.onload = async () => {
|
|
988
|
+
let e = t.naturalWidth / this.model.screenRect().width, n = this.model.outlineRect();
|
|
989
|
+
if (!n) throw Error("Unable to take screenshot: no outlineRect available.");
|
|
990
|
+
let r = n.scale(e), i = this.model.screenRect().scale(e), a = this.model.visiblePageRect().scale(e), o = i.left + a.left - r.left, s = i.top + a.top - r.top, c = document.createElement("canvas");
|
|
991
|
+
c.width = Math.floor(r.width), c.height = Math.min(16384, Math.floor(r.height));
|
|
992
|
+
let l = c.getContext("2d", { willReadFrequently: !0 });
|
|
993
|
+
if (!l) throw Error("Could not get 2d context from canvas.");
|
|
994
|
+
l.imageSmoothingEnabled = !1, this.model.outlineImage() && await this.paintImage(l, this.model.outlineImage(), r.relativeTo(r)), this.model.screenImage() && await this.paintImage(l, this.model.screenImage(), i.relativeTo(r)), l.drawImage(t, Math.floor(o), Math.floor(s)), this.saveScreenshot(c);
|
|
995
|
+
};
|
|
996
|
+
}
|
|
997
|
+
async captureFullSizeScreenshot() {
|
|
998
|
+
let e = await this.model.captureScreenshot(!0);
|
|
999
|
+
if (e !== null) return this.saveScreenshotBase64(e);
|
|
1000
|
+
}
|
|
1001
|
+
async captureAreaScreenshot(e) {
|
|
1002
|
+
let t = await this.model.captureScreenshot(!1, e);
|
|
1003
|
+
if (t !== null) return this.saveScreenshotBase64(t);
|
|
1004
|
+
}
|
|
1005
|
+
saveScreenshotBase64(e) {
|
|
1006
|
+
let t = new Image();
|
|
1007
|
+
t.src = "data:image/png;base64," + e, t.onload = () => {
|
|
1008
|
+
let e = document.createElement("canvas");
|
|
1009
|
+
e.width = t.naturalWidth, e.height = Math.min(16384, Math.floor(t.naturalHeight));
|
|
1010
|
+
let n = e.getContext("2d", { willReadFrequently: !0 });
|
|
1011
|
+
if (!n) throw Error("Could not get 2d context for base64 screenshot.");
|
|
1012
|
+
n.imageSmoothingEnabled = !1, n.drawImage(t, 0, 0), this.saveScreenshot(e);
|
|
1013
|
+
};
|
|
1014
|
+
}
|
|
1015
|
+
paintImage(e, t, n) {
|
|
1016
|
+
return new Promise((r) => {
|
|
1017
|
+
let i = new Image();
|
|
1018
|
+
i.crossOrigin = "Anonymous", i.srcset = t, i.onerror = () => r(), i.onload = () => {
|
|
1019
|
+
e.drawImage(i, n.left, n.top, n.width, n.height), r();
|
|
1020
|
+
};
|
|
1021
|
+
});
|
|
1022
|
+
}
|
|
1023
|
+
saveScreenshot(e) {
|
|
1024
|
+
let t = this.model.inspectedURL(), i = "";
|
|
1025
|
+
t && (i = n(r(t)));
|
|
1026
|
+
let a = this.model.device();
|
|
1027
|
+
a && this.model.type() === z.Device && (i += `(${a.title})`);
|
|
1028
|
+
let o = document.createElement("a");
|
|
1029
|
+
o.download = i + ".png", e.toBlob((e) => {
|
|
1030
|
+
e !== null && (o.href = URL.createObjectURL(e), o.click());
|
|
1031
|
+
});
|
|
1032
|
+
}
|
|
1033
|
+
}, X = class extends P {
|
|
1034
|
+
#e;
|
|
1035
|
+
horizontal;
|
|
1036
|
+
scale;
|
|
1037
|
+
count;
|
|
1038
|
+
throttler;
|
|
1039
|
+
applyCallback;
|
|
1040
|
+
renderedScale;
|
|
1041
|
+
renderedZoomFactor;
|
|
1042
|
+
constructor(e, t) {
|
|
1043
|
+
super({ jslog: `${te().track({ click: !0 })}` }), this.element.classList.add("device-mode-ruler"), this.#e = this.element.createChild("div", "device-mode-ruler-content").createChild("div", "device-mode-ruler-inner"), this.horizontal = e, this.scale = 1, this.count = 0, this.throttler = new u(0), this.applyCallback = t;
|
|
1044
|
+
}
|
|
1045
|
+
render(e) {
|
|
1046
|
+
this.scale = e, this.throttler.schedule(this.update.bind(this));
|
|
1047
|
+
}
|
|
1048
|
+
onResize() {
|
|
1049
|
+
this.throttler.schedule(this.update.bind(this));
|
|
1050
|
+
}
|
|
1051
|
+
update() {
|
|
1052
|
+
let e = k.instance().zoomFactor(), t = this.horizontal ? this.#e.offsetWidth : this.#e.offsetHeight;
|
|
1053
|
+
(this.scale !== this.renderedScale || e !== this.renderedZoomFactor) && (this.#e.removeChildren(), this.count = 0, this.renderedScale = this.scale, this.renderedZoomFactor = e);
|
|
1054
|
+
let n = t * e / this.scale, r = Math.ceil(n / 5), i = 1;
|
|
1055
|
+
this.scale < .8 && (i = 2), this.scale < .6 && (i = 4), this.scale < .4 && (i = 8), this.scale < .2 && (i = 16), this.scale < .1 && (i = 32);
|
|
1056
|
+
for (let e = r; e < this.count; e++) if (!(e % i)) {
|
|
1057
|
+
let e = this.#e.lastChild;
|
|
1058
|
+
e && e.remove();
|
|
1059
|
+
}
|
|
1060
|
+
for (let t = this.count; t < r; t++) {
|
|
1061
|
+
if (t % i) continue;
|
|
1062
|
+
let n = this.#e.createChild("div", "device-mode-ruler-marker");
|
|
1063
|
+
if (t && (this.horizontal ? n.style.left = 5 * t * this.scale / e + "px" : n.style.top = 5 * t * this.scale / e + "px", !(t % 20))) {
|
|
1064
|
+
let e = n.createChild("div", "device-mode-ruler-text");
|
|
1065
|
+
e.textContent = String(t * 5), e.addEventListener("click", this.onMarkerClick.bind(this, t * 5), !1);
|
|
1066
|
+
}
|
|
1067
|
+
t % 10 ? t % 5 || n.classList.add("device-mode-ruler-marker-medium") : n.classList.add("device-mode-ruler-marker-large");
|
|
1068
|
+
}
|
|
1069
|
+
this.count = r;
|
|
1070
|
+
}
|
|
1071
|
+
onMarkerClick(e) {
|
|
1072
|
+
this.applyCallback.call(null, e);
|
|
1073
|
+
}
|
|
1074
|
+
}, lt = /* @__PURE__ */ e({
|
|
1075
|
+
ActionDelegate: () => dt,
|
|
1076
|
+
DeviceModeWrapper: () => Z
|
|
1077
|
+
}), ut, Z = class e extends P {
|
|
1078
|
+
inspectedPagePlaceholder;
|
|
1079
|
+
deviceModeView;
|
|
1080
|
+
toggleDeviceModeAction;
|
|
1081
|
+
showDeviceModeSetting;
|
|
1082
|
+
constructor(e) {
|
|
1083
|
+
super(), this.inspectedPagePlaceholder = e, this.deviceModeView = null, this.toggleDeviceModeAction = ve.instance().getAction("emulation.toggle-device-mode");
|
|
1084
|
+
let t = Fe.instance();
|
|
1085
|
+
this.showDeviceModeSetting = t.enabledSetting(), this.showDeviceModeSetting.setRequiresUserAction(!!f.queryParam("hasOtherClients")), this.showDeviceModeSetting.addChangeListener(this.update.bind(this, !1)), T.instance().addModelListener(we, he.SCREENSHOT_REQUESTED, this.screenshotRequestedFromOverlay, this), this.update(!0);
|
|
1086
|
+
}
|
|
1087
|
+
static instance(t = {
|
|
1088
|
+
forceNew: null,
|
|
1089
|
+
inspectedPagePlaceholder: null
|
|
1090
|
+
}) {
|
|
1091
|
+
let { forceNew: n, inspectedPagePlaceholder: r } = t;
|
|
1092
|
+
if (!ut || n) {
|
|
1093
|
+
if (!r) throw Error(`Unable to create DeviceModeWrapper: inspectedPagePlaceholder must be provided: ${(/* @__PURE__ */ Error()).stack}`);
|
|
1094
|
+
ut = new e(r);
|
|
1095
|
+
}
|
|
1096
|
+
return ut;
|
|
1097
|
+
}
|
|
1098
|
+
toggleDeviceMode() {
|
|
1099
|
+
this.showDeviceModeSetting.set(!this.showDeviceModeSetting.get());
|
|
1100
|
+
}
|
|
1101
|
+
isDeviceModeOn() {
|
|
1102
|
+
return this.showDeviceModeSetting.get();
|
|
1103
|
+
}
|
|
1104
|
+
captureScreenshot(e, t) {
|
|
1105
|
+
return this.deviceModeView ||= new Y(), this.deviceModeView.setNonEmulatedAvailableSize(this.inspectedPagePlaceholder.element), e ? this.deviceModeView.captureFullSizeScreenshot() : t ? this.deviceModeView.captureAreaScreenshot(t) : this.deviceModeView.captureScreenshot(), !0;
|
|
1106
|
+
}
|
|
1107
|
+
screenshotRequestedFromOverlay(e) {
|
|
1108
|
+
let t = e.data;
|
|
1109
|
+
this.captureScreenshot(!1, t);
|
|
1110
|
+
}
|
|
1111
|
+
update(e) {
|
|
1112
|
+
this.toggleDeviceModeAction.setToggled(this.showDeviceModeSetting.get());
|
|
1113
|
+
let t = this.showDeviceModeSetting.get();
|
|
1114
|
+
!e && t === this.deviceModeView?.isShowing() || (t ? (this.deviceModeView ||= new Y(), this.deviceModeView.show(this.element), this.inspectedPagePlaceholder.clearMinimumSize(), this.inspectedPagePlaceholder.show(this.deviceModeView.element)) : (this.deviceModeView && (this.deviceModeView.exitHingeMode(), this.deviceModeView.detach()), this.inspectedPagePlaceholder.restoreMinimumSize(), this.inspectedPagePlaceholder.show(this.element)));
|
|
1115
|
+
}
|
|
1116
|
+
}, dt = class {
|
|
1117
|
+
handleAction(e, t) {
|
|
1118
|
+
switch (t) {
|
|
1119
|
+
case "emulation.capture-screenshot": return Z.instance().captureScreenshot();
|
|
1120
|
+
case "emulation.capture-node-screenshot": {
|
|
1121
|
+
let t = e.flavor(xe);
|
|
1122
|
+
if (!t) return !0;
|
|
1123
|
+
async function n() {
|
|
1124
|
+
if (!t || !await t.resolveToObject()) return;
|
|
1125
|
+
let e = await t.boxModel();
|
|
1126
|
+
if (!e) throw Error(`Unable to get box model of the node: ${(/* @__PURE__ */ Error()).stack}`);
|
|
1127
|
+
let n = e.border, r = await t.domModel().target().pageAgent().invoke_getLayoutMetrics();
|
|
1128
|
+
if (r.getError()) throw Error(`Unable to get metrics: ${(/* @__PURE__ */ Error()).stack}`);
|
|
1129
|
+
let i = r.cssVisualViewport.pageX, a = r.cssVisualViewport.pageY, { x: o, y: s } = await ft(t.domModel().target()), c = {
|
|
1130
|
+
x: o + i + n[0],
|
|
1131
|
+
y: s + a + n[1],
|
|
1132
|
+
width: e.width,
|
|
1133
|
+
height: e.height,
|
|
1134
|
+
scale: 1
|
|
1135
|
+
}, l = r.cssVisualViewport.zoom ?? 1;
|
|
1136
|
+
c.x *= l, c.y *= l, c.width *= l, c.height *= l, Z.instance().captureScreenshot(!1, c);
|
|
1137
|
+
}
|
|
1138
|
+
return n(), !0;
|
|
1139
|
+
}
|
|
1140
|
+
case "emulation.capture-full-height-screenshot": return Z.instance().captureScreenshot(!0);
|
|
1141
|
+
case "emulation.toggle-device-mode": return Z.instance().toggleDeviceMode(), !0;
|
|
1142
|
+
}
|
|
1143
|
+
return !1;
|
|
1144
|
+
}
|
|
1145
|
+
};
|
|
1146
|
+
async function ft(e) {
|
|
1147
|
+
if (!e) return {
|
|
1148
|
+
x: 0,
|
|
1149
|
+
y: 0
|
|
1150
|
+
};
|
|
1151
|
+
let t = e.parentTarget();
|
|
1152
|
+
if (!t || t.type() !== ee.FRAME) return {
|
|
1153
|
+
x: 0,
|
|
1154
|
+
y: 0
|
|
1155
|
+
};
|
|
1156
|
+
let n = e.model(ce)?.mainFrame?.id;
|
|
1157
|
+
if (!n) return {
|
|
1158
|
+
x: 0,
|
|
1159
|
+
y: 0
|
|
1160
|
+
};
|
|
1161
|
+
let r = t.model(Se);
|
|
1162
|
+
if (!r) return {
|
|
1163
|
+
x: 0,
|
|
1164
|
+
y: 0
|
|
1165
|
+
};
|
|
1166
|
+
let i = await (await r.getOwnerNodeForFrame(n))?.resolvePromise();
|
|
1167
|
+
if (!i) return {
|
|
1168
|
+
x: 0,
|
|
1169
|
+
y: 0
|
|
1170
|
+
};
|
|
1171
|
+
let a = await i.boxModel();
|
|
1172
|
+
if (!a) return {
|
|
1173
|
+
x: 0,
|
|
1174
|
+
y: 0
|
|
1175
|
+
};
|
|
1176
|
+
let o = a.content, s = o[0], c = o[1], l = await t.pageAgent().invoke_getLayoutMetrics();
|
|
1177
|
+
if (l.getError()) return {
|
|
1178
|
+
x: 0,
|
|
1179
|
+
y: 0
|
|
1180
|
+
};
|
|
1181
|
+
let u = l.cssVisualViewport.pageX, d = l.cssVisualViewport.pageY, f = await ft(t);
|
|
1182
|
+
return {
|
|
1183
|
+
x: s + u + f.x,
|
|
1184
|
+
y: c + d + f.y
|
|
1185
|
+
};
|
|
1186
|
+
}
|
|
1187
|
+
//#endregion
|
|
1188
|
+
//#region \0qilin-devtools:css:/home/runner/work/QiLin/QiLin/node_modules/.pnpm/chrome-devtools-frontend@1.0.1638082/node_modules/chrome-devtools-frontend/front_end/panels/emulation/inspectedPagePlaceholder.css.mjs
|
|
1189
|
+
var pt = "/*\n * Copyright 2016 The Chromium Authors\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n:host {\n background-color: var(--sys-color-cdt-base-container);\n}\n", mt = /* @__PURE__ */ e({
|
|
1190
|
+
Events: () => _t,
|
|
1191
|
+
InspectedPagePlaceholder: () => gt
|
|
1192
|
+
}), ht, gt = class e extends l(L) {
|
|
1193
|
+
updateId;
|
|
1194
|
+
constructor() {
|
|
1195
|
+
super({ useShadowDom: !0 }), this.registerRequiredCSS(pt), k.instance().addEventListener(j.ZOOM_CHANGED, this.onResize, this), this.restoreMinimumSize();
|
|
1196
|
+
}
|
|
1197
|
+
static instance(t = { forceNew: null }) {
|
|
1198
|
+
let { forceNew: n } = t;
|
|
1199
|
+
return (!ht || n) && (ht = new e()), ht;
|
|
1200
|
+
}
|
|
1201
|
+
onResize() {
|
|
1202
|
+
this.updateId && this.element.window().cancelAnimationFrame(this.updateId), this.updateId = this.element.window().requestAnimationFrame(this.update.bind(this, !1));
|
|
1203
|
+
}
|
|
1204
|
+
restoreMinimumSize() {
|
|
1205
|
+
this.setMinimumSize(150, 150);
|
|
1206
|
+
}
|
|
1207
|
+
clearMinimumSize() {
|
|
1208
|
+
this.setMinimumSize(1, 1);
|
|
1209
|
+
}
|
|
1210
|
+
dipPageRect() {
|
|
1211
|
+
let e = k.instance().zoomFactor(), t = this.element.getBoundingClientRect(), n = this.element.ownerDocument.body.getBoundingClientRect(), r = Math.max(t.left * e, n.left * e), i = Math.max(t.top * e, n.top * e), a = Math.min(t.bottom * e, n.bottom * e);
|
|
1212
|
+
return {
|
|
1213
|
+
x: r,
|
|
1214
|
+
y: i,
|
|
1215
|
+
width: Math.min(t.right * e, n.right * e) - r,
|
|
1216
|
+
height: a - i
|
|
1217
|
+
};
|
|
1218
|
+
}
|
|
1219
|
+
update(e) {
|
|
1220
|
+
delete this.updateId;
|
|
1221
|
+
let t = this.dipPageRect(), n = {
|
|
1222
|
+
x: Math.round(t.x),
|
|
1223
|
+
y: Math.round(t.y),
|
|
1224
|
+
height: Math.max(1, Math.round(t.height)),
|
|
1225
|
+
width: Math.max(1, Math.round(t.width))
|
|
1226
|
+
};
|
|
1227
|
+
e && (--n.height, this.dispatchEventToListeners("Update", n), ++n.height), this.dispatchEventToListeners("Update", n);
|
|
1228
|
+
}
|
|
1229
|
+
}, _t = /* @__PURE__ */ function(e) {
|
|
1230
|
+
return e.UPDATE = "Update", e;
|
|
1231
|
+
}({}), vt = /* @__PURE__ */ e({
|
|
1232
|
+
AdvancedApp: () => Q,
|
|
1233
|
+
AdvancedAppProvider: () => bt
|
|
1234
|
+
}), yt, Q = class e {
|
|
1235
|
+
rootSplitWidget;
|
|
1236
|
+
deviceModeView;
|
|
1237
|
+
inspectedPagePlaceholder;
|
|
1238
|
+
toolboxWindow;
|
|
1239
|
+
toolboxRootView;
|
|
1240
|
+
changingDockSide;
|
|
1241
|
+
constructor() {
|
|
1242
|
+
y.instance().addEventListener(w.BEFORE_DOCK_SIDE_CHANGED, this.openToolboxWindow, this);
|
|
1243
|
+
}
|
|
1244
|
+
static instance() {
|
|
1245
|
+
return yt ||= new e(), yt;
|
|
1246
|
+
}
|
|
1247
|
+
presentUI(e) {
|
|
1248
|
+
let t = new Ee();
|
|
1249
|
+
this.rootSplitWidget = new ue(!1, !0, "inspector-view.split-view-state", 555, 300, !0), this.rootSplitWidget.show(t.element), this.rootSplitWidget.setSidebarWidget(D.instance()), this.rootSplitWidget.setDefaultFocusedChild(D.instance()), D.instance().setOwnerSplit(this.rootSplitWidget), this.inspectedPagePlaceholder = gt.instance(), this.inspectedPagePlaceholder.addEventListener(_t.UPDATE, this.onSetInspectedPageBounds.bind(this), this), this.deviceModeView = Z.instance({
|
|
1250
|
+
inspectedPagePlaceholder: this.inspectedPagePlaceholder,
|
|
1251
|
+
forceNew: !1
|
|
1252
|
+
}), y.instance().addEventListener(w.BEFORE_DOCK_SIDE_CHANGED, this.onBeforeDockSideChange, this), y.instance().addEventListener(w.DOCK_SIDE_CHANGED, this.onDockSideChange, this), y.instance().addEventListener(w.AFTER_DOCK_SIDE_CHANGED, this.onAfterDockSideChange, this), this.onDockSideChange(), console.timeStamp("AdvancedApp.attachToBody"), t.attachToDocument(e), t.focus(), this.inspectedPagePlaceholder.update();
|
|
1253
|
+
}
|
|
1254
|
+
openToolboxWindow(e) {
|
|
1255
|
+
if (e.data.to !== x.UNDOCKED || this.toolboxWindow) return;
|
|
1256
|
+
let t = window.location.href.replace("devtools_app.html", "device_mode_emulation_frame.html");
|
|
1257
|
+
this.toolboxWindow = window.open(t, void 0);
|
|
1258
|
+
}
|
|
1259
|
+
deviceModeEmulationFrameLoaded(e) {
|
|
1260
|
+
Le.instance().addDocumentToTheme(e), g(e), m(e.documentElement), me(e.body), M.installHandler(e), this.toolboxRootView = new Ee(), this.toolboxRootView.attachToDocument(e), this.updateDeviceModeView();
|
|
1261
|
+
}
|
|
1262
|
+
updateDeviceModeView() {
|
|
1263
|
+
this.isDocked() ? this.rootSplitWidget.setMainWidget(this.deviceModeView) : this.toolboxRootView && this.deviceModeView.show(this.toolboxRootView.element);
|
|
1264
|
+
}
|
|
1265
|
+
onBeforeDockSideChange(e) {
|
|
1266
|
+
e.data.to === x.UNDOCKED && this.toolboxRootView && (this.rootSplitWidget.hideSidebar(), this.inspectedPagePlaceholder.update()), this.changingDockSide = !0;
|
|
1267
|
+
}
|
|
1268
|
+
onDockSideChange(e) {
|
|
1269
|
+
this.updateDeviceModeView();
|
|
1270
|
+
let t = e ? e.data.to : y.instance().dockSide();
|
|
1271
|
+
if (t === void 0) throw Error("Got onDockSideChange event with unexpected undefined for dockSide()");
|
|
1272
|
+
t === x.UNDOCKED ? this.updateForUndocked() : this.toolboxRootView && e && e.data.from === x.UNDOCKED ? this.rootSplitWidget.hideSidebar() : this.updateForDocked(t);
|
|
1273
|
+
}
|
|
1274
|
+
onAfterDockSideChange(e) {
|
|
1275
|
+
this.changingDockSide && (e.data.from && e.data.from === x.UNDOCKED && this.updateForDocked(e.data.to), this.changingDockSide = !1, this.inspectedPagePlaceholder.update());
|
|
1276
|
+
}
|
|
1277
|
+
updateForDocked(e) {
|
|
1278
|
+
let t = this.rootSplitWidget.resizerElement();
|
|
1279
|
+
t.style.transform = e === x.RIGHT ? "translateX(2px)" : e === x.LEFT ? "translateX(-2px)" : "", this.rootSplitWidget.setVertical(e === x.RIGHT || e === x.LEFT), this.rootSplitWidget.setSecondIsSidebar(e === x.RIGHT || e === x.BOTTOM), this.rootSplitWidget.toggleResizer(this.rootSplitWidget.resizerElement(), !0), this.rootSplitWidget.toggleResizer(D.instance().topResizerElement(), e === x.BOTTOM), this.rootSplitWidget.showBoth();
|
|
1280
|
+
}
|
|
1281
|
+
updateForUndocked() {
|
|
1282
|
+
this.rootSplitWidget.toggleResizer(this.rootSplitWidget.resizerElement(), !1), this.rootSplitWidget.toggleResizer(D.instance().topResizerElement(), !1), this.rootSplitWidget.hideMain();
|
|
1283
|
+
}
|
|
1284
|
+
isDocked() {
|
|
1285
|
+
return y.instance().dockSide() !== x.UNDOCKED;
|
|
1286
|
+
}
|
|
1287
|
+
onSetInspectedPageBounds(e) {
|
|
1288
|
+
if (this.changingDockSide) return;
|
|
1289
|
+
let t = this.inspectedPagePlaceholder.element.window();
|
|
1290
|
+
if (!t.innerWidth || !t.innerHeight || !this.inspectedPagePlaceholder.isShowing()) return;
|
|
1291
|
+
let n = e.data;
|
|
1292
|
+
console.timeStamp("AdvancedApp.setInspectedPageBounds"), A.setInspectedPageBounds(n);
|
|
1293
|
+
}
|
|
1294
|
+
};
|
|
1295
|
+
globalThis.Emulation = globalThis.Emulation || {}, globalThis.Emulation.AdvancedApp = Q;
|
|
1296
|
+
var $, bt = class e {
|
|
1297
|
+
static instance(t = { forceNew: null }) {
|
|
1298
|
+
let { forceNew: n } = t;
|
|
1299
|
+
return (!$ || n) && ($ = new e()), $;
|
|
1300
|
+
}
|
|
1301
|
+
createApp() {
|
|
1302
|
+
return Q.instance();
|
|
1303
|
+
}
|
|
1304
|
+
};
|
|
1305
|
+
//#endregion
|
|
1306
|
+
export { Z as a, Xe as c, dt as i, Be as l, gt as n, lt as o, mt as r, st as s, vt as t };
|