simdeck 0.1.3 → 0.1.5
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.md +41 -17
- package/build/simdeck-bin +0 -0
- package/client/dist/assets/index-D2-CFde1.css +1 -0
- package/client/dist/assets/index-E1gIgaOR.js +9 -0
- package/client/dist/chrome-devtools-ui/Images/3d-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/3d-pan.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/3d-rotate.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/Images.js +296 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-back.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-bottom.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-front.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-left.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-right.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-top.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/account-tree.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-space-around.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-space-between.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-space-evenly.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-baseline.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/animation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-back.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-collapse.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-dark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-light.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-drop-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-forward.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-right-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-up-down-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-up-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bell.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bezier-curve-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bin.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bottom-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bottom-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brackets.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/breakpoint-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brush-2.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brush-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brush.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bug.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bundle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/button-magic.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/calendar-today.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/center-focus-weak.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/check-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/check-double.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/checker.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/checkmark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-double-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-left-dot.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-left.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chromeLeft.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/chromeMiddle.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/chromeRight.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/class.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/clear-list.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/clear.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cloud.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/code-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/code.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/colon.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/color-picker-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/color-picker.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/compress.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/console-conditional-breakpoint.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/console-logpoint.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cookie.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cookie_off.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/copy.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/corporate-fare.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/credit-card.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cross-circle-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cross-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cross.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cssoverview_icons_2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/custom-typography.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/database.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/deployed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/device-fold.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devices.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devtools-thumbnail.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devtools-tips.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devtools.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/difference.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-bottom.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-left.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-window.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/document.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dog-paw.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/domain.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dots-horizontal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dots-vertical.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/download.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/edit.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/empty.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/errorWave.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/exclamation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/experiment-check.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/experiment.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/extension.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/eye.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/favicon.ico +0 -0
- package/client/dist/chrome-devtools-ui/Images/file-document.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-fetch-xhr.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-font.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-generic.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-image.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-json.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-manifest.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-media.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-script.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-snippet.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-stylesheet.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-wasm.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-websocket.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/filter-clear.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/filter-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/filter.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flex-direction.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flex-no-wrap.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flex-wrap.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flow.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/fold-more.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/folder.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/frame-crossed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/frame-icon.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/frame.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/gear-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/gear.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/gears.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/global.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/google.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/goto-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/grid-on.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/group.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/heap-snapshot.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/heap-snapshots.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/help.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/history.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/home.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/hover.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/iframe-crossed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/iframe.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/import.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/indeterminate-question-box.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/info-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/info.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-cross-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-exclamation-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-questionmark-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-text-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-space-around.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-space-between.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-space-evenly.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard-arrow-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard-full.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard-pen.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/label.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/large-arrow-right-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/layers-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/layers.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/left-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/left-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lightbulb-spark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lightbulb.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lighthouse_logo.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/list.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/location-on.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lock.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/match-case.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/match-whole-word.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/memory.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/minus.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/mop.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/mouse.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/navigationControls.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/navigationControls_2x.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/network-settings.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/node-stack-icon.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/nodeIcon.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/open-externally.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/override.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/palette.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/pause-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/pause.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/pen-spark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-delete-annotation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-diagram.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-entry-label.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-time-range.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/person.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/photo-camera.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/play.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/plus.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/policy.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/popoverArrows.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/popup.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/preview_feature_video_thumbnail.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/profile.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/psychiatry.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/learn-debugging-basics.jpg +0 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/learn-native-debugging.jpg +0 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/learn-react-native-devtools.jpg +0 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/welcomeIcon.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/record-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/record-stop.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/redo.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/refresh.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/regular-expression.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/replace.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/replay.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/report.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resizeDiagonal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resizeHorizontal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resizeVertical.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resume.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/review.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/right-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/right-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/scissors.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/screen-rotation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/search.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/select-element.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/send.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/shadow.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/small-status-dot.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/smart-assistant.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/snippet.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/spark-info.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/star.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step-into.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step-out.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step-over.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/stop.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/symbol.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/sync.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/table.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/terminal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-down-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-up-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/tonality.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/toolbarResizerVertical.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/top-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/top-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/touch-app.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/touchCursor.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/touchCursor_2x.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-bottom-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-left.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/tune.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/undo.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/warning-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/warning.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/watch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/whatsnew.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/width.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/zoom-in.svg +1 -0
- package/client/dist/chrome-devtools-ui/Tests.js +1700 -0
- package/client/dist/chrome-devtools-ui/application_tokens.css +407 -0
- package/client/dist/chrome-devtools-ui/core/common/common.js +1 -0
- package/client/dist/chrome-devtools-ui/core/dom_extension/dom_extension.js +1 -0
- package/client/dist/chrome-devtools-ui/core/host/host.js +1 -0
- package/client/dist/chrome-devtools-ui/core/i18n/i18n.js +1 -0
- package/client/dist/chrome-devtools-ui/core/i18n/locales/en-US.json +1 -0
- package/client/dist/chrome-devtools-ui/core/i18n/locales/zh.json +1 -0
- package/client/dist/chrome-devtools-ui/core/platform/platform.js +1 -0
- package/client/dist/chrome-devtools-ui/core/protocol_client/protocol_client.js +1 -0
- package/client/dist/chrome-devtools-ui/core/rn_experiments/rn_experiments.js +1 -0
- package/client/dist/chrome-devtools-ui/core/root/root.js +1 -0
- package/client/dist/chrome-devtools-ui/core/sdk/sdk-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/core/sdk/sdk.js +1 -0
- package/client/dist/chrome-devtools-ui/design_system_tokens.css +782 -0
- package/client/dist/chrome-devtools-ui/device_mode_emulation_frame.html +24 -0
- package/client/dist/chrome-devtools-ui/devtools_app.html +24 -0
- package/client/dist/chrome-devtools-ui/devtools_compatibility.js +1741 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/devtools_app/devtools_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/FormatterActions.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/inspector/inspector.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/js_app/js_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/main/main-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/main/main.js +48 -0
- package/client/dist/chrome-devtools-ui/entrypoints/ndb_app/ndb_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/node_app/node_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/rn_fusebox/rn_fusebox.js +24 -0
- package/client/dist/chrome-devtools-ui/entrypoints/shell/shell.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/worker_app/worker_app.js +1 -0
- package/client/dist/chrome-devtools-ui/inspector.html +24 -0
- package/client/dist/chrome-devtools-ui/integration_test_runner.html +40 -0
- package/client/dist/chrome-devtools-ui/js_app.html +24 -0
- package/client/dist/chrome-devtools-ui/legacy_test_runner/legacy_test_runner.js +13 -0
- package/client/dist/chrome-devtools-ui/legacy_test_runner/test_runner/test_runner.js +1 -0
- package/client/dist/chrome-devtools-ui/models/ai_assistance/ai_assistance.js +1 -0
- package/client/dist/chrome-devtools-ui/models/autofill_manager/autofill_manager.js +1 -0
- package/client/dist/chrome-devtools-ui/models/bindings/bindings.js +1 -0
- package/client/dist/chrome-devtools-ui/models/breakpoints/breakpoints.js +1 -0
- package/client/dist/chrome-devtools-ui/models/cpu_profile/cpu_profile.js +1 -0
- package/client/dist/chrome-devtools-ui/models/crux-manager/crux-manager.js +1 -0
- package/client/dist/chrome-devtools-ui/models/emulation/emulation.js +1 -0
- package/client/dist/chrome-devtools-ui/models/extensions/extensions.js +1 -0
- package/client/dist/chrome-devtools-ui/models/formatter/formatter.js +1 -0
- package/client/dist/chrome-devtools-ui/models/har/har.js +1 -0
- package/client/dist/chrome-devtools-ui/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/LowTextContrast.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInsecureContext.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspURLViolation.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/deprecation.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/heavyAd.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/mixedContent.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/issues_manager.js +1 -0
- package/client/dist/chrome-devtools-ui/models/javascript_metadata/javascript_metadata.js +1 -0
- package/client/dist/chrome-devtools-ui/models/live-metrics/live-metrics.js +1 -0
- package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
- package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
- package/client/dist/chrome-devtools-ui/models/logs/logs-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/models/logs/logs.js +1 -0
- package/client/dist/chrome-devtools-ui/models/persistence/persistence-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/models/persistence/persistence.js +1 -0
- package/client/dist/chrome-devtools-ui/models/project_settings/project_settings.js +1 -0
- package/client/dist/chrome-devtools-ui/models/react_native/react_native.js +1 -0
- package/client/dist/chrome-devtools-ui/models/source_map_scopes/source_map_scopes.js +1 -0
- package/client/dist/chrome-devtools-ui/models/text_utils/text_utils.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/extras/extras.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/handlers/handlers.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/helpers/helpers.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/insights/insights.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/core/core.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/graph/graph.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/lantern.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/metrics/metrics.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/simulation/simulation.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/types/types.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/trace.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/types/types.js +1 -0
- package/client/dist/chrome-devtools-ui/models/workspace/workspace.js +1 -0
- package/client/dist/chrome-devtools-ui/models/workspace_diff/workspace_diff.js +1 -0
- package/client/dist/chrome-devtools-ui/ndb_app.html +24 -0
- package/client/dist/chrome-devtools-ui/node_app.html +24 -0
- package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance.js +512 -0
- package/client/dist/chrome-devtools-ui/panels/animation/animation-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/animation/animation.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/application/application-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/application/application.js +107 -0
- package/client/dist/chrome-devtools-ui/panels/application/components/components.js +765 -0
- package/client/dist/chrome-devtools-ui/panels/application/preloading/components/components.js +362 -0
- package/client/dist/chrome-devtools-ui/panels/application/preloading/helper/helper.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/autofill/autofill-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/autofill/autofill.js +107 -0
- package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/changes/changes-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/changes/changes.js +31 -0
- package/client/dist/chrome-devtools-ui/panels/common/common.js +45 -0
- package/client/dist/chrome-devtools-ui/panels/console/console-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/console/console.js +6 -0
- package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/coverage/coverage-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/coverage/coverage.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/css_overview/components/components.js +23 -0
- package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview.js +148 -0
- package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources.js +48 -0
- package/client/dist/chrome-devtools-ui/panels/elements/components/components.js +250 -0
- package/client/dist/chrome-devtools-ui/panels/elements/elements-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/elements/elements.js +67 -0
- package/client/dist/chrome-devtools-ui/panels/emulation/components/components.js +39 -0
- package/client/dist/chrome-devtools-ui/panels/emulation/emulation-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/emulation/emulation.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/event_listeners/event_listeners.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/explain/explain-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/explain/explain.js +231 -0
- package/client/dist/chrome-devtools-ui/panels/issues/components/components.js +14 -0
- package/client/dist/chrome-devtools-ui/panels/issues/issues-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/issues/issues.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline.js +2 -0
- package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/layers/layers-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/layers/layers.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse.js +65 -0
- package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/components/components.js +179 -0
- package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/media/media-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/media/media.js +25 -0
- package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/network/components/components.js +346 -0
- package/client/dist/chrome-devtools-ui/panels/network/forward/forward.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/network/network-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/network/network.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/profiler/profiler-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/profiler/profiler.js +8 -0
- package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor.js +293 -0
- package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_components-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_profiler-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/components/components.js +686 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/controllers/controllers.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/converters/converters.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/extensions/extensions.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.generated.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/models/models.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/recorder-actions/recorder-actions.js +3 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/recorder-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/recorder.js +126 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/util/util.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome.js +62 -0
- package/client/dist/chrome-devtools-ui/panels/screencast/screencast-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/screencast/screencast.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/search/search.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/security/security-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/security/security.js +178 -0
- package/client/dist/chrome-devtools-ui/panels/sensors/sensors-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/sensors/sensors.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/components/components.js +22 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/components/components.js +221 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/settings-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/settings.js +91 -0
- package/client/dist/chrome-devtools-ui/panels/snippets/snippets.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/sources/components/components.js +162 -0
- package/client/dist/chrome-devtools-ui/panels/sources/sources-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/sources/sources.js +2 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/components/components.js +1063 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/components/insights/insights.js +262 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/extensions/extensions.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/overlays/components/components.js +190 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/overlays/overlays.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/timeline-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/timeline.js +43 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio.js +19 -0
- package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/whats_new/resources/WNDT.md +6 -0
- package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new.js +32 -0
- package/client/dist/chrome-devtools-ui/rehydrated_devtools_app.html +24 -0
- package/client/dist/chrome-devtools-ui/rn_fusebox.html +24 -0
- package/client/dist/chrome-devtools-ui/services/puppeteer/puppeteer.js +1 -0
- package/client/dist/chrome-devtools-ui/services/trace_bounds/trace_bounds.js +1 -0
- package/client/dist/chrome-devtools-ui/services/tracing/tracing.js +1 -0
- package/client/dist/chrome-devtools-ui/services/window_bounds/window_bounds.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/acorn/acorn.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/chromium/client-variations/client-variations.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/angular.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/codemirror.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/cpp.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/java.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/legacy.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/less.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/markdown.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/php.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/python.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/sass.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/svelte.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/vue.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/wast.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/xml.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/codemirror.next.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/csp_evaluator/csp_evaluator.js +194 -0
- package/client/dist/chrome-devtools-ui/third_party/diff/diff.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/i18n/i18n.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/intl-messageformat/intl-messageformat.js +15 -0
- package/client/dist/chrome-devtools-ui/third_party/json5/json5.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/legacy-javascript/legacy-javascript.js +7 -0
- package/client/dist/chrome-devtools-ui/third_party/lighthouse/lighthouse-dt-bundle.js +3023 -0
- package/client/dist/chrome-devtools-ui/third_party/lighthouse/report/report.js +39 -0
- package/client/dist/chrome-devtools-ui/third_party/lit/lit.js +121 -0
- package/client/dist/chrome-devtools-ui/third_party/marked/marked.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/puppeteer/puppeteer.js +373 -0
- package/client/dist/chrome-devtools-ui/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/react-devtools/react-devtools.js +41 -0
- package/client/dist/chrome-devtools-ui/third_party/third-party-web/third-party-web.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/wasmparser/wasmparser.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/web-vitals/web-vitals.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/adorners/adorners.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/buttons/buttons.js +17 -0
- package/client/dist/chrome-devtools-ui/ui/components/cards/cards.js +10 -0
- package/client/dist/chrome-devtools-ui/ui/components/chrome_link/chrome_link.js +6 -0
- package/client/dist/chrome-devtools-ui/ui/components/code_highlighter/code_highlighter.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/dialogs/dialogs.js +61 -0
- package/client/dist/chrome-devtools-ui/ui/components/diff_view/diff_view.js +8 -0
- package/client/dist/chrome-devtools-ui/ui/components/expandable_list/expandable_list.js +17 -0
- package/client/dist/chrome-devtools-ui/ui/components/floating_button/floating_button.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/helpers/helpers.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/highlighting/highlighting.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/icon_button/icon_button.js +13 -0
- package/client/dist/chrome-devtools-ui/ui/components/input/input.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/issue_counter/issue_counter.js +10 -0
- package/client/dist/chrome-devtools-ui/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/linkifier/linkifier.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/markdown_view/markdown_view.js +51 -0
- package/client/dist/chrome-devtools-ui/ui/components/menus/menus.js +71 -0
- package/client/dist/chrome-devtools-ui/ui/components/node_text/node_text.js +3 -0
- package/client/dist/chrome-devtools-ui/ui/components/panel_feedback/panel_feedback.js +37 -0
- package/client/dist/chrome-devtools-ui/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
- package/client/dist/chrome-devtools-ui/ui/components/render_coordinator/render_coordinator.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/report_view/report_view.js +21 -0
- package/client/dist/chrome-devtools-ui/ui/components/request_link_icon/request_link_icon.js +8 -0
- package/client/dist/chrome-devtools-ui/ui/components/settings/settings.js +20 -0
- package/client/dist/chrome-devtools-ui/ui/components/spinners/spinners.js +16 -0
- package/client/dist/chrome-devtools-ui/ui/components/srgb_overlay/srgb_overlay.js +6 -0
- package/client/dist/chrome-devtools-ui/ui/components/suggestion_input/suggestion_input.js +29 -0
- package/client/dist/chrome-devtools-ui/ui/components/survey_link/survey_link.js +7 -0
- package/client/dist/chrome-devtools-ui/ui/components/switch/switch.js +10 -0
- package/client/dist/chrome-devtools-ui/ui/components/text_editor/text_editor.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/text_prompt/text_prompt.js +4 -0
- package/client/dist/chrome-devtools-ui/ui/components/tooltips/tooltips.js +7 -0
- package/client/dist/chrome-devtools-ui/ui/components/tree_outline/tree_outline.js +32 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/color_picker/color_picker.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/cookie_table/cookie_table.js +85 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/data_grid/data_grid.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/inline_editor/inline_editor.js +58 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui.js +7 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui.js +60 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/legacy.js +59 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/theme_support/theme_support.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/lit/lit.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/visual_logging/visual_logging.js +1 -0
- package/client/dist/chrome-devtools-ui/worker_app.html +24 -0
- package/client/dist/index.html +3 -3
- package/package.json +4 -1
- package/packages/simdeck-test/dist/index.d.ts +7 -1
- package/client/dist/assets/index-ICWevBP_.js +0 -9
- package/client/dist/assets/index-Y_Zqbt1r.css +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import*as e from"../../../../core/common/common.js";import*as t from"../../../../core/i18n/i18n.js";import*as n from"../../../components/icon_button/icon_button.js";import*as i from"../../legacy.js";import*as o from"../../../../core/host/host.js";import*as s from"../../../../core/platform/platform.js";import*as r from"../../../../core/sdk/sdk.js";import*as a from"../../../../models/text_utils/text_utils.js";import*as l from"../../../components/text_editor/text_editor.js";import*as c from"../../../visual_logging/visual_logging.js";import*as p from"../../../../models/formatter/formatter.js";import*as d from"../../../../models/source_map_scopes/source_map_scopes.js";import*as h from"../../../../third_party/acorn/acorn.js";import*as u from"../utils/utils.js";var m={cssText:`.custom-expandable-section{display:inline-flex;flex-direction:column}.custom-expand-icon{user-select:none;margin-right:4px;margin-bottom:-4px}.custom-expandable-section-standard-section{display:inline-flex}.custom-expandable-section-default-body{padding-left:12px}\n/*# sourceURL=${import.meta.resolve("./customPreviewComponent.css")} */\n`};const b={emptyD:"empty × {PH1}",empty:"empty",thePropertyIsComputedWithAGetter:"The property is computed with a getter"},v=t.i18n.registerUIStrings("ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts",b),y=t.i18n.getLocalizedString.bind(void 0,v);class g{static objectPropertyComparator(e,t){return n(e)-n(t);function n(e){return"[[PromiseState]]"===e.name?1:"[[PromiseResult]]"===e.name?2:"[[GeneratorState]]"===e.name||"[[PrimitiveValue]]"===e.name||"[[WeakRefTarget]]"===e.name?3:"function"===e.type||e.name.startsWith("#")?5:4}}appendObjectPreview(e,t,n){const o=t.description,s=new Set(["arraybuffer","dataview","error","null","regexp","webassemblymemory","internal#entry","trustedtype"]);if("object"!==t.type||t.subtype&&s.has(t.subtype)||n)return void e.appendChild(this.renderPropertyPreview(t.type,t.subtype,void 0,o));const a="array"===t.subtype||"typedarray"===t.subtype;if(o){let n;if(a){const e=r.RemoteObject.RemoteObject.arrayLength(t),i=e>1?"("+e+")":"",s=r.RemoteObject.RemoteObject.arrayNameFromDescription(o);n="Array"===s?i:s+i}else{n="Object"===o?"":o}n.length>0&&(e.createChild("span","object-description").textContent=n+" ")}const l=e.createChild("span","object-properties-preview");if(i.UIUtils.createTextChild(l,a?"[":"{"),t.entries?this.appendEntriesPreview(l,t):a?this.appendArrayPropertiesPreview(l,t):this.appendObjectPropertiesPreview(l,t),t.overflow){const e=l.textContent&&l.textContent.length>1?", …":"…";l.createChild("span").textContent=e}i.UIUtils.createTextChild(l,a?"]":"}")}abbreviateFullQualifiedClassName(e){const t=e.split(".");for(let e=0;e<t.length-1;++e)t[e]=s.StringUtilities.trimMiddle(t[e],3);return t.join(".")}appendObjectPropertiesPreview(e,t){const n=t.properties.filter((e=>"accessor"!==e.type)).sort(g.objectPropertyComparator);for(let o=0;o<n.length;++o){o>0&&i.UIUtils.createTextChild(e,", ");const s=n[o],r=s.name;if("promise"===t.subtype&&"[[PromiseState]]"===r){e.appendChild(this.renderDisplayName("<"+s.value+">"));const t=o+1<n.length?n[o+1]:null;t&&"[[PromiseResult]]"===t.name&&("pending"!==s.value&&(i.UIUtils.createTextChild(e,": "),e.appendChild(this.renderPropertyPreviewOrAccessor([t]))),o++)}else"generator"===t.subtype&&"[[GeneratorState]]"===r?e.appendChild(this.renderDisplayName("<"+s.value+">")):"[[PrimitiveValue]]"===r?e.appendChild(this.renderPropertyPreviewOrAccessor([s])):"[[WeakRefTarget]]"===r?"undefined"===s.type?e.appendChild(this.renderDisplayName("<cleared>")):e.appendChild(this.renderPropertyPreviewOrAccessor([s])):(e.appendChild(this.renderDisplayName(r)),i.UIUtils.createTextChild(e,": "),e.appendChild(this.renderPropertyPreviewOrAccessor([s])))}}appendArrayPropertiesPreview(e,t){const n=r.RemoteObject.RemoteObject.arrayLength(t),o=t.properties.filter((e=>-1!==a(e.name))).sort((function(e,t){return a(e.name)-a(t.name)})),s=t.properties.filter((e=>-1===a(e.name))).sort(g.objectPropertyComparator);function a(e){const t=Number(e)>>>0;return String(t)===e&&t<n?t:-1}const l=!t.overflow;let c=-1,p=!1;for(let t=0;t<o.length;++t){p&&i.UIUtils.createTextChild(e,", ");const n=o[t],s=a(n.name);l&&s-c>1&&(d(s),i.UIUtils.createTextChild(e,", ")),l||t===s||(e.appendChild(this.renderDisplayName(n.name)),i.UIUtils.createTextChild(e,": ")),e.appendChild(this.renderPropertyPreviewOrAccessor([n])),c=s,p=!0}l&&n-c>1&&(p&&i.UIUtils.createTextChild(e,", "),d(n));for(let t=0;t<s.length;++t){p&&i.UIUtils.createTextChild(e,", ");const n=s[t];e.appendChild(this.renderDisplayName(n.name)),i.UIUtils.createTextChild(e,": "),e.appendChild(this.renderPropertyPreviewOrAccessor([n])),p=!0}function d(t){const n=e.createChild("span","object-value-undefined"),i=t-c-1;n.textContent=1!==i?y(b.emptyD,{PH1:i}):y(b.empty),p=!0}}appendEntriesPreview(e,t){if(t.entries)for(let n=0;n<t.entries.length;++n){n>0&&i.UIUtils.createTextChild(e,", ");const o=t.entries[n];o.key&&(this.appendObjectPreview(e,o.key,!0),i.UIUtils.createTextChild(e," => ")),this.appendObjectPreview(e,o.value,!0)}}renderDisplayName(e){const t=document.createElement("span");t.classList.add("name");const n=/^\s|\s$|^$|\n/.test(e);return t.textContent=n?'"'+e.replace(/\n/g,"↵")+'"':e,t}renderPropertyPreviewOrAccessor(e){const t=e[e.length-1];if(!t)throw new Error("Could not find property");return this.renderPropertyPreview(t.type,t.subtype,t.name,t.value)}renderPropertyPreview(e,t,n,o){const r=document.createElement("span");if(r.classList.add("object-value-"+(t||e)),o=o||"","accessor"===e)return r.textContent="(...)",i.Tooltip.Tooltip.install(r,y(b.thePropertyIsComputedWithAGetter)),r;if("function"===e)return r.textContent="ƒ",r;if("object"===e&&"trustedtype"===t&&n)return f(r,o,n),r;if("object"===e&&"node"===t&&o)return x(r,o),r;if("string"===e)return i.UIUtils.createTextChildren(r,s.StringUtilities.formatAsJSLiteral(o)),r;if("object"===e&&!t){let e=this.abbreviateFullQualifiedClassName(o);return"Object"===e&&(e="{…}"),r.textContent=e,i.Tooltip.Tooltip.install(r,o),r}return r.textContent=o,r}}const x=function(e,t){const n=t.match(/([^#.]+)(#[^.]+)?(\..*)?/);n&&(e.createChild("span","webkit-html-tag-name").textContent=n[1],n[2]&&(e.createChild("span","webkit-html-attribute-value").textContent=n[2]),n[3]&&(e.createChild("span","webkit-html-attribute-name").textContent=n[3]))},f=function(e,t,n){i.UIUtils.createTextChildren(e,`${n} `);const o=document.createElement("span");o.classList.add("object-value-string"),i.UIUtils.createTextChildren(o,'"',t.replace(/\n/g,"↵"),'"'),e.appendChild(o)};var w=Object.freeze({__proto__:null,RemoteObjectPreviewFormatter:g,createSpanForTrustedType:f,createSpansForNodeTitle:x});class C{static wrapObjectLiteral(e){const t=/^\s*\{\s*(.*)\s*\}[\s;]*$/.exec(e);if(null===t)return e;const[,n]=t;let i=0;for(const t of n)if("{"===t)i++;else if("}"===t&&--i<0)return e;const o=e=>{h.parse(e,{ecmaVersion:2022,allowAwaitOutsideFunction:!0,ranges:!1,allowReturnOutsideFunction:!0})};try{o("return {"+n+"};");const e="({"+n+"})";return o(e),e}catch{return e}}static async evaluateAndBuildPreview(e,t,n,o,s,a,l=!1,c=!1){const h=i.Context.Context.instance().flavor(r.RuntimeModel.ExecutionContext),u=e.length>j;if(!e||!h||t&&u)return{preview:document.createDocumentFragment(),result:null};let m=e;const b=h.debuggerModel.selectedCallFrame();if(b?.script.isJavaScript()){const e=await d.NamesResolver.allVariablesInCallFrame(b);try{m=await p.FormatterWorkerPool.formatterWorkerPool().javaScriptSubstitute(m,e)}catch{}}m=C.wrapObjectLiteral(m);const v={expression:m,generatePreview:!0,includeCommandLineAPI:!0,throwOnSideEffect:t,timeout:o,objectGroup:a,disableBreaks:!0,replMode:n,silent:c},y=await h.evaluate(v,!1,l);return{preview:C.buildEvaluationPreview(y,s),result:y}}static buildEvaluationPreview(e,t){const n=document.createDocumentFragment();if("error"in e)return n;if(e.exceptionDetails?.exception?.description){const i=e.exceptionDetails.exception.description;return(i.startsWith("TypeError: ")||t)&&(n.createChild("span").textContent=e.exceptionDetails.text+" "+i),n}const i=new g,{preview:o,type:r,subtype:a,className:l,description:c}=e.object;if(o&&"object"===r&&"node"!==a&&"trustedtype"!==a)i.appendObjectPreview(n,o,!1);else{const e=i.renderPropertyPreview(r,a,l,s.StringUtilities.trimEndWithMaxLength(c||"",400));n.appendChild(e)}return n}}const j=2e3;var E=Object.freeze({__proto__:null,JavaScriptREPL:C}),P={cssText:`.object-properties-section-dimmed{opacity:60%}.object-properties-section{padding:0;color:var(--sys-color-on-surface);display:flex;flex-direction:column}.object-properties-section li{user-select:text;&::before{margin-right:2px}}.object-properties-section li.editing-sub-part{padding:3px 12px 8px 6px;margin:-1px -6px -8px;text-overflow:clip}.object-properties-section li.editing{margin-left:10px;text-overflow:clip}.tree-outline ol.title-less-mode{padding-left:0}.object-properties-section .own-property{font-weight:bold}.object-properties-section .synthetic-property{color:var(--sys-color-token-subtle)}.object-properties-section .private-property-hash{color:var(--sys-color-on-surface)}.object-properties-section-root-element{display:flex;flex-direction:row}.object-properties-section .editable-div{overflow:hidden}.name-and-value{overflow:hidden;line-height:16px;display:flex;white-space:nowrap}.name-and-value .separator{white-space:pre;flex-shrink:0}.editing-sub-part .name-and-value{overflow:visible;display:inline-flex}.property-prompt{margin-left:4px}.tree-outline.hide-selection-when-blurred .selected:focus-visible{background:none}.tree-outline.hide-selection-when-blurred .selected:focus-visible ::slotted(*),\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .tree-element-title,\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value,\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message{background:var(--sys-color-state-focus-highlight);border-radius:2px}@media (forced-colors: active){.object-properties-section-dimmed{opacity:100%}.tree-outline.hide-selection-when-blurred .selected:focus-visible{background:Highlight}.tree-outline li:hover .tree-element-title,\n .tree-outline li.selected .tree-element-title{color:ButtonText}.tree-outline.hide-selection-when-blurred .selected:focus-visible .tree-element-title,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value{background:transparent;box-shadow:none}.tree-outline.hide-selection-when-blurred .selected:focus-visible span,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message{color:HighlightText}.tree-outline-disclosure:hover li.parent::before{background-color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./objectPropertiesSection.css")} */\n`},T={cssText:`.value.object-value-node:hover{background-color:var(--sys-color-state-hover-on-subtle)}.object-value-function-prefix,\n.object-value-boolean{color:var(--sys-color-token-attribute-value)}.object-value-function{font-style:italic}.object-value-function.linkified:hover{--override-linkified-hover-background:rgb(0 0 0/10%);background-color:var(--override-linkified-hover-background);cursor:pointer}.theme-with-dark-background .object-value-function.linkified:hover,\n:host-context(.theme-with-dark-background) .object-value-function.linkified:hover{--override-linkified-hover-background:rgb(230 230 230/10%)}.object-value-number{color:var(--sys-color-token-attribute-value)}.object-value-bigint{color:var(--sys-color-token-comment)}.object-value-string,\n.object-value-regexp,\n.object-value-symbol{white-space:pre;unicode-bidi:-webkit-isolate;color:var(--sys-color-token-property-special)}.object-value-node{position:relative;vertical-align:baseline;color:var(--sys-color-token-variable);white-space:nowrap}.object-value-null,\n.object-value-undefined{color:var(--sys-color-state-disabled)}.object-value-unavailable{color:var(--sys-color-token-tag)}.object-value-calculate-value-button:hover{text-decoration:underline}.object-properties-section-custom-section{display:inline-flex;flex-direction:column}.theme-with-dark-background .object-value-number,\n:host-context(.theme-with-dark-background) .object-value-number,\n.theme-with-dark-background .object-value-boolean,\n:host-context(.theme-with-dark-background) .object-value-boolean{--override-primitive-dark-mode-color:hsl(252deg 100% 75%);color:var(--override-primitive-dark-mode-color)}.object-properties-section .object-description{color:var(--sys-color-token-subtle)}.value .object-properties-preview{white-space:nowrap}.name{color:var(--sys-color-token-tag);flex-shrink:0}.object-properties-preview .name{color:var(--sys-color-token-subtle)}@media (forced-colors: active){.object-value-calculate-value-button:hover{forced-color-adjust:none;color:Highlight}}\n/*# sourceURL=${import.meta.resolve("./objectValue.css")} */\n`};const O={exceptionS:"[Exception: {PH1}]",unknown:"unknown",expandRecursively:"Expand recursively",collapseChildren:"Collapse children",noProperties:"No properties",dots:"(...)",invokePropertyGetter:"Invoke property getter",showAllD:"Show all {PH1}",valueUnavailable:"<value unavailable>",valueNotAccessibleToTheDebugger:"Value is not accessible to the debugger",copyValue:"Copy value",copyPropertyPath:"Copy property path",stringIsTooLargeToEdit:"<string is too large to edit>",showMoreS:"Show more ({PH1})",longTextWasTruncatedS:"long text was truncated ({PH1})",copy:"Copy",openInMemoryInpector:"Open in Memory inspector panel"},I=t.i18n.registerUIStrings("ui/legacy/components/object_ui/ObjectPropertiesSection.ts",O),S=t.i18n.getLocalizedString.bind(void 0,I),k=new WeakMap,L=new WeakMap;class M extends i.TreeOutline.TreeOutlineInShadow{object;editable;objectTreeElementInternal;titleElement;skipProtoInternal;constructor(e,t,n,i){super(),this.object=e,this.editable=!0,i||this.hideOverflow(),this.setFocusable(!0),this.setShowSelectionOnKeyboardFocus(!0),this.objectTreeElementInternal=new U(e,n),this.appendChild(this.objectTreeElementInternal),"string"!=typeof t&&t?(this.titleElement=t,this.element.appendChild(t)):(this.titleElement=this.element.createChild("span"),this.titleElement.textContent=t||""),this.titleElement instanceof HTMLElement&&!this.titleElement.hasAttribute("tabIndex")&&(this.titleElement.tabIndex=-1),L.set(this.element,this),this.registerRequiredCSS(T,P),this.rootElement().childrenListElement.classList.add("source-code","object-properties-section")}static defaultObjectPresentation(e,t,n,i){const o=M.defaultObjectPropertiesSection(e,t,n,i);return e.hasChildren?o.element:o.titleElement}static defaultObjectPropertiesSection(e,t,n,o){const s=document.createElement("span");s.classList.add("source-code");const r=i.UIUtils.createShadowRootWithCoreStyles(s,{cssFile:T}),a=M.createPropertyValue(e,!1,!0);r.appendChild(a.element);const l=new M(e,s,t);return l.editable=!1,n&&l.skipProto(),o&&l.setEditable(!1),l}static compareProperties(e,t){if(!e.synthetic&&t.synthetic)return 1;if(!t.synthetic&&e.synthetic)return-1;if(!e.isOwn&&t.isOwn)return 1;if(!t.isOwn&&e.isOwn)return-1;if(!e.enumerable&&t.enumerable)return 1;if(!t.enumerable&&e.enumerable)return-1;if(e.symbol&&!t.symbol)return 1;if(t.symbol&&!e.symbol)return-1;if(e.private&&!t.private)return 1;if(t.private&&!e.private)return-1;const n=e.name,i=t.name;return n.startsWith("_")&&!i.startsWith("_")?1:i.startsWith("_")&&!n.startsWith("_")?-1:s.StringUtilities.naturalOrderComparator(n,i)}static createNameElement(e,t){return null===e?i.Fragment.html`<span class="name"></span>`:/^\s|\s$|^$|\n/.test(e)?i.Fragment.html`<span class="name">"${e.replace(/\n/g,"↵")}"</span>`:t?i.Fragment.html`<span class="name">
|
|
2
|
+
<span class="private-property-hash">${e[0]}</span>${e.substring(1)}
|
|
3
|
+
</span>`:i.Fragment.html`<span class="name">${e}</span>`}static valueElementForFunctionDescription(e,t,n){const o=document.createElement("span");o.classList.add("object-value-function");const r=(e=e||"").replace(/^function [gs]et /,"function ").replace(/^function [gs]et\(/,"function(").replace(/^[gs]et /,"");n=n||"";const a=r.match(/^(async\s+function)/),l=r.startsWith("function*"),c=r.startsWith("*"),p=!l&&r.startsWith("function"),d=r.startsWith("class ")||r.startsWith("class{"),h=r.indexOf("=>"),u=!a&&!l&&!p&&!d&&h>0;let m;if(d){m=r.substring(5);const e=/^[^{\s]+/.exec(m.trim());let t=n;e&&(t=e[0].trim()||n),v("class",m,t)}else if(a)m=r.substring(a[1].length),v("async ƒ",m,b(m));else if(l)m=r.substring(9),v("ƒ*",m,b(m));else if(c)m=r.substring(1),v("ƒ*",m,b(m));else if(p)m=r.substring(8),v("ƒ",m,b(m));else if(u){const e=60;let t=r;n?t=n+"()":r.length>e&&(t=r.substring(0,h+2)+" {…}"),v("",r,t)}else v("ƒ",r,b(r));return i.Tooltip.Tooltip.install(o,s.StringUtilities.trimEndWithMaxLength(e,500)),o;function b(e){const t=e.indexOf("("),i=e.match(/\)\s*{/);if(-1!==t&&void 0!==i?.index&&i.index>t){return(e.substring(0,t).trim()||n)+e.substring(t,i.index+1)}return n+"()"}function v(e,n,r){e.length&&(o.createChild("span","object-value-function-prefix").textContent=e+" "),t?i.UIUtils.createTextChild(o,s.StringUtilities.trimEndWithMaxLength(n.trim(),200)):i.UIUtils.createTextChild(o,r.replace(/\n/g," "))}}static createPropertyValueWithCustomSupport(e,t,n,i,o,s,r){if(e.customPreview()){const t=new X(e).element;return t.classList.add("object-properties-section-custom-section"),new $(t)}return M.createPropertyValue(e,t,n,i,o,s,r)}static appendMemoryIcon(t,o,s){if(!o.isLinearMemoryInspectable())return;const a=new n.Icon.Icon;a.data={iconName:"memory",color:"var(--icon-default)",width:"16px",height:"13px"},a.addEventListener("click",(t=>{t.consume(),e.Revealer.reveal(new r.RemoteObject.LinearMemoryInspectable(o,s))})),a.setAttribute("jslog",`${c.action("open-memory-inspector").track({click:!0})}`);const l=S(O.openInMemoryInpector);i.Tooltip.Tooltip.install(a,l),i.ARIAUtils.setLabel(a,l),a.style.setProperty("vertical-align","sub"),a.style.setProperty("cursor","pointer"),t.appendChild(a)}static createPropertyValue(n,o,a,l,c,p=!1,d){let h;const u=n.type,m=n.subtype,b=n.description||"",v=n.className;if("object"===u&&"internal#location"===m){const e=n.debuggerModel().createRawLocationByScriptId(n.value.scriptId,n.value.lineNumber,n.value.columnNumber);if(e&&c)return new $(c.linkifyRawLocation(e,s.DevToolsPath.EmptyUrlString));h=new $(function(){const e=document.createElement("span");return e.textContent="<"+S(O.unknown)+">",i.Tooltip.Tooltip.install(e,b||""),e}())}else if("string"===u&&"string"==typeof b)h=y();else if("object"===u&&"trustedtype"===m)h=function(){const e=document.createElement("span");e.classList.add("object-value-trustedtype");const t=`${v} "${b}"`;let n;if(t.length>A)n=new H(e,t,50);else{const o=y();i.UIUtils.createTextChild(e,`${v} `),e.appendChild(o.element),n=new $(e),i.Tooltip.Tooltip.install(e,t)}return n}();else if("function"===u)h=new $(M.valueElementForFunctionDescription(b));else if("object"===u&&"node"===m&&b)h=new $(function(){const t=document.createElement("span");return t.classList.add("object-value-node"),x(t,b),t.addEventListener("click",(t=>{e.Revealer.reveal(n),t.consume(!0)}),!1),t.addEventListener("mousemove",(()=>r.OverlayModel.OverlayModel.highlightObjectAsDOMNode(n)),!1),t.addEventListener("mouseleave",(()=>r.OverlayModel.OverlayModel.hideDOMNodeHighlight()),!1),t}());else{const e=document.createElement("span");if(e.classList.add("object-value-"+(m||u)),n.preview&&a){(new g).appendObjectPreview(e,n.preview,!1),h=new $(e),i.Tooltip.Tooltip.install(h.element,b||"")}else b.length>A?h=new H(e,b,50):(h=new $(e),h.element.textContent=b,i.Tooltip.Tooltip.install(h.element,b));p||this.appendMemoryIcon(e,n,d)}if(o){const e=document.createElement("span");e.classList.add("error"),e.classList.add("value"),e.appendChild(t.i18n.getFormatLocalizedString(I,O.exceptionS,{PH1:h.element})),h.element=e}return h.element.classList.add("value"),h;function y(){const e=document.createElement("span");e.classList.add("object-value-string");const t=JSON.stringify(b);let n;return b.length>A?n=new H(e,t,50):(i.UIUtils.createTextChild(e,t),n=new $(e),i.Tooltip.Tooltip.install(e,b)),n}}static formatObjectAsFunction(t,n,i,o){return t.debuggerModel().functionDetailsPromise(t).then((function(s){i&&s?.location&&(n.classList.add("linkified"),n.addEventListener("click",(()=>(e.Revealer.reveal(s.location),!1))));let r=o?"":"anonymous";s?.functionName&&(r=s.functionName);const a=M.valueElementForFunctionDescription(t.description,o,r);n.appendChild(a)}))}static isDisplayableProperty(e,t){if(!t?.synthetic)return!0;const n=e.name;return!("[[Entries]]"===t.name&&("length"===n||"__proto__"===n))}skipProto(){this.skipProtoInternal=!0}expand(){this.objectTreeElementInternal.expand()}setEditable(e){this.editable=e}objectTreeElement(){return this.objectTreeElementInternal}enableContextMenu(){this.element.addEventListener("contextmenu",this.contextMenuEventFired.bind(this),!1)}contextMenuEventFired(e){const t=new i.ContextMenu.ContextMenu(e);t.appendApplicableItems(this.object),this.object instanceof r.RemoteObject.LocalJSONObject&&(t.viewSection().appendItem(S(O.expandRecursively),this.objectTreeElementInternal.expandRecursively.bind(this.objectTreeElementInternal,100),{jslogContext:"expand-recursively"}),t.viewSection().appendItem(S(O.collapseChildren),this.objectTreeElementInternal.collapseChildren.bind(this.objectTreeElementInternal),{jslogContext:"collapse-children"})),t.show()}titleLessMode(){this.objectTreeElementInternal.listItemElement.classList.add("hidden"),this.objectTreeElementInternal.childrenListElement.classList.add("title-less-mode"),this.objectTreeElementInternal.expand()}}const A=1e4;class R extends i.TreeOutline.TreeOutlineInShadow{editable;constructor(e){super(),this.registerRequiredCSS(T,P),this.editable=!e?.readOnly,this.contentElement.classList.add("source-code"),this.contentElement.classList.add("object-properties-section")}}class U extends i.TreeOutline.TreeElement{object;linkifier;emptyPlaceholder;propertiesMode;extraProperties;targetObject;toggleOnClick;constructor(e,t,n,i=1,o=[],s=e){super(document.createElement("slot")),this.object=e,this.linkifier=t,this.emptyPlaceholder=n,this.propertiesMode=i,this.extraProperties=o,this.targetObject=s,this.setExpandable(!0),this.selectable=!0,this.toggleOnClick=!0,this.listItemElement.classList.add("object-properties-section-root-element"),this.listItemElement.addEventListener("contextmenu",this.onContextMenu.bind(this),!1)}onexpand(){this.treeOutline&&this.treeOutline.element.classList.add("expanded")}oncollapse(){this.treeOutline&&this.treeOutline.element.classList.remove("expanded")}ondblclick(e){return!0}onContextMenu(e){const t=new i.ContextMenu.ContextMenu(e);if(t.appendApplicableItems(this.object),this.object instanceof r.RemoteObject.LocalJSONObject){const{value:e}=this.object,n="object"==typeof e?JSON.stringify(e,null,2):e,i=()=>{o.userMetrics.actionTaken(o.UserMetrics.Action.NetworkPanelCopyValue),o.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(n)};t.clipboardSection().appendItem(S(O.copyValue),i,{jslogContext:"copy-value"})}t.viewSection().appendItem(S(O.expandRecursively),this.expandRecursively.bind(this,100),{jslogContext:"expand-recursively"}),t.viewSection().appendItem(S(O.collapseChildren),this.collapseChildren.bind(this),{jslogContext:"collapse-children"}),t.show()}async onpopulate(){const e=this.treeOutline,t=!!e&&Boolean(e.skipProtoInternal);return await N.populate(this,this.object,t,!1,this.linkifier,this.emptyPlaceholder,this.propertiesMode,this.extraProperties,this.targetObject)}}class N extends i.TreeOutline.TreeElement{property;toggleOnClick;highlightChanges;linkifier;maxNumPropertiesToShow;nameElement;valueElement;rowContainer;readOnly;prompt;editableDiv;propertyValue;expandedValueElement;constructor(e,t){super(),this.property=e,this.toggleOnClick=!0,this.highlightChanges=[],this.linkifier=t,this.maxNumPropertiesToShow=200,this.listItemElement.addEventListener("contextmenu",this.contextMenuFired.bind(this),!1),this.listItemElement.dataset.objectPropertyNameForTest=e.name,this.setExpandRecursively("[[Prototype]]"!==e.name)}static async populate(e,t,n,i,o,s,a=1,l,c){if(t.arrayLength()>100)return e.removeChildren(),void F.populateArray(e,t,0,t.arrayLength()-1,o);let p,d=null;switch(a){case 0:({properties:p}=await t.getAllProperties(!1,!0));break;case 1:({properties:p,internalProperties:d}=await r.RemoteObject.RemoteObject.loadFromObjectPerProto(t,!0))}e.removeChildren(),p&&(void 0!==l&&p.push(...l),N.populateWithProperties(e,p,d,n,i,c||t,o,s))}static populateWithProperties(e,t,n,i,o,s,a,l){t.sort(M.compareProperties);const c=(n=n||[]).find((e=>"[[Entries]]"===e.name));if(c){k.set(c,s);const t=new N(c,a);t.setExpandable(!0),t.expand(),e.appendChild(t)}const p=[];for(let n=0;n<t.length;++n){const i=t[n];if(k.set(i,s),!M.isDisplayableProperty(i,e.property))continue;if(i.isOwn&&!o){if(i.getter){const e=new r.RemoteObject.RemoteObjectProperty("get "+i.name,i.getter,!1);k.set(e,s),p.push(e)}if(i.setter){const e=new r.RemoteObject.RemoteObjectProperty("set "+i.name,i.setter,!1);k.set(e,s),p.push(e)}}if(i.getter||!i.isAccessorProperty()){const t=new N(i,a);"memories"===i.name&&"Memories"===i.value?.className&&(t.updateExpandable(),t.isExpandable()&&t.expand()),e.appendChild(t)}}for(let t=0;t<p.length;++t)e.appendChild(new N(p[t],a));for(const t of n){k.set(t,s);const n=new N(t,a);"[[Entries]]"!==t.name&&("[[Prototype]]"===t.name&&i||e.appendChild(n))}N.appendEmptyPlaceholderIfNeeded(e,l)}static appendEmptyPlaceholderIfNeeded(e,t){if(e.childCount())return;const n=document.createElement("div");n.classList.add("gray-info-message"),n.textContent=t||S(O.noProperties);const o=new i.TreeOutline.TreeElement(n);e.appendChild(o)}static createRemoteObjectAccessorPropertySpan(e,t,n){const o=document.createElement("span"),s=o.createChild("span");if(s.textContent=S(O.dots),!e)return o;function r(e){let t=this;const n=JSON.parse(e);for(let e=0,i=n.length;e<i;++e)t=t[n[e]];return t}return s.classList.add("object-value-calculate-value-button"),i.Tooltip.Tooltip.install(s,S(O.invokePropertyGetter)),s.addEventListener("click",(function(i){i.consume(),e&&e.callFunction(r,[{value:JSON.stringify(t)}]).then(n)}),!1),o}setSearchRegex(e,t){let n=i.UIUtils.highlightedSearchResultClassName;if(t&&(n+=" "+t),this.revertHighlightChanges(),this.applySearch(e,this.nameElement,n),this.property.value){"object"!==this.property.value.type&&this.applySearch(e,this.valueElement,n)}return Boolean(this.highlightChanges.length)}applySearch(e,t,n){const o=[],s=t.textContent||"";e.lastIndex=0;let r=e.exec(s);for(;r;)o.push(new a.TextRange.SourceRange(r.index,r[0].length)),r=e.exec(s);o.length&&i.UIUtils.highlightRangesWithStyleClass(t,o,n,this.highlightChanges)}showAllPropertiesElementSelected(e){return this.removeChild(e),this.children().forEach((e=>{e.hidden=!1})),!1}createShowAllPropertiesButton(){const e=document.createElement("div");e.classList.add("object-value-calculate-value-button"),e.textContent=S(O.dots),i.Tooltip.Tooltip.install(e,S(O.showAllD,{PH1:this.childCount()}));const t=this.children();for(let e=this.maxNumPropertiesToShow;e<this.childCount();++e)t[e].hidden=!0;const n=new i.TreeOutline.TreeElement(e);n.onselect=this.showAllPropertiesElementSelected.bind(this,n),this.appendChild(n)}revertHighlightChanges(){i.UIUtils.revertDomChanges(this.highlightChanges),this.highlightChanges=[]}async onpopulate(){const e=this.property.value;console.assert(void 0!==e);const t=this.treeOutline,n=!!t&&Boolean(t.skipProtoInternal),i="[[Prototype]]"!==this.property.name?e:k.get(this.property);i&&(await N.populate(this,e,n,!1,this.linkifier,void 0,void 0,void 0,i),this.childCount()>this.maxNumPropertiesToShow&&this.createShowAllPropertiesButton())}ondblclick(e){const t=e.target,n=t.isSelfOrDescendant(this.valueElement)||this.expandedValueElement&&t.isSelfOrDescendant(this.expandedValueElement);return this.property.value&&!this.property.value.customPreview()&&n&&(this.property.writable||this.property.setter)&&this.startEditing(),!1}onenter(){return!(!this.property.value||this.property.value.customPreview()||!this.property.writable&&!this.property.setter)&&(this.startEditing(),!0)}onattach(){this.update(),this.updateExpandable()}onexpand(){this.showExpandedValueElement(!0)}oncollapse(){this.showExpandedValueElement(!1)}showExpandedValueElement(e){this.expandedValueElement&&(e?this.rowContainer.replaceChild(this.expandedValueElement,this.valueElement):this.rowContainer.replaceChild(this.valueElement,this.expandedValueElement))}createExpandedValueElement(e,t){if(!(e.hasChildren&&!e.customPreview()&&"node"!==e.subtype&&"function"!==e.type&&("object"!==e.type||e.preview)))return null;const n=document.createElement("span");return n.classList.add("value"),"Object"===e.description?n.textContent="":n.setTextContentTruncatedIfNeeded(e.description||""),n.classList.add("object-value-"+(e.subtype||e.type)),i.Tooltip.Tooltip.install(n,e.description||""),t||M.appendMemoryIcon(n,e),n}update(){this.nameElement=M.createNameElement(this.property.name,this.property.private),this.property.enumerable||this.nameElement.classList.add("object-properties-section-dimmed"),this.property.isOwn&&this.nameElement.classList.add("own-property"),this.property.synthetic&&this.nameElement.classList.add("synthetic-property"),this.updatePropertyPath();const e=this.property.synthetic&&"[[Entries]]"===this.property.name;if(e)this.valueElement=document.createElement("span"),this.valueElement.classList.add("value");else if(this.property.value){const e="[[Prototype]]"!==this.property.name;this.propertyValue=M.createPropertyValueWithCustomSupport(this.property.value,this.property.wasThrown,e,this.listItemElement,this.linkifier,this.property.synthetic,this.path()),this.valueElement=this.propertyValue.element}else if(this.property.getter){this.valueElement=document.createElement("span");const e=this.valueElement.createChild("span");e.textContent=S(O.dots),e.classList.add("object-value-calculate-value-button"),i.Tooltip.Tooltip.install(e,S(O.invokePropertyGetter));const t=k.get(this.property),n=this.property.getter;e.addEventListener("click",(e=>{e.consume();t.callFunction("\n function invokeGetter(getter) {\n return Function.prototype.apply.call(getter, this, []);\n }",[r.RemoteObject.RemoteObject.toCallArgument(n)]).then(this.onInvokeGetterClick.bind(this))}),!1)}else this.valueElement=document.createElement("span"),this.valueElement.classList.add("object-value-unavailable"),this.valueElement.textContent=S(O.valueUnavailable),i.Tooltip.Tooltip.install(this.valueElement,S(O.valueNotAccessibleToTheDebugger));const t=this.valueElement.textContent;this.property.value&&t&&!this.property.wasThrown&&(this.expandedValueElement=this.createExpandedValueElement(this.property.value,this.property.synthetic));let n;n=e?i.Fragment.html`
|
|
4
|
+
<span class='name-and-value'>${""}${this.nameElement}</span>
|
|
5
|
+
`:i.Fragment.html`
|
|
6
|
+
<span class='name-and-value'>${""}${this.nameElement}<span class='separator'>: </span>${this.valueElement}</span>
|
|
7
|
+
`,this.listItemElement.removeChildren(),this.rowContainer=n,this.listItemElement.appendChild(this.rowContainer)}updatePropertyPath(){if(this.nameElement.title)return;const e=this.property.name;if(this.property.synthetic)return void i.Tooltip.Tooltip.install(this.nameElement,e);const t=this.parent instanceof N&&this.parent.nameElement&&!this.parent.property.synthetic?this.parent.nameElement.title:"";this.property.private||/^(?:[$_\p{ID_Start}])(?:[$_\u200C\u200D\p{ID_Continue}])*$/u.test(e)?i.Tooltip.Tooltip.install(this.nameElement,t?`${t}.${e}`:e):/^(?:0|[1-9]\d*)$/.test(e)?i.Tooltip.Tooltip.install(this.nameElement,`${t}[${e}]`):i.Tooltip.Tooltip.install(this.nameElement,`${t}[${JSON.stringify(e)}]`)}contextMenuFired(e){const t=new i.ContextMenu.ContextMenu(e);if(t.appendApplicableItems(this),this.property.symbol&&t.appendApplicableItems(this.property.symbol),this.property.value&&(t.appendApplicableItems(this.property.value),k.get(this.property)instanceof r.RemoteObject.LocalJSONObject)){const{value:{value:e}}=this.property,n="object"==typeof e?JSON.stringify(e,null,2):e,i=()=>{o.userMetrics.actionTaken(o.UserMetrics.Action.NetworkPanelCopyValue),o.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(n)};t.clipboardSection().appendItem(S(O.copyValue),i,{jslogContext:"copy-value"})}if(!this.property.synthetic&&this.nameElement?.title){const e=o.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(o.InspectorFrontendHost.InspectorFrontendHostInstance,this.nameElement.title);t.clipboardSection().appendItem(S(O.copyPropertyPath),e,{jslogContext:"copy-property-path"})}k.get(this.property)instanceof r.RemoteObject.LocalJSONObject&&(t.viewSection().appendItem(S(O.expandRecursively),this.expandRecursively.bind(this,100),{jslogContext:"expand-recursively"}),t.viewSection().appendItem(S(O.collapseChildren),this.collapseChildren.bind(this),{jslogContext:"collapse-children"})),this.propertyValue&&this.propertyValue.appendApplicableItems(e,t,{}),t.show()}startEditing(){const e=this.treeOutline;if(this.prompt||!e||!e.editable||this.readOnly)return;if(this.editableDiv=this.rowContainer.createChild("span","editable-div"),this.property.value){let e=this.property.value.description;"string"===this.property.value.type&&"string"==typeof e&&(e=`"${e}"`),this.editableDiv.setTextContentTruncatedIfNeeded(e,S(O.stringIsTooLargeToEdit))}const t=this.editableDiv.textContent||"";this.setExpandable(!1),this.listItemElement.classList.add("editing-sub-part"),this.valueElement.classList.add("hidden"),this.prompt=new D;const n=this.prompt.attachAndStartEditing(this.editableDiv,this.editingCommitted.bind(this,t));n.classList.add("property-prompt");const i=this.listItemElement.getComponentSelection();i&&i.selectAllChildren(this.editableDiv),n.addEventListener("keydown",this.promptKeyDown.bind(this,t),!1)}editingEnded(){this.prompt&&(this.prompt.detach(),delete this.prompt),this.editableDiv.remove(),this.updateExpandable(),this.listItemElement.scrollLeft=0,this.listItemElement.classList.remove("editing-sub-part"),this.select()}editingCancelled(){this.valueElement.classList.remove("hidden"),this.editingEnded()}async editingCommitted(e){const t=this.prompt?this.prompt.text():"";t!==e?(this.editingEnded(),await this.applyExpression(t)):this.editingCancelled()}promptKeyDown(e,t){const n=t;return"Enter"===n.key?(n.consume(),void this.editingCommitted(e)):n.key===s.KeyboardUtilities.ESCAPE_KEY?(n.consume(),void this.editingCancelled()):void 0}async applyExpression(e){const t=r.RemoteObject.RemoteObject.toCallArgument(this.property.symbol||this.property.name);if(e=C.wrapObjectLiteral(e.trim()),this.property.synthetic){let t=!1;if(e&&(t=await this.property.setSyntheticValue(e)),t){const e=this.parent;e&&(e.invalidateChildren(),e.onpopulate())}else this.update();return}const n=k.get(this.property),i=e?n.setPropertyValue(t,e):n.deleteProperty(t);if(await i)this.update();else if(e){const e=this.parent;e&&(e.invalidateChildren(),e.onpopulate())}else this.parent&&this.parent.removeChild(this)}onInvokeGetterClick(e){e.object&&(this.property.value=e.object,this.property.wasThrown=e.wasThrown||!1,this.update(),this.invalidateChildren(),this.updateExpandable())}updateExpandable(){this.property.value?this.setExpandable(!this.property.value.customPreview()&&this.property.value.hasChildren&&!this.property.wasThrown):this.setExpandable(!1)}path(){return this.nameElement.title}}class F extends i.TreeOutline.TreeElement{toggleOnClick;fromIndex;toIndex;object;propertyCount;linkifier;constructor(e,t,n,i,o){super(s.StringUtilities.sprintf("[%d … %d]",t,n),!0),this.toggleOnClick=!0,this.fromIndex=t,this.toIndex=n,this.object=e,this.propertyCount=i,this.linkifier=o}static async populateArray(e,t,n,i,o){await F.populateRanges(e,t,n,i,!0,o)}static async populateRanges(e,t,n,i,o,s){const r=await t.callFunctionJSON((function(e,t,n,i){if(void 0===e||void 0===t||void 0===i||void 0===n)return;let o=null;const s=t-e>=i&&ArrayBuffer.isView(this);function*r(n){if(void 0!==e&&void 0!==t&&void 0!==i)if(t-e<i)for(let i=e;i<=t;++i)i in n&&(yield i);else{o=o||Object.getOwnPropertyNames(n);for(let n=0;n<o.length;++n){const i=o[n],s=Number(i)>>>0;String(s)===i&&e<=s&&s<=t&&(yield s)}}}let a=0;if(s)a=t-e+1;else for(const e of r(this))++a;let l=a;l=a<=n?a:Math.pow(n,Math.ceil(Math.log(a)/Math.log(n))-1);const c=[];if(s)for(let n=e;n<=t;n+=l){const e=n;let i=e+l-1;i>t&&(i=t),c.push([e,i,i-e+1])}else{a=0;let e=-1,t=0;for(const n of r(this))-1===e&&(e=n),t=n,++a===l&&(c.push([e,t,a]),a=0,e=-1);a>0&&c.push([e,t,a])}return{ranges:c}}),[{value:n},{value:i},{value:F.bucketThreshold},{value:F.sparseIterationThreshold}]);await async function(n){if(!n)return;const i=n.ranges;if(1===i.length)await F.populateAsFragment(e,t,i[0][0],i[0][1],s);else for(let n=0;n<i.length;++n){const o=i[n][0],r=i[n][1],a=i[n][2];o===r?await F.populateAsFragment(e,t,o,r,s):e.appendChild(new F(t,o,r,a,s))}o&&await F.populateNonIndexProperties(e,t,s)}(r)}static async populateAsFragment(e,t,n,i,o){const s=await t.callFunction((function(e,t,n){const i=Object.create(null);if(void 0===e||void 0===t||void 0===n)return;if(t-e<n)for(let n=e;n<=t;++n)n in this&&(i[n]=this[n]);else{const n=Object.getOwnPropertyNames(this);for(let o=0;o<n.length;++o){const s=n[o],r=Number(s)>>>0;String(r)===s&&e<=r&&r<=t&&(i[r]=this[r])}}return i}),[{value:n},{value:i},{value:F.sparseIterationThreshold}]);if(!s.object||s.wasThrown)return;const r=s.object,a=await r.getAllProperties(!1,!0);r.release();const l=a.properties;if(l){l.sort(M.compareProperties);for(let t=0;t<l.length;++t){k.set(l[t],this.object);const n=new N(l[t],o);n.readOnly=!0,e.appendChild(n)}}}static async populateNonIndexProperties(e,t,n){const{properties:i,internalProperties:o}=await r.RemoteObject.RemoteObject.loadFromObjectPerProto(t,!0,!0);i&&N.populateWithProperties(e,i,o,!1,!1,t,n)}async onpopulate(){this.propertyCount>=F.bucketThreshold?await F.populateRanges(this,this.object,this.fromIndex,this.toIndex,!1,this.linkifier):await F.populateAsFragment(this,this.object,this.fromIndex,this.toIndex,this.linkifier)}onattach(){this.listItemElement.classList.add("object-properties-section-name")}static bucketThreshold=100;static sparseIterationThreshold=25e4}class D extends i.TextPrompt.TextPrompt{constructor(){super(),this.initialize(l.JavaScript.completeInContext)}}class _{static#e=new WeakMap;static#t=new WeakMap;#n=new Set;constructor(e){e.addEventListener(i.TreeOutline.Events.ElementAttached,this.#i,this),e.addEventListener(i.TreeOutline.Events.ElementExpanded,this.#o,this),e.addEventListener(i.TreeOutline.Events.ElementCollapsed,this.#s,this)}watchSection(e,t){_.#t.set(t,e),this.#n.has(e)&&t.expand()}stopWatchSectionsWithId(e){for(const t of this.#n)t.startsWith(e+":")&&this.#n.delete(t)}#i(e){const t=e.data;t.isExpandable()&&this.#n.has(this.#r(t))&&t.expand()}#o(e){const t=e.data;this.#n.add(this.#r(t))}#s(e){const t=e.data;this.#n.delete(this.#r(t))}#r(e){const t=_.#e.get(e);if(t)return t;let n=e,i=n;if(!e.treeOutline)throw new Error("No tree outline available");const o=e.treeOutline.rootElement();let s;for(;n!==o;){let e="";e=n.property?n.property.name:"string"==typeof n.title?n.title:n.title.textContent||"",s=e+(s?"."+s:""),i=n,n.parent&&(n=n.parent)}return s=_.#t.get(i)+(s?":"+s:""),_.#e.set(e,s),s}}let V;class W{static instance(e={forceNew:!1}){const{forceNew:t}=e;return V&&!t||(V=new W),V}async render(e,t){if(!(e instanceof r.RemoteObject.RemoteObject))throw new Error("Can't render "+e);const n=(t=t||{title:void 0,editable:void 0}).title,i=new M(e,n);return n||i.titleLessMode(),i.editable=Boolean(t.editable),{node:i.element,tree:i}}}class ${element;constructor(e){this.element=e}appendApplicableItems(e,t,n){}}class H extends ${text;maxLength;expandElement;maxDisplayableTextLength;expandElementText;copyButtonText;constructor(e,n,o){super(e);const r=e.createChild("span");this.text=n,this.maxLength=o,r.textContent=n.slice(0,o),i.Tooltip.Tooltip.install(r,`${n.slice(0,o)}…`),this.expandElement=r.createChild("button"),this.maxDisplayableTextLength=1e7;const a=s.StringUtilities.countWtf8Bytes(n),l=t.ByteUtilities.bytesToString(a);this.text.length<this.maxDisplayableTextLength?(this.expandElementText=S(O.showMoreS,{PH1:l}),this.expandElement.setAttribute("data-text",this.expandElementText),this.expandElement.setAttribute("jslog",`${c.action("expand").track({click:!0})}`),this.expandElement.classList.add("expandable-inline-button"),this.expandElement.addEventListener("click",this.expandText.bind(this))):(this.expandElement.setAttribute("data-text",S(O.longTextWasTruncatedS,{PH1:l})),this.expandElement.classList.add("undisplayable-text")),this.copyButtonText=S(O.copy);const p=r.createChild("button","expandable-inline-button");p.setAttribute("data-text",this.copyButtonText),p.setAttribute("jslog",`${c.action("copy").track({click:!0})}`),p.addEventListener("click",this.copyText.bind(this))}appendApplicableItems(e,t,n){this.text.length<this.maxDisplayableTextLength&&this.expandElement&&t.clipboardSection().appendItem(this.expandElementText||"",this.expandText.bind(this),{jslogContext:"show-more"}),t.clipboardSection().appendItem(this.copyButtonText,this.copyText.bind(this),{jslogContext:"copy"})}expandText(){this.expandElement&&(this.expandElement.parentElement&&this.expandElement.parentElement.insertBefore(document.createTextNode(this.text.slice(this.maxLength)),this.expandElement),this.expandElement.remove(),this.expandElement=null)}copyText(){o.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(this.text)}}var B=Object.freeze({__proto__:null,ArrayGroupingTreeElement:F,ExpandableTextPropertyValue:H,InitialVisibleChildrenLimit:200,ObjectPropertiesSection:M,ObjectPropertiesSectionsTreeExpandController:_,ObjectPropertiesSectionsTreeOutline:R,ObjectPropertyPrompt:D,ObjectPropertyTreeElement:N,ObjectPropertyValue:$,Renderer:W,RootElement:U,getObjectPropertiesSectionFrom:e=>L.get(e)});const J={showAsJavascriptObject:"Show as JavaScript object"},G=t.i18n.registerUIStrings("ui/legacy/components/object_ui/CustomPreviewComponent.ts",J),z=t.i18n.getLocalizedString.bind(void 0,G);class K{sectionElement;object;expanded;cachedContent;header;expandIcon;constructor(t){this.sectionElement=document.createElement("span"),this.sectionElement.classList.add("custom-expandable-section"),this.object=t,this.expanded=!1,this.cachedContent=null;const i=t.customPreview();if(!i)return;let o;try{o=JSON.parse(i.header)}catch(t){return void e.Console.Console.instance().error("Broken formatter: header is invalid json "+t)}this.header=this.renderJSONMLTag(o),this.header.nodeType!==Node.TEXT_NODE?(i.bodyGetterId&&(this.header instanceof Element&&this.header.classList.add("custom-expandable-section-header"),this.header.addEventListener("click",this.onClick.bind(this),!1),this.expandIcon=n.Icon.create("triangle-right","custom-expand-icon"),this.header.insertBefore(this.expandIcon,this.header.firstChild)),this.sectionElement.appendChild(this.header)):e.Console.Console.instance().error("Broken formatter: header should be an element node.")}element(){return this.sectionElement}renderJSONMLTag(e){return Array.isArray(e)?"object"===e[0]?this.layoutObjectTag(e):this.renderElement(e):document.createTextNode(String(e))}renderElement(t){const n=t.shift();if(!q.includes(n))return e.Console.Console.instance().error("Broken formatter: element "+n+" is not allowed!"),document.createElement("span");const i=document.createElement(n);if("object"==typeof t[0]&&!Array.isArray(t[0])){const e=t.shift();for(const t in e){const n=e[t];"style"===t&&"string"==typeof n&&i.setAttribute(t,n)}}return this.appendJsonMLTags(i,t),i}layoutObjectTag(e){e.shift();const t=e.shift(),n=this.object.runtimeModel().createRemoteObject(t);if(n.customPreview())return new K(n).element();const i=M.defaultObjectPresentation(n);return i.classList.toggle("custom-expandable-section-standard-section",n.hasChildren),i}appendJsonMLTags(e,t){for(let n=0;n<t.length;++n)e.appendChild(this.renderJSONMLTag(t[n]))}onClick(e){e.consume(!0),this.cachedContent?this.toggleExpand():this.loadBody()}toggleExpand(){this.expanded=!this.expanded,this.header instanceof Element&&this.header.classList.toggle("expanded",this.expanded),this.cachedContent instanceof Element&&this.cachedContent.classList.toggle("hidden",!this.expanded),this.expandIcon&&(this.expanded?this.expandIcon.name="triangle-down":this.expandIcon.name="triangle-right")}defaultBodyTreeOutline;async loadBody(){const e=this.object.customPreview();if(e&&e.bodyGetterId){const t=await this.object.callFunctionJSON((e=>e()),[{objectId:e.bodyGetterId}]);null===t?(this.defaultBodyTreeOutline=new R({readOnly:!0}),this.defaultBodyTreeOutline.setShowSelectionOnKeyboardFocus(!0,!1),this.defaultBodyTreeOutline.element.classList.add("custom-expandable-section-default-body"),N.populate(this.defaultBodyTreeOutline.rootElement(),this.object,!1,!1),this.cachedContent=this.defaultBodyTreeOutline.element):this.cachedContent=this.renderJSONMLTag(t),this.sectionElement.appendChild(this.cachedContent),this.toggleExpand()}}}const q=["span","div","ol","li","table","tr","td"];class X{object;customPreviewSection;element;constructor(e){this.object=e,this.customPreviewSection=new K(e),this.element=document.createElement("span"),this.element.classList.add("source-code");const t=i.UIUtils.createShadowRootWithCoreStyles(this.element,{cssFile:m});this.element.addEventListener("contextmenu",this.contextMenuEventFired.bind(this),!1),t.appendChild(this.customPreviewSection.element())}expandIfPossible(){const e=this.object.customPreview();e&&e.bodyGetterId&&this.customPreviewSection&&this.customPreviewSection.loadBody()}contextMenuEventFired(e){const t=new i.ContextMenu.ContextMenu(e);this.customPreviewSection&&t.revealSection().appendItem(z(J.showAsJavascriptObject),this.disassemble.bind(this),{jslogContext:"show-as-javascript-object"}),t.appendApplicableItems(this.object),t.show()}disassemble(){this.element.shadowRoot&&(this.element.shadowRoot.textContent="",this.customPreviewSection=null,this.element.shadowRoot.appendChild(M.defaultObjectPresentation(this.object)))}}var Q=Object.freeze({__proto__:null,CustomPreviewComponent:X,CustomPreviewSection:K}),Y={cssText:`.widget:has(.object-popover-tree){padding:0;border-radius:var(--sys-shape-corner-extra-small)}.object-popover-content{display:flex;position:relative;overflow:hidden;flex:1 1 auto;flex-direction:column}.object-popover-title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-weight:bold;padding-left:18px;padding-bottom:2px;padding-top:var(--sys-size-3);flex-shrink:0}.object-popover-tree{border-top:1px solid var(--sys-color-divider);overflow:auto;width:100%;height:calc(100% - 13px)}.object-popover-container{display:inline-block}.object-popover-description-box{padding:6px;max-width:350px;line-height:1.4}.object-popover-footer{margin-top:8px}\n/*# sourceURL=${import.meta.resolve("./objectPopover.css")} */\n`};const Z={learnMore:"Learn more"},ee=t.i18n.registerUIStrings("ui/legacy/components/object_ui/ObjectPopoverHelper.ts",Z),te=t.i18n.getLocalizedString.bind(void 0,ee);class ne{linkifier;resultHighlightedAsDOM;constructor(e,t){this.linkifier=e,this.resultHighlightedAsDOM=t}dispose(){this.resultHighlightedAsDOM&&r.OverlayModel.OverlayModel.hideDOMNodeHighlight(),this.linkifier&&this.linkifier.dispose()}static async buildObjectPopover(e,t){const n=s.StringUtilities.trimEndWithMaxLength(e.description||"",ie);let o=null;if("function"===e.type||"object"===e.type){let s=null,a=!1;if("node"===e.subtype&&(r.OverlayModel.OverlayModel.highlightObjectAsDOMNode(e),a=!0),e.customPreview()){const t=new X(e);t.expandIfPossible(),o=t.element}else{o=document.createElement("div"),o.classList.add("object-popover-content"),t.registerRequiredCSS(T,Y);const i=o.createChild("div","object-popover-title");"function"===e.type?(i.classList.add("source-code"),i.appendChild(M.valueElementForFunctionDescription(e.description))):(i.classList.add("monospace"),i.createChild("span").textContent=n),s=new u.Linkifier.Linkifier;const r=new M(e,"",s,!0);r.element.classList.add("object-popover-tree"),r.titleLessMode(),o.appendChild(r.element)}return o.dataset.stableNameForTest="object-popover-content",t.setMaxContentSize(new i.Geometry.Size(300,250)),t.setSizeBehavior("SetExactSize"),t.contentElement.appendChild(o),new ne(s,a)}o=document.createElement("span"),o.dataset.stableNameForTest="object-popover-content",t.registerRequiredCSS(T,Y);const a=o.createChild("span","monospace object-value-"+e.type);return a.style.whiteSpace="pre","string"===e.type?i.UIUtils.createTextChildren(a,`"${n}"`):a.textContent=n,t.contentElement.appendChild(o),new ne(null,!1)}static buildDescriptionPopover(e,t,n){const o=document.createElement("div");o.classList.add("object-popover-description-box");const s=document.createElement("div");s.dataset.stableNameForTest="object-popover-content",n.registerRequiredCSS(Y),s.textContent=e;const r=i.XLink.XLink.create(t,te(Z.learnMore),void 0,void 0,"learn-more"),a=document.createElement("div");return a.classList.add("object-popover-footer"),a.appendChild(r),o.appendChild(s),o.appendChild(a),n.contentElement.appendChild(o),new ne(null,!1)}}const ie=1e4;var oe=Object.freeze({__proto__:null,ObjectPopoverHelper:ne});export{Q as CustomPreviewComponent,E as JavaScriptREPL,oe as ObjectPopoverHelper,B as ObjectPropertiesSection,w as RemoteObjectPreviewFormatter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../../../core/common/common.js";import*as t from"../../../../core/i18n/i18n.js";import"../../../../core/root/root.js";import*as o from"../../legacy.js";const i={flamechartSelectedNavigation:"Flamechart navigation:",modern:"Modern",classic:"Classic",liveMemoryAllocationAnnotations:"Live memory allocation annotations",showLiveMemoryAllocation:"Show live memory allocation annotations",hideLiveMemoryAllocation:"Hide live memory allocation annotations",collectGarbage:"Collect garbage"},a=t.i18n.registerUIStrings("ui/legacy/components/perf_ui/perf_ui-meta.ts",i),n=t.i18n.getLazilyComputedLocalizedString.bind(void 0,a);let l;o.ActionRegistration.registerActionExtension({actionId:"components.collect-garbage",category:"PERFORMANCE",title:n(i.collectGarbage),iconClass:"mop",loadActionDelegate:async()=>new((await async function(){return l||(l=await import("./perf_ui.js")),l}()).GCActionDelegate.GCActionDelegate)}),e.Settings.registerSettingExtension({category:"PERFORMANCE",storageType:"Synced",title:n(i.flamechartSelectedNavigation),settingName:"flamechart-selected-navigation",settingType:"enum",defaultValue:"classic",options:[{title:n(i.modern),text:n(i.modern),value:"modern"},{title:n(i.classic),text:n(i.classic),value:"classic"}]}),e.Settings.registerSettingExtension({category:"MEMORY",experiment:"live-heap-profile",title:n(i.liveMemoryAllocationAnnotations),settingName:"memory-live-heap-profile",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:n(i.showLiveMemoryAllocation)},{value:!1,title:n(i.hideLiveMemoryAllocation)}]});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import*as e from"../../../../core/i18n/i18n.js";import*as t from"../../../../services/window_bounds/window_bounds.js";import*as i from"../../theme_support/theme_support.js";import*as s from"../../../../core/common/common.js";import*as r from"../../../../core/platform/platform.js";import*as n from"../../../components/render_coordinator/render_coordinator.js";import*as o from"../../legacy.js";import*as a from"../../../../models/trace/trace.js";import*as l from"../../../visual_logging/visual_logging.js";import*as h from"../../../components/buttons/buttons.js";import*as d from"../../../../core/host/host.js";import*as c from"../../../../core/sdk/sdk.js";import*as u from"../../../../models/bindings/bindings.js";import*as m from"../../../../models/workspace/workspace.js";import"../source_frame/source_frame.js";import*as p from"../../../components/icon_button/icon_button.js";import{html as g,svg as v,render as f}from"../../../lit/lit.js";const w={congrats:"Congrats, you win!",ps:"PS: You can also open the game by typing `fixme`"},b=e.i18n.registerUIStrings("ui/legacy/components/perf_ui/BrickBreaker.ts",w),y=e.i18n.getLocalizedString.bind(void 0,b),T=15,E=10,x=[{light:"rgb(224,240,255)",mediumLighter:"rgb(176,208,255)",mediumDarker:"rgb(112,160,221)",dark:"rgb(0,92,153)"},{light:"rgb(253, 216, 229)",mediumLighter:"rgb(250, 157, 188)",mediumDarker:"rgb(249, 98, 154)",dark:"rgb(254, 5, 105)"},{light:"rgb(254, 234, 234)",mediumLighter:"rgb(255, 216, 216)",mediumDarker:"rgb(255, 195, 195)",dark:"rgb(235, 125, 138)"},{light:"rgb(226,183,206)",mediumLighter:"rgb(219,124,165)",mediumDarker:"rgb(146,60,129)",dark:"rgb(186, 85, 255)"},{light:"rgb(206,255,206)",mediumLighter:"rgb(128,255,128)",mediumDarker:"rgb(0,246,0)",dark:"rgb(0,187,0)"},{light:"rgb(255, 188, 181)",mediumLighter:"rgb(254, 170, 170)",mediumDarker:"rgb(215, 59, 43)",dark:"rgb(187, 37, 23)"},{light:"rgb(236, 254, 250)",mediumLighter:"rgb(204, 255, 245)",mediumDarker:"rgb(164, 240, 233)",dark:"rgb(72,189,144)"},{light:"rgb(255, 225, 185)",mediumLighter:"rgb(255, 204, 141)",mediumDarker:"rgb(240, 140, 115)",dark:"rgb(211, 96, 117)"},{light:"rgb(218, 255, 248)",mediumLighter:"rgb(177, 235, 236)",mediumDarker:"rgb(112, 214, 214)",dark:"rgb(34, 205, 181)"}];class C extends HTMLElement{timelineFlameChart;#e;#t;#i;#s;#r;#n=0;#o=new Set;#a=new Map;#l=this.#h.bind(this);#d=this.#c.bind(this);#u=this.#m.bind(this);#p=this.#g.bind(this);#v=this.#f.bind(this);#w=t.WindowBoundsService.WindowBoundsServiceImpl.instance().getDevToolsBoundingElement();#b=0;#y=!1;#T=devicePixelRatio;#E=0;#x=0;#C=0;#S=0;#L=0;#k=!1;#P=!1;#D=0;#R=0;#I=0;#M=150;#H=150;#B=1500;#O=this.#B-this.#H;#A=0;#G=0;#z;constructor(e){super(),this.timelineFlameChart=e,this.#e=this.createChild("canvas","fill"),this.#t=this.#e.getContext("2d"),this.#i=document.createElement("canvas"),this.#s=this.#i.getContext("2d");const t=Math.floor(Math.random()*x.length);this.#z=x[t],this.#r=this.createChild("div"),this.#r.classList.add("scorePanel"),this.#r.style.borderImage="linear-gradient("+this.#z.mediumDarker+","+this.#z.dark+") 1",this.initButton()}initButton(){const e=this.createChild("div");e.classList.add("game-close-button"),e.innerHTML="<b><span style='font-size: 1.2em; color: white'>x</span></b>",e.style.background=this.#z.dark,e.style.boxShadow=this.#z.dark+" 1px 1px, "+this.#z.mediumDarker+" 3px 3px, "+this.#z.mediumLighter+" 5px 5px",e.addEventListener("click",this.#g.bind(this)),this.appendChild(e)}connectedCallback(){this.#y=!0,this.#V(),this.#w.addEventListener("keydown",this.#l),document.addEventListener("keydown",this.#l,!1),document.addEventListener("keyup",this.#d,!1),document.addEventListener("keypress",this.#u,!1),window.addEventListener("resize",this.#p),document.addEventListener("mousemove",this.#v,!1),this.tabIndex=1,this.focus()}disconnectedCallback(){this.#w.removeEventListener("keydown",this.#l),window.removeEventListener("resize",this.#p),document.removeEventListener("keydown",this.#l,!1),document.removeEventListener("keyup",this.#d,!1),window.removeEventListener("resize",this.#p),document.removeEventListener("keypress",this.#u,!1),document.removeEventListener("mousemove",this.#v,!1)}#W(){const e=window.devicePixelRatio,t=Math.round(this.offsetHeight*e),i=Math.round(this.offsetWidth*e);this.#e.height=t,this.#e.width=i,this.#e.style.height=t/e+"px",this.#e.style.width=i/e+"px"}#g(){this.#y=!1,this.remove()}#V(){this.#W(),this.#A=Math.max(.1,(this.offsetHeight-this.#H)/this.#O),this.#G=10*this.#A;const e=this.timelineFlameChart.drawTrackOnCanvas("Main",this.#t,E);if(null===e||0===e.visibleEntries.size)return console.error("Could not draw game"),void this.#g();this.#n=e.top,this.#o=e.visibleEntries,this.#b=this.#n+this.timelineFlameChart.getCanvas().getBoundingClientRect().top-this.timelineFlameChart.getScrollOffset(),requestAnimationFrame((()=>this.#F(e.top,e.height)))}#F(e,t){if(0===e)return void this.#U();const i=window.devicePixelRatio,s=Math.round(e*i),r=Math.max(e-4,0),n=Math.round(r*i),o=this.#e;this.#i.height=o.height,this.#i.width=o.width,this.#i.style.height=o.style.height,this.#i.style.width=o.style.width,this.#s.drawImage(o,0,s,o.width,t*i,0,n,o.width,t*i),this.#W(),this.#t.drawImage(this.#i,0,0),requestAnimationFrame((()=>this.#F(r,t)))}#c(e){"Right"===e.key||"ArrowRight"===e.key||"d"===e.key?(this.#k=!1,e.preventDefault()):"Left"===e.key||"ArrowLeft"===e.key||"a"===e.key?(this.#P=!1,e.preventDefault()):e.stopImmediatePropagation()}#m(e){e.stopImmediatePropagation(),e.preventDefault()}#h(e){"Escape"===e.key?(this.#g(),e.stopImmediatePropagation()):"Right"===e.key||"ArrowRight"===e.key||"d"===e.key?(this.#k=!0,e.preventDefault()):"Left"===e.key||"ArrowLeft"===e.key||"a"===e.key?(this.#P=!0,e.preventDefault()):(e.preventDefault(),e.stopImmediatePropagation())}#f(e){this.#L=Math.max(e.offsetX-this.#M/2,0),this.#L=Math.min(this.#L,this.offsetWidth-this.#M)}#U(){this.#E=this.offsetWidth/2,this.#x=this.offsetHeight-T-E,this.#C=0,this.#S=-Math.SQRT2*this.#G,this.#L=(this.#e.width-this.#M)/2,this.#k=!1,this.#P=!1,this.#D=this.timelineFlameChart.getBarHeight(),this.#I=this.#o.size,this.#R=Math.max(Math.round(this.#I/17),2),this.#N()}#_(){this.#E=this.offsetWidth/2,this.#x=this.offsetHeight-T-E,this.#C=0,this.#S=-Math.SQRT2*this.#G}#X(){if(!this.#t)return;const e=this.#t.createRadialGradient(this.#E+2.5,this.#x-2.5,0,this.#E+2.5,this.#x-2.5,E);e.addColorStop(.3,this.#z.mediumLighter),e.addColorStop(.6,this.#z.mediumDarker),e.addColorStop(1,this.#z.dark),this.#t.beginPath(),this.#t.arc(this.#E,this.#x,E,0,2*Math.PI),this.#t.fillStyle=e,this.#t.fill(),this.#t.closePath()}#$(){if(!this.#t)return;const e=this.#t.createRadialGradient(this.#L+this.#M/3,this.offsetHeight-T-3.75,0,this.#L+this.#M/3,this.offsetHeight-T-3.75,this.#M/2);e.addColorStop(.3,this.#z.dark),e.addColorStop(1,this.#z.mediumDarker),this.#t.beginPath(),this.#t.rect(this.#L,this.offsetHeight-T,this.#M,T),this.#t.fillStyle=e,this.#t.fill(),this.#t.closePath()}#K(){if(this.#t)for(const e of this.#a.values())this.#t.beginPath(),this.#t.rect(e.x,e.y,e.width+.5,this.#D+.5),this.#t.fillStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-neutral-container",this),this.#t.fill(),this.#t.closePath()}#N(){if(this.#T!==devicePixelRatio&&(this.#y=!1),0===this.#R)return window.alert("GAME OVER"),void this.#g();if(0===this.#I)return void this.#j();this.#t.clearRect(0,0,this.#e.width,this.#e.height),this.#t.drawImage(this.#i,0,0),this.#t.save(),this.#t.scale(devicePixelRatio,devicePixelRatio),this.#s.save(),this.#s.scale(devicePixelRatio,devicePixelRatio),this.#K(),this.#X(),this.#$(),this.#Y();const e=`<div><b><span style='font-size: 1.3em; color: ${this.#z.dark}'>❤️ ${this.#R}</span></b></div>`,t=`<div><b><span style='font-size: 1.3em; color: ${this.#z.dark}'> 🧱 ${this.#I}</span></b></div>`;if(this.#r.innerHTML=e+t,this.#I=this.#o.size-this.#a.size,this.#G=(10+6*this.#a.size/this.#o.size)*this.#A,this.#M=150-65*this.#a.size/this.#o.size,(this.#E+this.#C>this.offsetWidth-E||this.#E+this.#C<E)&&(this.#C=-this.#C),this.#x+this.#S<E)this.#S=-this.#S;else if(this.#x+this.#S>this.offsetHeight-E&&this.#S>0)if(this.#E>this.#L-E&&this.#E<this.#L+this.#M+E){let e=Math.min(this.#E,this.#L+this.#M);e=Math.max(e,this.#L);const t=(e-this.#L)*this.#G*2/this.#M;this.#C=-this.#G+t,this.#S=-Math.sqrt(2*Math.pow(this.#G,2)-Math.pow(this.#C,2))}else this.#_(),this.#L=(this.offsetWidth-this.#M)/2,this.#R--;const i=Math.round(this.clientWidth/60);this.#k&&this.#L<this.offsetWidth-this.#M?this.#L+=i:this.#P&&this.#L>0&&(this.#L-=i),this.#E+=Math.round(this.#C),this.#x+=Math.round(this.#S),this.#t.restore(),this.#s.restore(),this.#y&&requestAnimationFrame(this.#N.bind(this))}#Y(){const e=this.timelineFlameChart.getCanvas().getBoundingClientRect(),t=this.#x+this.#b-e.top,i=this.timelineFlameChart.coordinatesToEntryIndex(this.#E,t+E),s=this.timelineFlameChart.coordinatesToEntryIndex(this.#E,t-E),r=this.timelineFlameChart.coordinatesToEntryIndex(this.#E+E,t),n=this.timelineFlameChart.coordinatesToEntryIndex(this.#E-E,t),o=E/Math.SQRT2,a=this.timelineFlameChart.coordinatesToEntryIndex(this.#E+o,t+o),l=this.timelineFlameChart.coordinatesToEntryIndex(this.#E-o,t+o),h=this.timelineFlameChart.coordinatesToEntryIndex(this.#E+o,t-o),d=this.timelineFlameChart.coordinatesToEntryIndex(this.#E-o,t-o),c=t=>{const i=this.timelineFlameChart.entryIndexToCoordinates(t);if(i){const s=Math.max(i.x-e.left,0);this.#a.set(t,{x:s-.5,y:i.y-this.#b-.5,width:this.timelineFlameChart.entryWidth(t)})}};if(i>-1&&!this.#a.has(i)&&this.#o.has(i))return this.#S=-this.#S,void c(i);if(s>-1&&!this.#a.has(s)&&this.#o.has(s))return this.#S=-this.#S,void c(s);if(r>-1&&!this.#a.has(r)&&this.#o.has(r))return this.#C=-this.#C,void c(r);if(n>-1&&!this.#a.has(n)&&this.#o.has(n))return this.#C=-this.#C,void c(n);const u=[a,l,h,d];for(const e of u)if(e>-1&&!this.#a.has(e)&&this.#o.has(e))return this.#C=-this.#C,this.#S=-this.#S,void c(e)}#Z(e,t){return Math.floor(Math.random()*(t-e)+e)}#j(){this.#W();let e=0;const t=this.offsetWidth/15,i=.7*this.offsetHeight/15,s=[],r=()=>40*Math.random()-20,n=()=>{for(let e=0;e<75;e++){const n=document.createElement("span");n.className="confetti-100",n.append(this.#q(e%15*t+r(),e%5*i+r())),s.push(window.setTimeout((()=>this.append(n)),100*Math.random())),s.push(window.setTimeout((()=>{n.remove()}),1e3))}++e<6?setTimeout(n,100*Math.random()+400):(window.alert(`${y(w.congrats)}\n${y(w.ps)}`),s.forEach((e=>clearTimeout(e))),this.#g())};n()}#q(e,t){const i=400,s=["💯","🎉","🎊"],r=document.createElement("span");return r.textContent=s[this.#Z(0,s.length)],r.className="confetti-100-particle",r.style.setProperty("--rotation",this.#Z(-1080,1080)+"deg"),r.style.setProperty("--to-X",this.#Z(-400,i)+"px"),r.style.setProperty("--to-Y",this.#Z(-400,i)+"px"),r.style.left=e+"px",r.style.top=t+"px",r}}customElements.define("brick-breaker",C);var S=Object.freeze({__proto__:null,BrickBreaker:C}),L={cssText:`.chart-viewport-v-scroll{position:absolute;top:0;right:0;bottom:0;overflow-x:hidden;z-index:200;padding-left:1px}.chart-viewport-v-scroll.always-show-scrollbar{overflow-y:scroll}:host-context(.platform-mac) .chart-viewport-v-scroll{right:2px;top:3px;bottom:3px}:host-context(.platform-mac) ::-webkit-scrollbar{width:8px}:host-context(.platform-mac) ::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-mac);border-radius:50px}:host-context(.platform-mac) .chart-viewport-v-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-mac-hover)}:host-context(.overlay-scrollbar-enabled) ::-webkit-scrollbar{width:10px}:host-context(.overlay-scrollbar-enabled) ::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-other)}:host-context(.overlay-scrollbar-enabled) .chart-viewport-v-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-other-hover)}.chart-viewport-selection-overlay{position:absolute;z-index:100;background-color:var(--sys-color-state-ripple-primary);border-color:var(--sys-color-primary);border-width:0 1px;border-style:solid;pointer-events:none;top:0;bottom:0;text-align:center}.chart-viewport-selection-overlay .time-span{white-space:nowrap;position:absolute;left:0;right:0;bottom:0}\n/*# sourceURL=${import.meta.resolve("./chartViewport.css")} */\n`};function k(e,t,i){e.moveTo(0,i),e.lineTo(t,i)}function P(e,t,s,r,n,o="--sys-color-on-surface"){const a=new Path2D(n);e.save(),e.translate(t,s),e.fillStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container"),e.fillRect(0,0,r,r),e.fillStyle=i.ThemeSupport.instance().getComputedValue(o);const l=r/20;e.scale(l,l),e.fill(a),e.restore()}var D={cssText:`.flame-chart-main-pane{overflow:hidden;--selected-group-border:hsl(216deg 68% 54%)}:host-context(.theme-with-dark-background) .flame-chart-main-pane{--selected-group-border:hsl(216deg 68% 46%)}.flame-chart-marker-highlight-element{position:absolute;top:1px;height:18px;width:6px;margin:0 -3px;content:"";display:block}.flame-chart-canvas:focus-visible{border-top:1px solid var(--sys-color-state-focus-ring);border-bottom:1px solid var(--sys-color-state-focus-ring)}.flame-chart-highlight-element{position:absolute;pointer-events:none;background-color:var(--sys-color-state-hover-on-subtle)}.reveal-descendants-arrow-highlight-element{position:absolute;pointer-events:none;background-color:var(--sys-color-state-hover-on-subtle)}.flame-chart-selected-element{position:absolute;pointer-events:none;outline:2px solid var(--sys-color-primary);background-color:var(--sys-color-state-ripple-primary)}.chart-cursor-element{position:absolute;top:0;bottom:0;z-index:100;width:2px;background-color:var(--ref-palette-pink50);pointer-events:none}.flame-chart-entry-info:not(:empty){z-index:2000;position:absolute;contain:content;background-color:var(--sys-color-cdt-base-container);pointer-events:none;padding:4px 8px;white-space:nowrap;max-width:80%;box-shadow:var(--drop-shadow)}.flame-chart-entry-info table tr td:empty{padding:0}.flame-chart-entry-info table tr td:not(:empty){padding:0 5px;white-space:nowrap}.flame-chart-entry-info table tr td:first-child{font-weight:bold}.flame-chart-entry-info table tr td span{margin-right:5px}.flame-chart-edit-confirm{position:fixed;bottom:10px;right:10px}\n/*# sourceURL=${import.meta.resolve("./flameChart.css")} */\n`};let R=null;function I(){if(R)return R;const e=getComputedStyle(document.body);return R=e.fontFamily?e.fontFamily:d.Platform.fontFamily(),R}const M="11px";var H=Object.freeze({__proto__:null,DEFAULT_FONT_SIZE:M,getFontFamilyForCanvas:I}),B={cssText:`.resources-dividers{position:absolute;inset:0;z-index:-100}.resources-event-dividers{position:absolute;left:0;right:0;height:100%;top:0;z-index:300;pointer-events:none}.resources-dividers-label-bar{position:absolute;top:0;left:0;right:0;background-clip:padding-box;height:20px;z-index:200;pointer-events:none;overflow:hidden}.resources-divider{position:absolute;width:1px;top:0;bottom:0;background-color:var(--sys-color-divider)}.resources-event-divider{position:absolute;width:1px;top:0;bottom:0;z-index:300}.resources-divider-label{position:absolute;top:4px;right:3px;font-size:80%;white-space:nowrap;pointer-events:none}.timeline-grid-header{height:20px;pointer-events:none}\n/*# sourceURL=${import.meta.resolve("./timelineGrid.css")} */\n`};const O=new Map;class A{element;dividersElementInternal;gridHeaderElement;eventDividersElement;dividersLabelBarElementInternal;constructor(){this.element=document.createElement("div"),i.ThemeSupport.instance().appendStyle(this.element,B),this.dividersElementInternal=this.element.createChild("div","resources-dividers"),this.gridHeaderElement=document.createElement("div"),this.gridHeaderElement.classList.add("timeline-grid-header"),this.eventDividersElement=this.gridHeaderElement.createChild("div","resources-event-dividers"),this.dividersLabelBarElementInternal=this.gridHeaderElement.createChild("div","resources-dividers-label-bar"),this.element.appendChild(this.gridHeaderElement)}static calculateGridOffsets(e,t){const i=e.computePosition(e.maximumBoundary());let s=i/64,r=e.boundarySpan()/s;const n=i/e.boundarySpan(),o=Math.ceil(Math.log(r)/Math.LN10);r=Math.pow(10,o),r*n>=320&&(r/=5),r*n>=128&&(r/=2);const a=Math.ceil((e.minimumBoundary()-e.zeroTime())/r)*r+e.zeroTime();let l=e.maximumBoundary();l+=64/n,s=Math.ceil((l-a)/r),r||(s=0);const h=[];for(let i=0;i<s;++i){const s=a+100*r*i/100,n=e.computePosition(s);n<(t||0)||h.push({position:Math.floor(n),time:s})}return{offsets:h,precision:Math.max(0,-Math.floor(Math.log(1.01*r)/Math.LN10))}}static drawCanvasGrid(e,t){e.save(),e.scale(window.devicePixelRatio,window.devicePixelRatio);const i=Math.floor(e.canvas.height/window.devicePixelRatio);e.strokeStyle=getComputedStyle(document.body).getPropertyValue("--app-color-strokestyle"),e.lineWidth=1,e.translate(.5,.5),e.beginPath();for(const s of t.offsets)e.moveTo(s.position,0),e.lineTo(s.position,i);e.stroke(),e.restore()}static drawCanvasHeaders(e,t,s,r,n,o){e.save(),e.scale(window.devicePixelRatio,window.devicePixelRatio);const a=Math.ceil(e.canvas.width/window.devicePixelRatio);e.beginPath(),e.fillStyle=i.ThemeSupport.instance().getComputedValue("--color-background-opacity-50"),e.fillRect(0,0,a,n),e.fillStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-on-surface"),e.textBaseline="hanging",e.font=`${M} ${I()}`;for(const i of t.offsets){const t=s(i.time),n=e.measureText(t).width,a=i.position-n-4;(!o||o<a)&&e.fillText(t,a,r)}e.restore()}get dividersElement(){return this.dividersElementInternal}get dividersLabelBarElement(){return this.dividersLabelBarElementInternal}updateDividers(e,t){const i=A.calculateGridOffsets(e,t),s=i.offsets,r=i.precision,n=this.dividersElementInternal.clientWidth;let o=this.dividersElementInternal.firstChild,a=this.dividersLabelBarElementInternal.firstChild;for(let t=0;t<s.length;++t){if(!o){o=document.createElement("div"),o.className="resources-divider",this.dividersElementInternal.appendChild(o),a=document.createElement("div"),a.className="resources-divider";const e=document.createElement("div");e.className="resources-divider-label",O.set(a,e),a.appendChild(e),this.dividersLabelBarElementInternal.appendChild(a)}const i=s[t].time,l=s[t].position;if(a){const t=O.get(a);t&&(t.textContent=e.formatValue(i,r))}const h=100*l/n;o.style.left=h+"%",a&&(a.style.left=h+"%"),o=o.nextSibling,a&&(a=a.nextSibling)}for(;o;){const e=o.nextSibling;if(this.dividersElementInternal.removeChild(o),!e)break;o=e}for(;a;){const e=a.nextSibling;if(this.dividersLabelBarElementInternal.removeChild(a),!e)break;a=e}return!0}addEventDivider(e){this.eventDividersElement.appendChild(e)}addEventDividers(e){this.gridHeaderElement.removeChild(this.eventDividersElement);for(const t of e)this.eventDividersElement.appendChild(t);this.gridHeaderElement.appendChild(this.eventDividersElement)}removeEventDividers(){this.eventDividersElement.removeChildren()}hideEventDividers(){this.eventDividersElement.classList.add("hidden")}showEventDividers(){this.eventDividersElement.classList.remove("hidden")}setScrollTop(e){this.dividersLabelBarElementInternal.style.top=e+"px",this.eventDividersElement.style.top=e+"px"}}var G=Object.freeze({__proto__:null,TimelineGrid:A});const z={eventSelectedFromGroup:'Selected a {PH1} event within {PH2}. Press "enter" to focus this event.',flameChart:"Flame Chart",sHovered:"{PH1} hovered",sSelected:"{PH1} selected",sExpanded:"{PH1} expanded",sCollapsed:"{PH1} collapsed",labelEntry:"Label entry",linkEntries:"Link entries",deleteAnnotations:"Delete annotations",enterTrackConfigurationMode:"Configure tracks",exitTrackConfigurationMode:"Finish configuring tracks"},V=e.i18n.registerUIStrings("ui/legacy/components/perf_ui/FlameChart.ts",z),W=e.i18n.getLocalizedString.bind(void 0,V),F=8,U=6+F/2,N=16;class _ extends(s.ObjectWrapper.eventMixin(o.Widget.VBox)){groupExpansionSetting;groupExpansionState;groupHiddenState;flameChartDelegate;chartViewport;dataProvider;candyStripePattern;candyStripePatternGray;contextMenu;viewportElement;canvas;popoverElement;markerHighlighElement;highlightElement;revealDescendantsArrowHighlightElement;selectedElement=null;rulerEnabled;barHeight;hitMarginPx;textBaseline;textPadding;highlightedMarkerIndex;highlightedEntryIndex;selectedEntryIndex;rawTimelineDataLength;markerPositions;customDrawnPositions;lastMouseOffsetX;selectedGroupIndex;keyboardFocusedGroup;offsetWidth;offsetHeight;dragStartX;dragStartY;lastMouseOffsetY;minimumBoundaryInternal;maxDragOffset;timelineLevels;visibleLevelOffsets;visibleLevels;visibleLevelHeights;groupOffsets;rawTimelineData;forceDecorationCache;entryColorsCache;colorDimmingCache=new Map;totalTime;lastPopoverState;dimIndices;dimShouldOutlineUndimmedEntries=!1;#Q=0;#J;#ee;#te=null;#ie=!1;#se=!1;#re=null;#ne=!0;#oe=new Map;constructor(e,t,s={}){super(!0),this.#J=`${M} ${I()}`,this.registerRequiredCSS(D),this.contentElement.classList.add("flame-chart-main-pane"),"boolean"==typeof s.selectedElementOutline&&(this.#ne=s.selectedElementOutline),this.groupExpansionSetting=s.groupExpansionSetting,this.groupExpansionState=s.groupExpansionSetting?.get()||{},this.groupHiddenState={},this.flameChartDelegate=t;let r=!0;"boolean"==typeof s.useOverlaysForCursorRuler&&(r=!s.useOverlaysForCursorRuler),this.chartViewport=new Z(this,{enableCursorElement:r}),this.chartViewport.show(this.contentElement),this.dataProvider=e,this.viewportElement=this.chartViewport.viewportElement,this.canvas=this.viewportElement.createChild("canvas","fill"),this.candyStripePattern=this.candyStripePatternGray=null,this.canvas.tabIndex=0,o.ARIAUtils.setLabel(this.canvas,W(z.flameChart)),o.ARIAUtils.markAsTree(this.canvas),this.setDefaultFocusedElement(this.canvas),this.canvas.classList.add("flame-chart-canvas"),this.canvas.addEventListener("mousemove",this.onMouseMove.bind(this),!1),this.canvas.addEventListener("mouseout",this.onMouseOut.bind(this),!1),this.canvas.addEventListener("click",this.onClick.bind(this),!1),this.canvas.addEventListener("dblclick",this.#ae.bind(this),!1),this.canvas.addEventListener("keydown",this.onKeyDown.bind(this),!1),this.canvas.addEventListener("contextmenu",this.onContextMenu.bind(this),!1),this.popoverElement=s.tooltipElement||this.viewportElement.createChild("div","flame-chart-entry-info"),this.markerHighlighElement=this.viewportElement.createChild("div","flame-chart-marker-highlight-element"),this.highlightElement=this.viewportElement.createChild("div","flame-chart-highlight-element"),this.revealDescendantsArrowHighlightElement=this.viewportElement.createChild("div","reveal-descendants-arrow-highlight-element"),this.#ne&&(this.selectedElement=this.viewportElement.createChild("div","flame-chart-selected-element")),this.canvas.addEventListener("focus",(()=>{this.dispatchEventToListeners("CanvasFocused")}),!1),o.UIUtils.installDragHandle(this.viewportElement,this.startDragging.bind(this),this.dragging.bind(this),this.endDragging.bind(this),null),this.rulerEnabled=!0,this.barHeight=17,this.hitMarginPx=3,this.textBaseline=5,this.textPadding=5,this.chartViewport.setWindowTimes(e.minimumBoundary(),e.minimumBoundary()+e.totalTime()),this.highlightedMarkerIndex=-1,this.highlightedEntryIndex=-1,this.selectedEntryIndex=-1,this.#te=null,this.rawTimelineDataLength=0,this.markerPositions=new Map,this.customDrawnPositions=new Map,this.lastMouseOffsetX=0,this.selectedGroupIndex=-1,this.lastPopoverState={entryIndex:-1,groupIndex:-1,hiddenEntriesPopover:!1},this.keyboardFocusedGroup=-1,i.ThemeSupport.instance().addEventListener(i.ThemeChangeEvent.eventName,(()=>{this.scheduleUpdate()}))}willHide(){this.hideHighlight()}canvasBoundingClientRect(){return this.#re&&this.#re.width>0&&this.#re.height>0||(this.#re=this.canvas.getBoundingClientRect()),this.#re}setTooltipYPixelAdjustment(e){e!==this.#Q&&(this.#Q=e,this.popoverElement.children.length&&this.updatePopoverOffset())}getBarHeight(){return this.barHeight}setBarHeight(e){this.barHeight=e}setTextBaseline(e){this.textBaseline=e}setTextPadding(e){this.textPadding=e}enableRuler(e){this.rulerEnabled=e}alwaysShowVerticalScroll(){this.chartViewport.alwaysShowVerticalScroll()}disableRangeSelection(){this.chartViewport.disableRangeSelection()}#le(e){return!!this.dimIndices&&0!==this.dimIndices[e]}#he(e){return!(!this.isDimming()||this.#le(e))&&(ArrayBuffer.isView(this.dimShouldOutlineUndimmedEntries)?0!==this.dimShouldOutlineUndimmedEntries[e]:this.dimShouldOutlineUndimmedEntries)}#de(e,t){const i=new Uint8Array(this.rawTimelineDataLength);if(t)for(const t of e)i[t]=1;else{i.fill(1);for(const t of e)i[t]=0}return i}enableDimming(e,t,i){this.dimIndices=this.#de(e,t),this.dimShouldOutlineUndimmedEntries=Array.isArray(i)?this.#de(i,!0):i,this.draw()}disableDimming(){this.dimIndices=null,this.dimShouldOutlineUndimmedEntries=!1,this.draw()}isDimming(){return Boolean(this.dimIndices)}#ce(e,t){if(this.#le(e)){let e=this.colorDimmingCache.get(t);if(e)return e;const i=s.Color.parse(t);return e=i?i.asLegacyColor().grayscale().asString():"lightgrey",this.colorDimmingCache.set(t,e),e}return t}getColorForEntry(e){return this.entryColorsCache?this.#ce(e,this.entryColorsCache[e]):""}highlightEntry(e){this.highlightedEntryIndex!==e&&this.dataProvider.entryColor(e)&&(this.highlightedEntryIndex=e,this.updateElementPosition(this.highlightElement,this.highlightedEntryIndex),this.dispatchEventToListeners("EntryHovered",e))}hideHighlight(){null===this.#te&&(this.popoverElement.removeChildren(),this.lastPopoverState={entryIndex:-1,groupIndex:-1,hiddenEntriesPopover:!1}),-1!==this.highlightedEntryIndex&&(this.highlightedEntryIndex=-1,this.updateElementPosition(this.highlightElement,this.highlightedEntryIndex),this.dispatchEventToListeners("EntryHovered",-1))}createCandyStripePattern(e){const t=17,i=document.createElement("canvas");i.width=t,i.height=t;const s=i.getContext("2d");s.translate(8.5,8.5),s.rotate(.25*Math.PI),s.translate(-8.5,-8.5),s.fillStyle=e;for(let e=-17;e<34;e+=3)s.fillRect(e,-17,1,51);return s.createPattern(i,"repeat")}resetCanvas(){const e=window.devicePixelRatio,t=Math.round(this.offsetWidth*e),i=Math.round(this.offsetHeight*e);this.canvas.width=t,this.canvas.height=i,this.canvas.style.width=t/e+"px",this.canvas.style.height=i/e+"px"}windowChanged(e,t,i){this.flameChartDelegate.windowChanged(e,t,i)}updateRangeSelection(e,t){this.flameChartDelegate.updateRangeSelection(e,t)}setSize(e,t){this.offsetWidth=e,this.offsetHeight=t}startDragging(e){return this.hideHighlight(),this.maxDragOffset=0,this.dragStartX=e.pageX,this.dragStartY=e.pageY,!0}dragging(e){const t=e.pageX-this.dragStartX,i=e.pageY-this.dragStartY;this.maxDragOffset=Math.max(this.maxDragOffset,Math.sqrt(t*t+i*i))}endDragging(e){this.updateHighlight()}timelineData(e){if(!this.dataProvider)return null;const t=this.dataProvider.timelineData(e);return(t!==this.rawTimelineData||t&&t.entryStartTimes.length!==this.rawTimelineDataLength)&&this.processTimelineData(t),this.rawTimelineData||null}revealEntryVertically(e){const t=this.timelineData();if(!t)return;const i=t.entryLevels[e];this.chartViewport.setScrollOffset(this.levelToOffset(i),this.levelHeight(i),!0)}revealEntry(e){const t=this.timelineData();if(!t)return;const i=this.chartViewport.windowLeftTime(),s=this.chartViewport.windowRightTime(),r=t.entryStartTimes[e];let n=t.entryTotalTimes[e];Number.isNaN(n)&&(n=1);const o=r+n;let a=Math.min(n,s-i);const l=t.entryLevels[e];this.chartViewport.setScrollOffset(this.levelToOffset(l),this.levelHeight(l));const h=(s-i)/this.offsetWidth;if(a=Math.max(a,30*h),i>o){const e=i-o+a;this.windowChanged(i-e,s-e,!0)}else if(s<r){const e=r-s+a;this.windowChanged(i+e,s+e,!0)}}setWindowTimes(e,t,i){this.chartViewport.setWindowTimes(e,t,i),this.updateHighlight()}onMouseMove(e){if(this.#te=null,this.lastMouseOffsetX=e.offsetX,this.lastMouseOffsetY=e.offsetY,!this.enabled())return;if(this.chartViewport.isDragging())return;const t=a.Types.Timing.Milli(this.chartViewport.pixelToTime(e.offsetX));this.dispatchEventToListeners("MouseMove",{mouseEvent:e,timeInMicroSeconds:a.Helpers.Timing.milliToMicro(t)});const{groupIndex:i,hoverType:s}=this.coordinatesToGroupIndexAndHoverType(e.offsetX,e.offsetY);switch(s){case"TRACK_CONFIG_UP_BUTTON":case"TRACK_CONFIG_DOWN_BUTTON":case"TRACK_CONFIG_HIDE_BUTTON":case"TRACK_CONFIG_SHOW_BUTTON":{this.hideHighlight(),this.viewportElement.style.cursor="pointer";const e=this.#ue(i,s);return void(e&&(this.popoverElement.appendChild(e),this.updatePopoverOffset()))}case"INSIDE_TRACK_HEADER":return this.updateHighlight(),void(this.viewportElement.style.cursor="pointer");case"INSIDE_TRACK":case"OUTSIDE_TRACKS":return void this.updateHighlight();case"ERROR":return;default:r.assertNever(s,`Invalid hovering type: ${s}`)}}#ue(e,t){const i=this.rawTimelineData?.groups[e];if(!i)return null;const s=r.StringUtilities.trimMiddle(i.name,20);let n="";switch(t){case"TRACK_CONFIG_UP_BUTTON":n=`Move ${s} track up`;break;case"TRACK_CONFIG_DOWN_BUTTON":n=`Move ${s} track down`;break;case"TRACK_CONFIG_HIDE_BUTTON":n=this.groupIsLastVisibleTopLevel(e)?"Can not hide the last top level track":`Hide ${s} track`;break;case"TRACK_CONFIG_SHOW_BUTTON":n=`Show ${s} track`;break;default:return null}const o=document.createElement("div");return o.createChild("span","popoverinfo-title").textContent=n,o}updateHighlight(){const e=this.coordinatesToEntryIndex(this.lastMouseOffsetX,this.lastMouseOffsetY);if(this.updateHiddenChildrenArrowHighlighPosition(e),-1===e){this.hideHighlight();const{groupIndex:e,hoverType:t}=this.coordinatesToGroupIndexAndHoverType(this.lastMouseOffsetX,this.lastMouseOffsetY);return"INSIDE_TRACK_HEADER"===t&&this.#me(e),void(e>=0&&this.rawTimelineData?.groups?.[e].selectable?this.viewportElement.style.cursor="pointer":this.viewportElement.style.cursor="default")}this.chartViewport.isDragging()||(this.#pe(e),this.viewportElement.style.cursor=this.dataProvider.canJumpToEntry(e)?"pointer":"default",this.highlightEntry(e))}onMouseOut(){this.lastMouseOffsetX=-1,this.lastMouseOffsetY=-1,this.hideHighlight()}showPopoverForSearchResult(e){this.#te=e,this.#pe(e)}#pe(e){const t=null!==e&&this.isMouseOverRevealChildrenArrow(this.lastMouseOffsetX,e);if(e===this.lastPopoverState.entryIndex&&t===this.lastPopoverState.hiddenEntriesPopover)return this.updatePopoverOffset();const i=this.timelineData();if(!i)return;const s=i.groups.at(this.selectedGroupIndex),r=t&&s?this.dataProvider.preparePopoverForCollapsedArrow?.(e):null!==e&&this.dataProvider.preparePopoverElement(e);r&&this.updatePopoverContents(r),this.lastPopoverState={entryIndex:e,groupIndex:-1,hiddenEntriesPopover:t}}updatePopoverContents(e){this.popoverElement.removeChildren(),this.popoverElement.appendChild(e),this.updatePopoverOffset(),this.lastPopoverState.entryIndex=-1}updateMouseOffset(e,t){this.lastMouseOffsetX=e,this.lastMouseOffsetY=t}#me(e){if(e===this.lastPopoverState.groupIndex)return this.updatePopoverOffset();this.popoverElement.removeChildren();const t=this.timelineData();if(!t)return;const i=t.groups.at(e);i?.description&&(this.popoverElement.innerText=i?.description,this.updatePopoverOffset()),this.lastPopoverState={groupIndex:e,entryIndex:-1,hiddenEntriesPopover:!1}}updatePopoverOffset(){let e=this.lastMouseOffsetX,t=this.lastMouseOffsetY;if(null!==this.#te){const i=this.entryIndexToCoordinates(this.selectedEntryIndex),{x:s,y:r}=this.canvas.getBoundingClientRect();e=i?.x?i.x-s:e,t=i?.y?i.y-r:t}const i=this.popoverElement.parentElement?this.popoverElement.parentElement.clientWidth:0,s=this.popoverElement.parentElement?this.popoverElement.parentElement.clientHeight:0,n=this.popoverElement.clientWidth,o=this.popoverElement.clientHeight,a=6+this.#Q;let l,h;for(let d=0;d<2;++d)for(let c=0;c<4;++c){const u=2&c?-10-n:10,m=1&c?-a-o:a;l=r.NumberUtilities.clamp(e+u,0,i-n),h=r.NumberUtilities.clamp(t+m,0,s-o);if(0===d?(l>=e||e>=l+n)&&(h>=t||t>=h+o):l>=e||e>=l+n||h>=t||t>=h+o)break}this.popoverElement.style.left=l+"px",this.popoverElement.style.top=h+"px"}#ae(e){this.focus();const{groupIndex:t}=this.coordinatesToGroupIndexAndHoverType(e.offsetX,e.offsetY);if(-1!==this.highlightedEntryIndex){this.#ge(t),this.dispatchEventToListeners("EntryLabelAnnotationAdded",{entryIndex:this.highlightedEntryIndex,withLinkCreationButton:!0});const i=this.flameChartDelegate.containingElement?.();i&&l.logClick(i,e,{doubleClick:!0})}}onClick(e){this.focus();if(this.maxDragOffset>5)return;const{groupIndex:t,hoverType:i}=this.coordinatesToGroupIndexAndHoverType(e.offsetX,e.offsetY);switch(i){case"TRACK_CONFIG_UP_BUTTON":return void this.moveGroupUp(t);case"TRACK_CONFIG_DOWN_BUTTON":return void this.moveGroupDown(t);case"TRACK_CONFIG_HIDE_BUTTON":if(this.groupIsLastVisibleTopLevel(t))return;return void this.hideGroup(t);case"TRACK_CONFIG_SHOW_BUTTON":return void this.showGroup(t);case"INSIDE_TRACK_HEADER":return this.#ge(t),void this.toggleGroupExpand(t);case"INSIDE_TRACK":case"OUTSIDE_TRACKS":{this.#ge(t);const i=this.timelineData();if(e.shiftKey&&-1!==this.highlightedEntryIndex&&i){const e=i.entryStartTimes[this.highlightedEntryIndex],t=e+i.entryTotalTimes[this.highlightedEntryIndex];this.chartViewport.setRangeSelection(e,t)}else this.chartViewport.onClick(e),this.dispatchEventToListeners("EntryInvoked",this.highlightedEntryIndex);return}}}setLinkSelectionAnnotationIsInProgress(e){this.#se=e}#ge(e){if(e<0||this.selectedGroupIndex===e)return;if(!this.rawTimelineData)return;const t=this.rawTimelineData.groups;if(!t)return;this.keyboardFocusedGroup=e,this.#se||this.scrollGroupIntoView(e);const i=t[e].name;t[e].selectable?(this.selectedGroupIndex=e,this.flameChartDelegate.updateSelectedGroup(this,t[e]),this.draw(),o.ARIAUtils.alert(W(z.sSelected,{PH1:i}))):(this.deselectAllGroups(),o.ARIAUtils.alert(W(z.sHovered,{PH1:i})))}deselectAllGroups(){this.selectedGroupIndex=-1,this.flameChartDelegate.updateSelectedGroup(this,null),this.draw()}deselectAllEntries(){this.selectedEntryIndex=-1,this.rawTimelineData?.resetFlowData(),this.draw()}isGroupFocused(e){return e===this.selectedGroupIndex||e===this.keyboardFocusedGroup}scrollGroupIntoView(e){if(e<0)return;if(!this.rawTimelineData)return;const t=this.rawTimelineData.groups,i=this.groupOffsets;if(!i||!t)return;const s=i[e];let r=i[e+1];e===t.length-1&&(r+=t[e].style.padding);const n=0===e?0:s,o=Math.min(r-n,this.chartViewport.chartHeight());this.chartViewport.setScrollOffset(n,o)}toggleGroupExpand(e){e<0||!this.isGroupCollapsible(e)||this.rawTimelineData?.groups&&this.expandGroup(e,!this.rawTimelineData.groups[e].expanded)}expandGroup(e,t=!0,i=!1){if(e<0||!this.isGroupCollapsible(e))return;if(!this.rawTimelineData)return;const s=this.rawTimelineData.groups;if(!s)return;const r=s[e];if(r.expanded=t,this.groupExpansionState[r.name]=r.expanded,this.groupExpansionSetting&&this.groupExpansionSetting.set(this.groupExpansionState),this.updateLevelPositions(),this.updateHighlight(),!r.expanded){const t=this.timelineData();if(t){const i=t.entryLevels[this.selectedEntryIndex];this.selectedEntryIndex>=0&&i>=r.startLevel&&(e>=s.length-1||s[e+1].startLevel>i)&&(this.selectedEntryIndex=-1,this.rawTimelineData.resetFlowData())}}if(this.updateHeight(),this.draw(),this.scrollGroupIntoView(e),!i){const t=s[e].name,i=r.expanded?W(z.sExpanded,{PH1:t}):W(z.sCollapsed,{PH1:t});o.ARIAUtils.alert(i)}}moveGroupUp(e){if(!(e<0)&&this.rawTimelineData?.groups&&this.#ee){for(let t=0;t<this.#ee.children.length;t++){const i=this.#ee.children[t];if(i.index===e&&t>=1){this.#ee.children[t]=this.#ee.children[t-1],this.#ee.children[t-1]=i;break}}this.updateLevelPositions(),this.updateHighlight(),this.updateHeight(),this.draw()}}moveGroupDown(e){if(!(e<0)&&this.rawTimelineData?.groups&&this.#ee){for(let t=0;t<this.#ee.children.length;t++){const i=this.#ee.children[t];if(i.index===e&&t<=this.#ee.children.length-2){this.#ee.children[t]=this.#ee.children[t+1],this.#ee.children[t+1]=i;break}}this.updateLevelPositions(),this.updateHighlight(),this.updateHeight(),this.draw()}}hideGroup(e){this.#ve(e,!0)}showGroup(e){this.#ve(e,!1)}#ve(e,t){if(e<0)return;if(!this.rawTimelineData?.groups)return;const i=this.rawTimelineData.groups;if(!i)return;const s=i[e];s.hidden=t,this.groupHiddenState[s.name]=s.hidden,this.updateLevelPositions(),this.updateHighlight(),this.updateHeight(),this.draw()}modifyTree(e,t){this.timelineData()&&this.dataProvider.modifyTree&&(this.dataProvider.modifyTree(e,t),this.update())}#fe(e){if(this.#ie)return;this.contextMenu=new o.ContextMenu.ContextMenu(e);const t=W(z.enterTrackConfigurationMode);this.contextMenu.defaultSection().appendItem(t,(()=>{this.#we()}),{jslogContext:"track-configuration-enter"}),this.contextMenu.show()}#be(e){if(!1===this.#ie)return;this.contextMenu=new o.ContextMenu.ContextMenu(e);const t=W(z.exitTrackConfigurationMode);this.contextMenu.defaultSection().appendItem(t,(()=>{this.#ye()}),{jslogContext:"track-configuration-exit"}),this.contextMenu.show()}#Te(){return Boolean(this.dataProvider.hasTrackConfigurationMode?.())}onContextMenu(e){const{groupIndex:t,hoverType:i}=this.coordinatesToGroupIndexAndHoverType(e.offsetX,e.offsetY);if(this.#ie)return void this.#be(e);"INSIDE_TRACK_HEADER"===i&&this.#Te()&&this.#fe(e);const s=-1===e.detail,r=s?this.selectedEntryIndex:this.highlightedEntryIndex;if(-1===r)return;s||(this.dispatchEventToListeners("EntryInvoked",r),this.setSelectedEntry(r),this.#ge(t)),this.contextMenu=this.dataProvider.customizedContextMenu?.(e,this.selectedEntryIndex,t)??new o.ContextMenu.ContextMenu(e);const n=this.contextMenu.annotationSection();n.appendItem(W(z.labelEntry),(()=>{this.dispatchEventToListeners("EntryLabelAnnotationAdded",{entryIndex:this.selectedEntryIndex,withLinkCreationButton:!1})}),{jslogContext:"timeline.annotations.create-entry-label"}),n.appendItem(W(z.linkEntries),(()=>{this.dispatchEventToListeners("EntriesLinkAnnotationCreated",{entryFromIndex:this.selectedEntryIndex})}),{jslogContext:"timeline.annotations.create-entries-link"}),n.appendItem(W(z.deleteAnnotations),(()=>{this.dataProvider.deleteAnnotationsForEntry?.(this.selectedEntryIndex)}),{disabled:!this.dataProvider.entryHasAnnotations?.(this.selectedEntryIndex),jslogContext:"timeline.annotations.delete-entry-annotations"}),this.contextMenu.show()}#Ee(e){-1!==this.selectedEntryIndex&&this.dataProvider.handleFlameChartTransformKeyboardEvent?.(e,this.selectedEntryIndex,this.selectedGroupIndex)}#xe(){const e=this.timelineData()?.entryStartTimes[this.selectedEntryIndex],t=this.timelineData()?.entryLevels[this.selectedEntryIndex];if(!e||!t)return;const i=this.canvasBoundingClientRect();if(!i)return;const s=this.chartViewport.timeToPosition(e)+i.left,r=this.levelToOffset(t)-this.getScrollOffset()+i.top,n=new MouseEvent("contextmenu",{clientX:s,clientY:r,detail:-1});this.canvas.dispatchEvent(n)}onKeyDown(e){if(o.KeyboardShortcut.KeyboardShortcut.hasAtLeastOneModifier(e)||!this.timelineData())return;" "===e.key&&this.selectedEntryIndex>-1&&this.#xe();let t=this.handleSelectionNavigation(e);!t&&this.rawTimelineData?.groups&&(t=this.handleKeyboardGroupNavigation(e)),t||this.#Ee(e)}bindCanvasEvent(e,t){this.canvas.addEventListener(e,t)}drawTrackOnCanvas(e,t,i){const s=this.timelineData();if(!s)return null;const r=this.offsetWidth,n=this.offsetHeight;t.save();const o=window.devicePixelRatio;t.scale(o,o),t.fillStyle="rgba(0, 0, 0, 0)",t.fillRect(0,0,r,n),t.font=this.#J;const a=this.rawTimelineData?.groups||[],l=this.groupOffsets;if(!a.length||!l)return null;const h=a.findIndex((t=>t.name.includes(e)));if(h<0)return null;this.scrollGroupIntoView(h);const d=a[h].startLevel,c=a[h+1].startLevel,u=l[h],m=l[h+1],{drawBatches:p,titleIndices:g}=this.getDrawBatches(t,s),v=e=>{const t=Math.min(this.#Ce(s,e),r);return s.entryLevels[e]>=d&&s.entryLevels[e]<c&&t>i};let f=[];for(const[{color:e,outline:i},{indexes:r}]of p){const n=r.filter(v);f=[...f,...n],this.#Se(t,s,e,n,i)}const w=g.filter(v);return this.drawEventTitles(t,s,w,r),t.restore(),{top:l[h],height:m-u,visibleEntries:new Set(f)}}handleKeyboardGroupNavigation(e){const t=e;let i=!1,s=!1;return"ArrowUp"===t.code?i=this.selectPreviousGroup():"ArrowDown"===t.code?i=this.selectNextGroup():"ArrowLeft"===t.code?this.keyboardFocusedGroup>=0&&(this.expandGroup(this.keyboardFocusedGroup,!1),i=!0):"ArrowRight"===t.code?this.keyboardFocusedGroup>=0&&(this.expandGroup(this.keyboardFocusedGroup,!0),this.selectFirstChild(),i=!0):"Enter"===t.key&&(s=this.selectFirstEntryInCurrentGroup(),i=s),i&&!s&&this.deselectAllEntries(),i&&t.consume(!0),i}selectFirstEntryInCurrentGroup(){if(!this.rawTimelineData)return!1;const e=this.rawTimelineData.groups;if(this.keyboardFocusedGroup<0||!e)return!1;const t=e[this.keyboardFocusedGroup],i=t.startLevel;if(i<0)return!1;if(this.keyboardFocusedGroup<e.length-1&&e[this.keyboardFocusedGroup+1].startLevel===i)return!1;if(!this.timelineLevels)return!1;const s=this.timelineData();if(!s)return!1;const r=a.Types.Timing.Milli(1);let n=this.timelineLevels[i].find((e=>{const t=s.entryTotalTimes[e];return!Number.isNaN(t)&&t>=r}));void 0===n&&(n=this.timelineLevels[i][0]),this.expandGroup(this.keyboardFocusedGroup,!0);const l=this.dataProvider.entryTitle(n);return l&&o.ARIAUtils.alert(W(z.eventSelectedFromGroup,{PH1:l,PH2:t.name})),this.setSelectedEntry(n),!0}selectPreviousGroup(){if(this.keyboardFocusedGroup<=0)return!1;const e=this.getGroupIndexToSelect(-1);return this.#ge(e),!0}selectNextGroup(){if(!this.rawTimelineData?.groups)return!1;if(this.keyboardFocusedGroup>=this.rawTimelineData.groups.length-1)return!1;const e=this.getGroupIndexToSelect(1);return this.#ge(e),!0}getGroupIndexToSelect(e){if(!this.rawTimelineData?.groups)throw new Error("No raw timeline data");const t=this.rawTimelineData.groups;let i,s,r=this.keyboardFocusedGroup;do{r+=e,i=this.rawTimelineData.groups[r].name,s=-1!==this.keyboardFocusedGroup&&t[r].style.nestingLevel>t[this.keyboardFocusedGroup].style.nestingLevel}while(r>0&&r<t.length-1&&(!i||s));return r}selectFirstChild(){if(!this.rawTimelineData?.groups)return;const e=this.rawTimelineData.groups;if(this.keyboardFocusedGroup<0||this.keyboardFocusedGroup>=e.length-1)return;const t=this.keyboardFocusedGroup+1;e[t].style.nestingLevel>e[this.keyboardFocusedGroup].style.nestingLevel&&this.#ge(t)}handleSelectionNavigation(e){if(-1===this.selectedEntryIndex)return!1;const t=this.timelineData();if(!t)return!1;function i(e,i){if(!t)throw new Error("No timeline data");const s=t.entryStartTimes[e],r=t.entryStartTimes[i],n=s+t.entryTotalTimes[e];return s<r+t.entryTotalTimes[i]&&r<n}const s=e,n=o.KeyboardShortcut.Keys;if(s.keyCode===n.Left.code||s.keyCode===n.Right.code){const i=t.entryLevels[this.selectedEntryIndex],o=this.timelineLevels?this.timelineLevels[i]:[];let a=r.ArrayUtilities.lowerBound(o,this.selectedEntryIndex,((e,t)=>e-t));return a+=s.keyCode===n.Left.code?-1:1,e.consume(!0),a>=0&&a<o.length&&this.dispatchEventToListeners("EntrySelected",o[a]),!0}if(s.keyCode===n.Up.code||s.keyCode===n.Down.code){let e=t.entryLevels[this.selectedEntryIndex];if(e+=s.keyCode===n.Up.code?-1:1,e<0||this.timelineLevels&&e>=this.timelineLevels.length)return this.deselectAllEntries(),s.consume(!0),!0;const o=t.entryStartTimes[this.selectedEntryIndex]+t.entryTotalTimes[this.selectedEntryIndex]/2,a=this.timelineLevels?this.timelineLevels[e]:[];let l=r.ArrayUtilities.upperBound(a,o,(function(e,i){if(!t)throw new Error("No timeline data");return e-t.entryStartTimes[i]}))-1;return!i(this.selectedEntryIndex,a[l])&&(++l,l>=a.length||!i(this.selectedEntryIndex,a[l]))?"ArrowDown"!==s.code&&(this.deselectAllEntries(),s.consume(!0),!0):(s.consume(!0),this.dispatchEventToListeners("EntrySelected",a[l]),!0)}return"Enter"===e.key&&(e.consume(!0),this.dispatchEventToListeners("EntryInvoked",this.selectedEntryIndex),this.dispatchEventToListeners("EntryLabelAnnotationAdded",{entryIndex:this.selectedEntryIndex,withLinkCreationButton:!0}),!0)}coordinatesToEntryIndex(e,t){if(e<0||t<0)return-1;const i=this.timelineData();if(!i)return-1;if(t+=this.chartViewport.scrollOffset(),!this.visibleLevelOffsets||!this.visibleLevelHeights||!this.visibleLevels)throw new Error("No visible level offsets or heights");let s=-1;for(let e=0;e<this.dataProvider.maxStackDepth();e++)if(t>=this.visibleLevelOffsets[e]&&t<this.visibleLevelOffsets[e]+(this.visibleLevels[e]?this.visibleLevelHeights[e]:0)){s=e;break}if(s<0||!this.visibleLevels[s])return-1;if(t-this.visibleLevelOffsets[s]>this.levelHeight(s))return-1;for(const[t,r]of this.customDrawnPositions)if(i.entryLevels[t]===s&&r.x<=e&&e<r.x+r.width)return t;for(const[t,r]of this.markerPositions)if(i.entryLevels[t]===s&&r.x<=e&&e<r.x+r.width)return t;const n=i.entryStartTimes,o=this.timelineLevels?this.timelineLevels[s]:[];if(!o?.length)return-1;const a=this.chartViewport.pixelToTime(e),l=Math.max(r.ArrayUtilities.upperBound(o,a,((e,t)=>e-n[t]))-1,0);function h(t){if(void 0===t)return!1;if(!i)return!1;const s=n[t],r=i.entryTotalTimes[t],o=this.chartViewport.timeToPosition(s),a=this.chartViewport.timeToPosition(s+r);return o-this.hitMarginPx<e&&e<a+this.hitMarginPx}let d=o[l];return h.call(this,d)?d:(d=o[l+1],h.call(this,d)?d:-1)}isMouseOverRevealChildrenArrow(e,t){if(!this.entryHasDecoration(t,"HIDDEN_DESCENDANTS_ARROW"))return!1;const i=this.timelineData();if(!i)return!1;const s=i.entryStartTimes[t],r=i.entryTotalTimes[t],n=this.chartViewport.timeToPosition(s+r);return n-this.#Le(i,t)-this.hitMarginPx<e&&e<n+this.hitMarginPx}entryIndexToCoordinates(e){const t=this.timelineData(),{x:i,y:s}=this.canvas.getBoundingClientRect();if(!t||!this.visibleLevelOffsets)return null;return{x:this.chartViewport.timeToPosition(t.entryStartTimes[e])+i,y:this.visibleLevelOffsets[t.entryLevels[e]]-this.chartViewport.scrollOffset()+s}}entryTitle(e){return this.dataProvider.entryTitle(e)}getCanvasOffset(){return this.canvas.getBoundingClientRect()}getCanvas(){return this.canvas}getScrollOffset(){return this.chartViewport.scrollOffset()}getContextMenu(){return this.contextMenu}coordinatesToGroupIndexAndHoverType(e,t){if(!this.rawTimelineData?.groups||!this.groupOffsets)return{groupIndex:-1,hoverType:"ERROR"};if(e<0||t<0)return{groupIndex:-1,hoverType:"ERROR"};t+=this.chartViewport.scrollOffset();const i=this.rawTimelineData.groups||[];if(this.#ee){const s=[];function r(e){s.push(e.index);for(const t of e.children)r(t)}if(r(this.#ee),s.shift(),s.length!==i.length)return console.warn("The data from the group tree doesn't match the data from DataProvider."),{groupIndex:-1,hoverType:"ERROR"};s.push(i.length);for(let n=0;n<s.length;n++){const o=s[n],a=s[n+1]??s.length;if(t>=this.groupOffsets[o]&&t<this.groupOffsets[a]){const l=this.canvas.getContext("2d");l.save(),l.font=this.#J;const h=6+(this.#ie?63:0)+this.labelWidthForGroup(l,i[o]);l.restore();const d=t>=this.groupOffsets[o]&&t<this.groupOffsets[o]+i[o].style.height;if(!this.#ie)return d&&e<=h?{groupIndex:o,hoverType:"INSIDE_TRACK_HEADER"}:{groupIndex:o,hoverType:"INSIDE_TRACK"};if(d){if(6<=e&&e<22)return{groupIndex:o,hoverType:"TRACK_CONFIG_UP_BUTTON"};if(25<=e&&e<41)return{groupIndex:o,hoverType:"TRACK_CONFIG_DOWN_BUTTON"};if(44<=e&&e<60)return{groupIndex:o,hoverType:i[o].hidden?"TRACK_CONFIG_SHOW_BUTTON":"TRACK_CONFIG_HIDE_BUTTON"};if(d&&e<=h)return{groupIndex:o,hoverType:"INSIDE_TRACK_HEADER"}}}}}return{groupIndex:-1,hoverType:"OUTSIDE_TRACKS"}}#we(){const e=document.createElement("div");e.classList.add("flame-chart-edit-confirm");const t=new h.Button.Button;t.data={variant:"primary",jslogContext:"track-configuration-exit"},t.innerText=W(z.exitTrackConfigurationMode),e.appendChild(t),t.addEventListener("click",(()=>{this.#ye()})),this.viewportElement.appendChild(e),this.#ie=!0,this.dispatchEventToListeners("TracksReorderStateChange",!0),this.updateLevelPositions(),this.draw()}#ke(){const e=this.viewportElement.querySelector(".flame-chart-edit-confirm");e&&this.viewportElement.removeChild(e)}#ye(){this.#ke(),this.#ie=!1,this.dispatchEventToListeners("TracksReorderStateChange",!1),this.updateLevelPositions(),this.draw()}markerIndexBeforeTime(e){const t=this.timelineData();if(!t)throw new Error("No timeline data");if(!t.markers)throw new Error("No timeline markers");return r.ArrayUtilities.lowerBound(t.markers,e,((e,t)=>e-t.startTime()))}draw(){const e=this.timelineData();if(!e)return;this.resetCanvas(),this.dispatchEventToListeners("LatestDrawDimensions",{chart:{widthPixels:this.offsetWidth,heightPixels:this.offsetHeight,scrollOffsetPixels:this.chartViewport.scrollOffset(),allGroupsCollapsed:this.rawTimelineData?.groups.every((e=>!e.expanded))??!0},traceWindow:a.Helpers.Timing.traceWindowFromMilliSeconds(this.minimumBoundary(),this.maximumBoundary())});const t=this.offsetWidth,i=this.offsetHeight,s=this.canvas.getContext("2d");s.save();const r=window.devicePixelRatio,n=this.chartViewport.scrollOffset();s.scale(r,r),s.fillStyle="rgba(0, 0, 0, 0)",s.fillRect(0,0,t,i),s.translate(0,-n),s.font=this.#J;const{markerIndices:o,drawBatches:l,titleIndices:h}=this.getDrawBatches(s,e),d=this.rawTimelineData?.groups||[],c=d.findIndex((e=>e.name.includes("Main"))),u=d.at(c),m=u?.startLevel,p=d.at(c+1)?.startLevel,g=i=>{if(c<0||void 0===m||void 0===p)return!1;const s=Math.min(this.#Ce(e,i),t);return e.entryLevels[i]>=m&&e.entryLevels[i]<p&&s>10};let v=!1;for(const[{color:t,outline:i},{indexes:r}]of l)v||(v=r.some(g)),this.#Se(s,e,t,r,i);this.dispatchEventToListeners("ChartPlayableStateChange",v),this.#ie||(this.#Pe(s,e),this.drawMarkers(s,e,o)),this.drawEventTitles(s,e,h,t);const f=Array.from(l.values()).map((e=>e.indexes)).flat();this.#De(s,e,f),s.restore(),this.drawGroupHeaders(t,i),this.drawFlowEvents(s,e),this.drawMarkerLines();const w=A.calculateGridOffsets(this),b=this.dataProvider.mainFrameNavigationStartEvents?.()||[];let y=0;const T=e=>{if(0===b.length)return this.formatValue(e,w.precision);if(b.length>y+1){const t=b[y+1];e>a.Helpers.Timing.microToMilli(t.ts)&&y++}const t=b[y];if(t){e-=a.Helpers.Timing.microToMilli(t.ts)-this.zeroTime()}return this.formatValue(e,w.precision)};A.drawCanvasGrid(s,w),this.rulerEnabled&&A.drawCanvasHeaders(s,w,T,3,X),this.updateElementPosition(this.highlightElement,this.highlightedEntryIndex),this.updateElementPosition(this.selectedElement,this.selectedEntryIndex),null!==this.#te&&this.showPopoverForSearchResult(this.#te),this.updateMarkerHighlight()}#Se(e,t,s,r,n){e.save(),e.beginPath();for(let i=0;i<r.length;++i){const s=r[i];this.#oe.has(s)||this.#Re(e,t,s)}if(n){const t=i.ThemeSupport.instance().getComputedValue("--ref-palette-neutral10");e.strokeStyle=`color-mix(in srgb, ${s}, ${t} 60%)`,e.stroke()}e.fillStyle=s,e.fill(),e.restore()}#De(e,t,i){const{entryTotalTimes:r,entryStartTimes:n,entryLevels:o}=t;e.save();for(let l=0;l<i.length;++l){const h=i[l],d=t.entryDecorations.at(h);if(!d||d.length<1)continue;d.length>1&&K(d);const c=n[h],u=r[h],m=this.timeToPositionClipped(c),p=o[h],g=this.#Le(t,h),v=this.levelToOffset(p);let f=this.#Ce(t,h);for(const i of d)switch(i.type){case"CANDY":{const r=a.Helpers.Timing.microToMilli(i.startAtTime);if(u<r)continue;if(!this.candyStripePattern||!this.candyStripePatternGray){const e="rgba(255, 0, 0, 0.8)";this.candyStripePattern=this.createCandyStripePattern(e);const t=s.Color.parse(e),i=t?.asLegacyColor().grayscale().asString()??"lightgrey";this.candyStripePatternGray=this.createCandyStripePattern(i)}e.save(),e.beginPath();const n=this.timeToPositionClipped(c+r),o=i.endAtTime?a.Helpers.Timing.microToMilli(i.endAtTime):c+u,l=this.timeToPositionClipped(o);this.#Re(e,t,h,{startX:n,width:l-n}),e.fillStyle=this.#le(h)?this.candyStripePatternGray:this.candyStripePattern,e.fill(),e.restore();break}case"WARNING_TRIANGLE":{let t=m+f;if(void 0!==i.customEndTime){const e=a.Helpers.Timing.microToMilli(i.customEndTime);t=this.timeToPositionClipped(e),f=t-m}const s=8;let r=8;if(void 0!==i.customStartTime){const e=a.Helpers.Timing.microToMilli(i.customStartTime),s=this.timeToPositionClipped(e);r=Math.min(t-s,8)}e.save(),e.beginPath(),e.rect(m,v,f,g),e.clip(),e.beginPath(),e.fillStyle=this.#ce(h,"red"),e.moveTo(m+f-r,v),e.lineTo(m+f,v),e.lineTo(m+f,v+s),e.fill(),e.restore();break}case"HIDDEN_DESCENDANTS_ARROW":e.save(),e.beginPath(),e.rect(m,v,f,g);if(f>2*g){const t=7,i=5,s=6;e.clip(),e.beginPath(),e.fillStyle="#474747";const r=m+f-t-i,n=v+s;e.moveTo(r,n);const o=m+f-i,a=v+s;e.lineTo(o,a);const l=m+f-i-t/2,h=v+g-s;e.lineTo(l,h)}else{const t=8;e.clip(),e.beginPath(),e.fillStyle="#474747",e.moveTo(m+f-t,v+g),e.lineTo(m+f,v+g),e.lineTo(m+f,v+t)}e.fill(),e.restore();break}}e.restore()}#Re(e,t,i,s){const{entryTotalTimes:r,entryStartTimes:n,entryLevels:o}=t,a=r[i];if(isNaN(a))return;const l=n[i],h=s?.startX??this.timeToPositionClipped(l),d=o[i],c=this.#Le(t,i),u=this.levelToOffset(d),m=s?.width??this.#Ce(t,i);0!==m&&e.rect(h,u,m-.5,c-1)}#Le(e,t){const{entryLevels:i}=e,s=i[t];return this.levelHeight(s)}entryWidth(e){const t=this.timelineData();return t?this.#Ce(t,e):0}#Ce(e,t){const{entryTotalTimes:i,entryStartTimes:s}=e,r=i[t],n=s[t],o=this.timeToPositionClipped(n),a=this.timeToPositionClipped(n+r);return Math.max(a-o,1)}getDrawBatches(e,t){const i=[],s=[],{entryTotalTimes:n,entryStartTimes:a}=t,l=this.chartViewport.scrollOffset(),h=2*this.textPadding+o.UIUtils.measureTextWidth(e,"…"),d=this.chartViewport.pixelToTimeOffset(h),c=new Map,u=new Map,m=(e,t)=>{const i=t?c:u,s=i.get(e);if(s)return s;const r={color:e,outline:t};return i.set(e,r),r},p=new Map;for(let e=0;e<this.dataProvider.maxStackDepth();++e){if(this.levelToOffset(e)+this.levelHeight(e)<l||this.levelToOffset(e)>l+this.offsetHeight)continue;if(!this.visibleLevels?.[e])continue;if(!this.timelineLevels)break;const t=this.timelineLevels[e];let o=1/0;for(let l=r.ArrayUtilities.lowerBound(t,this.chartViewport.windowRightTime(),((e,t)=>e-a[t]))-1;l>=0;--l){const r=t[l],h=n[r];if(isNaN(h)){s.push(r);continue}(h>=d||this.forceDecorationCache?.[r])&&i.push(r);const c=a[r],u=c+h,g=Boolean(this.dataProvider.forceDrawableLevel?.(e));if(u<=this.chartViewport.windowLeftTime()&&!g)break;const v=this.timeToPositionClipped(c);if(!(v>=o)&&(o=v,this.entryColorsCache)){const e=m(this.getColorForEntry(r),this.#he(r));let t=p.get(e);t||(t={indexes:[]},p.set(e,t)),t.indexes.push(r)}}}return{drawBatches:p,titleIndices:i,markerIndices:s}}drawGroupHeaders(e,t){const r=this.canvas.getContext("2d"),n=this.chartViewport.scrollOffset(),a=window.devicePixelRatio;if(!this.rawTimelineData)return;const l=this.rawTimelineData.groups||[];if(!l.length)return;const h=this.groupOffsets;if(null==h)return;const d=h[h.length-1];r.save(),r.scale(a,a),r.translate(0,-n),r.font=this.#J,r.fillStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container"),this.forEachGroupInViewport(((t,i,s)=>{const n=s.style.padding;n<5||r.fillRect(0,t-n+2,e,n-4)})),l.length&&d<n+t&&r.fillRect(0,d+2,e,n+t-d),r.strokeStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-neutral-container"),r.beginPath(),this.forEachGroupInViewport(((t,i,s,n)=>{n||s.style.padding<4||k(r,e,t-2.5)})),k(r,e,d+1.5),r.stroke(),this.forEachGroupInViewport(((t,i,s)=>{if(s.style.useFirstLineForOverview)return;if(!this.isGroupCollapsible(i)||s.expanded)return void(!s.style.shareHeaderLine&&this.isGroupFocused(i)&&(r.fillStyle=s.style.backgroundColor,r.fillRect(0,t,e,s.style.height)));let n=i+1;for(;n<l.length&&l[n].style.nestingLevel>s.style.nestingLevel;)n++;const o=n<l.length?l[n].startLevel:this.dataProvider.maxStackDepth();this.drawCollapsedOverviewForGroup(s,t,o)})),r.save();const c=l.length>1,u=this.#ie?63:0;this.forEachGroupInViewport(((e,t,n)=>{if(r.font=this.#J,this.isGroupCollapsible(t)&&!n.expanded||n.style.shareHeaderLine){const t=this.labelWidthForGroup(r,n),i=s.Color.parse(n.style.backgroundColor);i&&(r.fillStyle=i.setAlpha(.8).asString()),r.fillRect(u+6,e+2,t,n.style.height-4)}r.fillStyle=this.#ie&&n.hidden?i.ThemeSupport.instance().getComputedValue("--sys-color-token-subtle",this.contentElement):n.style.color;const a=u+U*(n.style.nestingLevel+1)+F/2+3;if(r.fillText(n.name,a,e+n.style.height-this.textBaseline),this.#ie&&n.hidden&&r.fillRect(a,e+n.style.height/2,o.UIUtils.measureTextWidth(r,n.name),1),c&&this.#ie){const i=n.hidden?"--sys-color-token-subtle":"--sys-color-on-surface";0===n.style.nestingLevel&&(P(r,6,e,N,"M9.25 17V5.875L7.062 8.062L6 7L10 3L14 7L12.938 8.062L10.75 5.875V17H9.25Z",i),P(r,25,e,N,"M9.25 3V14.125L7.062 11.938L6 13L10 17L14 13L12.938 11.938L10.75 14.125V3H9.25Z",i)),P(r,44,e,N,n.hidden?"M10 13.5C10.972 13.5 11.7983 13.1597 12.479 12.479C13.1597 11.7983 13.5 10.972 13.5 10C13.5 9.028 13.1597 8.20167 12.479 7.521C11.7983 6.84033 10.972 6.5 10 6.5C9.028 6.5 8.20167 6.84033 7.521 7.521C6.84033 8.20167 6.5 9.028 6.5 10C6.5 10.972 6.84033 11.7983 7.521 12.479C8.20167 13.1597 9.028 13.5 10 13.5ZM10 12C9.44467 12 8.97233 11.8057 8.583 11.417C8.19433 11.0277 8 10.5553 8 10C8 9.44467 8.19433 8.97233 8.583 8.583C8.97233 8.19433 9.44467 8 10 8C10.5553 8 11.0277 8.19433 11.417 8.583C11.8057 8.97233 12 9.44467 12 10C12 10.5553 11.8057 11.0277 11.417 11.417C11.0277 11.8057 10.5553 12 10 12ZM10 16C8.014 16 6.20833 15.455 4.583 14.365C2.95833 13.2743 1.764 11.8193 1 10C1.764 8.18067 2.95833 6.72567 4.583 5.635C6.20833 4.545 8.014 4 10 4C11.986 4 13.7917 4.545 15.417 5.635C17.0417 6.72567 18.236 8.18067 19 10C18.236 11.8193 17.0417 13.2743 15.417 14.365C13.7917 15.455 11.986 16 10 16ZM10 14.5C11.5553 14.5 12.9927 14.0973 14.312 13.292C15.632 12.486 16.646 11.3887 17.354 10C16.646 8.61133 15.632 7.514 14.312 6.708C12.9927 5.90267 11.5553 5.5 10 5.5C8.44467 5.5 7.00733 5.90267 5.688 6.708C4.368 7.514 3.354 8.61133 2.646 10C3.354 11.3887 4.368 12.486 5.688 13.292C7.00733 14.0973 8.44467 14.5 10 14.5Z":"M13.2708 11.1459L11.9792 9.85419C12.0347 9.32641 11.875 8.87155 11.5 8.4896C11.125 8.10766 10.6736 7.94446 10.1458 8.00002L8.85417 6.70835C9.03472 6.63891 9.22222 6.58683 9.41667 6.5521C9.61111 6.51738 9.80556 6.50002 10 6.50002C10.9722 6.50002 11.7986 6.8403 12.4792 7.52085C13.1597 8.20141 13.5 9.0278 13.5 10C13.5 10.1945 13.4826 10.3889 13.4479 10.5834C13.4132 10.7778 13.3542 10.9653 13.2708 11.1459ZM16.0417 13.9167L14.9583 12.8334C15.4583 12.4445 15.9132 12.0174 16.3229 11.5521C16.7326 11.0868 17.0764 10.5695 17.3542 10C16.6736 8.59724 15.6701 7.49655 14.3438 6.69794C13.0174 5.89933 11.5694 5.50002 10 5.50002C9.63889 5.50002 9.28472 5.52085 8.9375 5.56252C8.59028 5.60419 8.25 5.67363 7.91667 5.77085L6.70833 4.56252C7.23611 4.35419 7.77431 4.20835 8.32292 4.12502C8.87153 4.04169 9.43056 4.00002 10 4.00002C11.9861 4.00002 13.8021 4.53821 15.4479 5.6146C17.0938 6.69099 18.2778 8.1528 19 10C18.6944 10.7917 18.2882 11.5104 17.7813 12.1563C17.2743 12.8021 16.6944 13.3889 16.0417 13.9167ZM16 18.125L13.2917 15.4167C12.7639 15.6111 12.2257 15.757 11.6771 15.8542C11.1285 15.9514 10.5694 16 10 16C8.01389 16 6.19792 15.4618 4.55208 14.3854C2.90625 13.309 1.72222 11.8472 1 10C1.30556 9.20835 1.70833 8.48613 2.20833 7.83335C2.70833 7.18058 3.29167 6.5903 3.95833 6.06252L1.875 3.97919L2.9375 2.91669L17.0625 17.0625L16 18.125ZM5.02083 7.14585C4.53472 7.53474 4.08333 7.96183 3.66667 8.4271C3.25 8.89238 2.90972 9.41669 2.64583 10C3.32639 11.4028 4.32986 12.5035 5.65625 13.3021C6.98264 14.1007 8.43056 14.5 10 14.5C10.3611 14.5 10.7153 14.4757 11.0625 14.4271C11.4097 14.3785 11.7569 14.3125 12.1042 14.2292L11.1667 13.2917C10.9722 13.3611 10.7778 13.4132 10.5833 13.4479C10.3889 13.4827 10.1944 13.5 10 13.5C9.02778 13.5 8.20139 13.1597 7.52083 12.4792C6.84028 11.7986 6.5 10.9722 6.5 10C6.5 9.80558 6.52431 9.61113 6.57292 9.41669C6.62153 9.22224 6.66667 9.0278 6.70833 8.83335L5.02083 7.14585Z",this.groupIsLastVisibleTopLevel(t)?"--sys-color-state-disabled":i)}})),r.restore(),r.fillStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-token-subtle"),this.forEachGroupInViewport(((e,t,i)=>{this.isGroupCollapsible(t)&&function(e,t,i,s){const r=F*Math.sqrt(3)/2,n=Math.round(r/2);e.save(),e.beginPath(),e.translate(t,i),e.rotate(s?Math.PI/2:0),e.moveTo(-n,-F/2),e.lineTo(-n,F/2),e.lineTo(r-n,0),e.fill(),e.restore()}(r,u+U*(i.style.nestingLevel+1),e+i.style.height-this.textBaseline-F/2,!this.#ie&&Boolean(i.expanded))})),r.strokeStyle=i.ThemeSupport.instance().getComputedValue("--sys-color-neutral-outline"),r.beginPath(),r.stroke(),this.forEachGroupInViewport(((e,t,s,n,o)=>{if(this.isGroupFocused(t)){const t=2,n=10;r.fillStyle=i.ThemeSupport.instance().getComputedValue("--selected-group-border",this.contentElement),r.fillRect(0,e-t,t,o-s.style.padding+2*t),r.fillRect(0,e-t,n,t),r.fillRect(0,e+o-s.style.padding,n,t)}})),r.restore()}drawMarkers(e,t,i){const{entryStartTimes:s,entryLevels:r}=t;this.markerPositions.clear(),e.textBaseline="alphabetic",e.save(),e.beginPath();let n=-1,a=-1/0;for(let t=i.length-1;t>=0;--t){const l=i[t],h=this.entryTitle(l);if(!h)continue;const d=s[l],c=r[l];n!==c&&(a=-1/0);const u=Math.max(this.chartViewport.timeToPosition(d),a),m=this.levelToOffset(c),p=this.levelHeight(c),g=4,v=Math.ceil(o.UIUtils.measureTextWidth(e,h))+2*g;a=u+v+1,n=c,this.markerPositions.set(l,{x:u,width:v}),e.fillStyle=this.getColorForEntry(l),e.fillRect(u,m,v,p-1),e.fillStyle="white",e.fillText(h,u+g,m+p-this.textBaseline)}e.strokeStyle="rgba(0, 0, 0, 0.2)",e.stroke(),e.restore()}#Pe(e,t){const{entryStartTimes:i,entryTotalTimes:s,entryLevels:r}=t;this.customDrawnPositions.clear(),e.save();const n=[];for(const[t,o]of this.#oe.entries()){const a=i[t],l=s[t],h=r[t],d=this.dataProvider.groupForEvent?.(t);if(d?.hidden)continue;const c=this.chartViewport.timeToPosition(a),u=this.chartViewport.timeToPosition(a+l),m=o(e,c,this.levelToOffset(h),u-c,this.levelHeight(h),(e=>this.chartViewport.timeToPosition(e)),(e=>this.#ce(t,e)));n.push({entryIndex:t,pos:m})}n.sort(((e,t)=>(t.pos.z??0)-(e.pos.z??0)));for(const{entryIndex:e,pos:t}of n)this.customDrawnPositions.set(e,t);e.restore()}drawEventTitles(e,t,i,s){const r=this.chartViewport.timeToPixel(),n=this.textPadding;e.save(),e.beginPath();const{entryStartTimes:a,entryLevels:l}=t;for(let h=0;h<i.length;++h){const d=i[h],c=a[d],u=this.timeToPositionClipped(c),m=Math.min(this.#Ce(t,d),s),p=l[d],g=this.levelToOffset(p);let v=this.dataProvider.entryTitle(d);const f=this.#Le(t,d);if(v?.length){e.font=this.#J;const t=this.entryHasDecoration(d,"HIDDEN_DESCENDANTS_ARROW")&&m>2*f?m-n-this.barHeight:m-2*n;v=o.UIUtils.trimTextMiddle(e,v,t)}const w=this.chartViewport.timeToPosition(c);this.dataProvider.decorateEntry(d,e,v,u,g,m,f,w,r,(e=>this.#ce(d,e)))||v?.length&&(e.fillStyle=this.#ce(d,this.dataProvider.textColor(d)),e.fillText(v,u+n,g+f-this.textBaseline))}e.restore()}forEachGroup(e){if(!this.rawTimelineData)return;const t=this.rawTimelineData.groups||[];if(!t.length)return;const i=this.groupOffsets;if(!i)return;const s=[{nestingLevel:-1,visible:!0}];for(let r=0;r<t.length;++r){const n=i[r],o=t[r];let a=!0,l=s[s.length-1];for(;l&&l.nestingLevel>=o.style.nestingLevel;)s.pop(),a=!1,l=s[s.length-1];l=s[s.length-1];const h=!!l&&l.visible,d=!o.hidden&&h&&(!this.isGroupCollapsible(r)||o.expanded);if(s.push({nestingLevel:o.style.nestingLevel,visible:Boolean(d)}),!this.#ee)return;const c=[];function u(e){c.push(e.index);for(const t of e.children)u(t)}if(u(this.#ee),c.shift(),c.length!==t.length)return void console.warn("The data from the group tree doesn't match the data from DataProvider.");c.push(t.length);const m=c.indexOf(r),p=i[c[m+1]];(this.#ie||h&&!o.hidden)&&e(n,r,o,a,p-n)}}forEachGroupInViewport(e){const t=this.chartViewport.scrollOffset();this.forEachGroup(((i,s,r,n,o)=>{i-r.style.padding>t+this.offsetHeight||i+o<t||e(i,s,r,n,o)}))}labelWidthForGroup(e,t){return U*(t.style.nestingLevel+1)+F/2+3+o.UIUtils.measureTextWidth(e,t.name)+3-6}drawCollapsedOverviewForGroup(e,t,i){const n=new s.SegmentedRange.SegmentedRange((function(e,t){return e.data===t.data&&e.end+.4>t.end?e:null})),o=this.chartViewport.windowLeftTime(),a=this.chartViewport.windowRightTime(),l=this.canvas.getContext("2d"),h=e.style.height;if(!this.rawTimelineData)return;const d=this.rawTimelineData.entryStartTimes,c=this.rawTimelineData.entryTotalTimes,u=this.chartViewport.timeToPixel();for(let m=e.startLevel;m<i;++m){const i=this.timelineLevels?this.timelineLevels[m]:[];let p=1/0;for(let m=r.ArrayUtilities.lowerBound(i,a,((e,t)=>e-d[t]))-1;m>=0;--m){const r=i[m],a=d[r],g=this.timeToPositionClipped(a),v=a+c[r];if(isNaN(v)||g>=p)continue;if(v<=o)break;p=g;const f=this.getColorForEntry(r),w=this.timeToPositionClipped(v);if(e.style.useDecoratorsForOverview&&this.dataProvider.forceDecoration(r)){const e=this.chartViewport.timeToPosition(a),i=this.#Ce(this.rawTimelineData,r);l.beginPath(),l.fillStyle=f,l.fillRect(g,t,i,h-1),this.dataProvider.decorateEntry(r,l,"",g,t,i,h,e,u,(e=>this.#ce(r,e)))}else n.append(new s.SegmentedRange.Segment(g,w,f))}}const m=n.segments().slice().sort(((e,t)=>e.data.localeCompare(t.data)));let p;l.beginPath();for(let e=0;e<m.length;++e){const i=m[e];p!==m[e].data&&(l.fill(),l.beginPath(),p=m[e].data,l.fillStyle=p),l.rect(i.begin,t,i.end-i.begin,h)}l.fill()}drawFlowEvents(e,t){const i=this.timelineData();if(!i)return;const{entryTotalTimes:s,entryStartTimes:r,entryLevels:n}=t,o=window.devicePixelRatio,a=this.chartViewport.scrollOffset();e.save(),e.scale(o,o),e.translate(0,-a),e.fillStyle="#7f5050",e.strokeStyle="#7f5050";for(let o=0;o<i.initiatorsData.length;++o){const a=i.initiatorsData[o],l=r[a.initiatorIndex],h=r[a.initiatorIndex]+s[a.initiatorIndex],d=r[a.eventIndex],c=h<d,u=c?h:Math.max(l,this.chartViewport.pixelToTime(5)),m=d;if(m<this.chartViewport.windowLeftTime())continue;let p=this.chartViewport.timeToPosition(u),g=this.chartViewport.timeToPosition(m);if(a.isInitiatorHidden){const{circleEndX:i}=this.drawCircleAroundCollapseArrow(a.initiatorIndex,e,t);i&&(p=i)}if(a.isEntryHidden){const{circleStartX:i}=this.drawCircleAroundCollapseArrow(a.eventIndex,e,t);i&&(g=i)}const v=n[a.initiatorIndex],f=n[a.eventIndex],w=this.levelToOffset(v)+this.levelHeight(v)/2,b=this.levelToOffset(f)+this.levelHeight(f)/2,y=g-p;y>3?(e.lineWidth=.5,e.beginPath(),e.moveTo(g,b),e.lineTo(g-6,b-3),e.lineTo(g-6,b+3),e.fill()):e.lineWidth=.2,c?(e.beginPath(),e.moveTo(p,w),e.lineTo(p+y/2,w),e.lineTo(p+y/2,b),e.lineTo(g,b),e.stroke()):(e.beginPath(),e.moveTo(p,w),e.lineTo(p,b),e.lineTo(g,b),e.stroke())}e.restore()}drawCircleAroundCollapseArrow(e,t,i){const s=i.entryDecorations.at(e);if(!s?.find((e=>"HIDDEN_DESCENDANTS_ARROW"===e.type)))return{};const{entryStartTimes:r,entryLevels:n}=i,o=this.#Ce(i,e);if(o<2*this.barHeight)return{};const a=r[e],l=this.timeToPositionClipped(a),h=n[e],d=this.#Le(i,e),c=this.levelToOffset(h);t.save(),t.beginPath(),t.rect(l,c,o,d),t.clip(),t.lineWidth=1,t.beginPath(),t.fillStyle="#474747";const u=l+o-this.barHeight/2,m=c+this.barHeight/2;return t.beginPath(),t.arc(u,m,6,0,2*Math.PI),t.stroke(),t.restore(),{circleStartX:u-6,circleEndX:u+6}}drawMarkerLines(){const e=this.timelineData();if(!e)return;const t=e.markers,i=this.markerIndexBeforeTime(this.minimumBoundary()),s=this.maximumBoundary(),r=this.chartViewport.timeToPixel(),n=this.canvas.getContext("2d");n.save();const o=window.devicePixelRatio;n.scale(o,o),n.translate(0,3);const a=X-1;for(let e=i;e<t.length;e++){const i=t[e].startTime();if(i>s)break;t[e].draw(n,this.chartViewport.timeToPosition(i),a,r)}n.restore()}updateMarkerHighlight(){const e=this.markerHighlighElement;e.parentElement&&e.remove();const t=this.highlightedMarkerIndex;if(-1===t)return;const i=this.timelineData();if(!i)return;const s=i.markers[t],r=this.timeToPositionClipped(s.startTime());o.Tooltip.Tooltip.install(e,s.title()||"");const n=e.style;n.left=r+"px",n.backgroundColor=s.color(),this.viewportElement.appendChild(e)}processTimelineData(e){if(!e)return this.timelineLevels=null,this.visibleLevelOffsets=null,this.visibleLevels=null,this.groupOffsets=null,this.rawTimelineData=null,this.forceDecorationCache=null,this.entryColorsCache=null,this.dimIndices=null,this.colorDimmingCache.clear(),this.rawTimelineDataLength=0,this.#ee=null,this.selectedGroupIndex=-1,this.keyboardFocusedGroup=-1,void this.flameChartDelegate.updateSelectedGroup(this,null);this.rawTimelineData=e,this.rawTimelineDataLength=e.entryStartTimes.length,this.forceDecorationCache=new Array(this.rawTimelineDataLength),this.entryColorsCache=new Array(this.rawTimelineDataLength),this.#oe.clear();for(let e=0;e<this.rawTimelineDataLength;++e){this.forceDecorationCache[e]=this.dataProvider.forceDecoration(e)??!1,this.entryColorsCache[e]=this.dataProvider.entryColor(e);const t=this.dataProvider.getDrawOverride?.(e);t&&this.#oe.set(e,t)}const t=new Uint32Array(this.dataProvider.maxStackDepth()+1);for(let i=0;i<e.entryLevels.length;++i)++t[e.entryLevels[i]];const i=new Array(t.length);for(let e=0;e<i.length;++e)i[e]=new Uint32Array(t[e]),t[e]=0;for(let s=0;s<e.entryLevels.length;++s){const r=e.entryLevels[s];i[r][t[r]++]=s}this.timelineLevels=i;const s=this.rawTimelineData.groups||[];for(let e=0;e<s.length;++e){const t=this.groupExpansionState[s[e].name],i=this.groupHiddenState[s[e].name];void 0!==t&&(s[e].expanded=t),void 0!==i&&(s[e].hidden=i)}this.#ee?this.updateGroupTree(s,this.#ee):this.#ee=this.buildGroupTree(s),this.updateLevelPositions(),this.updateHeight(),-1===this.selectedGroupIndex&&(this.selectedGroupIndex=e.selectedGroup?s.indexOf(e.selectedGroup):-1),this.keyboardFocusedGroup=this.selectedGroupIndex,this.flameChartDelegate.updateSelectedGroup(this,e.selectedGroup)}#Ie(e,t,i){return{index:t,nestingLevel:e.style.nestingLevel,startLevel:e.startLevel,endLevel:i,children:[]}}buildGroupTree(e){const t={index:-1,nestingLevel:-1,startLevel:0,endLevel:e.length?e[0].startLevel:this.dataProvider.maxStackDepth(),children:[]},i=[t];for(let t=0;t<e.length;t++){const s=e[t],r=s.style.nestingLevel;let n=i[i.length-1];for(;n&&n.nestingLevel>=r;)i.pop(),n=i[i.length-1];const o=e[t+1],a=o?.startLevel??this.dataProvider.maxStackDepth(),l=this.#Ie(s,t,a);n.children.push(l),i.push(l)}return t}updateGroupTree(e,t){const i=this.dataProvider.maxStackDepth();!function t(s){const r=s.index;if(r<0)s.startLevel=0,s.endLevel=e.length?e[0].startLevel:i;else{if(!e[r])return void console.warn("The |groups| is changed. Please make sure the flamechart is reset after data change in the data provider");s.startLevel=e[r].startLevel;const t=e[r+1];s.endLevel=t?.startLevel??i}for(const e of s.children)t(e)}(t)}#Me(e,t,i){if(!(this.visibleLevels&&this.visibleLevelOffsets&&this.visibleLevelHeights&&this.groupOffsets))return t;const s=this.rawTimelineData?.groups;if(!s)return t;if(e.index>=s.length)return console.warn("The data from the group tree is outdated. Please make sure the flamechart is reset after data change in the data provider"),t;e.index>=0&&(this.groupOffsets[e.index]=t,(this.#ie&&s[e.index].name||!s[e.index].hidden&&i&&!s[e.index].style.shareHeaderLine)&&(t+=s[e.index].style.height));let r=!1;if(e.index<0)r=!0;else{const t=!(this.isGroupCollapsible(e.index)&&!s[e.index].expanded);r=!s[e.index].hidden&&t}const n=r&&i;for(let r=e.startLevel;r<e.endLevel;r++){if(r>=this.dataProvider.maxStackDepth())return console.warn("The data from the group tree is outdated. Please make sure the flamechart is reset after data change in the data provider"),t;const o=r===e.startLevel;let a,l;if(e.index<0)a=!0;else{const t=o&&s[e.index].style.useFirstLineForOverview;a=!s[e.index].hidden&&i&&(n||t)}if(s[e.index]){const t=o&&!s[e.index].style.shareHeaderLine,i=this.isGroupCollapsible(e.index)&&!s[e.index].expanded;l=t||i?s[e.index].style.height:s[e.index].style.itemsHeight??this.barHeight}else l=this.barHeight;this.visibleLevels[r]=!this.#ie&&Boolean(a),this.visibleLevelOffsets[r]=t,this.visibleLevelHeights[r]=this.#ie?0:l,(e.index<0||!s[e.index].hidden&&(a||i&&s[e.index].style.shareHeaderLine&&o))&&(t+=this.visibleLevelHeights[r])}if(0===e.children.length)return t;for(const i of e.children)(this.#ie&&s[i.index].name||n&&!s[i.index]?.hidden&&i!==e.children[0])&&(t+=s[i.index].style.padding??0),t=this.#Me(i,t,n);return t}updateLevelPositions(){if(!this.#ee)return void console.warn("Please make sure the new timeline data is processed before update the level positions.");const e=this.dataProvider.maxStackDepth(),t=this.rawTimelineData?.groups||[];this.visibleLevelOffsets=new Uint32Array(e+1),this.visibleLevelHeights=new Uint32Array(e),this.visibleLevels=new Array(e),this.groupOffsets=new Uint32Array(t.length+1);let i=this.rulerEnabled?X+2:2;i=this.#Me(this.#ee,i,!0),this.groupOffsets[t.length]=i,this.visibleLevelOffsets[e]=i}isGroupCollapsible(e){if(!this.rawTimelineData||e<0)return;const t=this.rawTimelineData.groups||[],i=t[e].style;if(!i.shareHeaderLine||!i.collapsible)return Boolean(i.collapsible);const s=e+1>=t.length;if(!s&&t[e+1].style.nestingLevel>i.nestingLevel)return!0;return(s?this.dataProvider.maxStackDepth():t[e+1].startLevel)!==t[e].startLevel+1||i.height!==i.itemsHeight}groupIsLastVisibleTopLevel(e){if(e<0||!this.rawTimelineData)return!0;const t=this.rawTimelineData.groups[e],i=this.#ee?.children.filter((e=>!this.rawTimelineData?.groups[e.index].hidden)).length;return 1===i&&0===t.style.nestingLevel&&!t.hidden}setSelectedEntry(e){this.isMouseOverRevealChildrenArrow(this.lastMouseOffsetX,e)&&this.modifyTree("RESET_CHILDREN",e),this.selectedEntryIndex!==e&&(-1!==e&&this.chartViewport.hideRangeSelection(),this.selectedEntryIndex=e,this.revealEntry(e),this.updateElementPosition(this.selectedElement,this.selectedEntryIndex),this.update())}entryHasDecoration(e,t){const i=this.timelineData();if(!i)return!1;const s=i.entryDecorations.at(e);return!!(s&&s.length>=1)&&s.some((e=>e.type===t))}getCustomDrawnPositionForEntryIndex(e){const t=this.customDrawnPositions.get(e);return t||(this.markerPositions.get(e)??null)}updateElementPosition(e,t,i){if(!e)return;if(e.classList.add("hidden"),-1===t)return;const s=this.timelineData();if(!s)return;const r=s.entryStartTimes[t],n=s.entryTotalTimes[t];let o=0,a=0,l=!0;const h=this.customDrawnPositions.get(t);if(h)o=h.x,a=h.width;else if(Number.isNaN(n)){const e=this.markerPositions.get(t);e?(o=e.x,a=e.width):l=!1}else o=this.chartViewport.timeToPosition(r),a=n*this.chartViewport.timeToPixel();if(o+a<=0||o>=this.offsetWidth)return;const d=o+a/2;a=Math.max(a,2),o=d-a/2;const c=s.entryLevels[t],u=this.levelToOffset(c)-this.chartViewport.scrollOffset(),m=this.levelHeight(c),p=e.style;i?(p.top=u+"px",p.width=m+"px",p.height=m+"px",p.left=o+a-m+"px"):(p.top=u+"px",p.width=a+"px",p.height=m-1+"px",p.left=o+"px"),e.classList.toggle("hidden",!l),this.viewportElement.appendChild(e)}updateHiddenChildrenArrowHighlighPosition(e){this.revealDescendantsArrowHighlightElement.classList.add("hidden"),-1!==e&&this.isMouseOverRevealChildrenArrow(this.lastMouseOffsetX,e)&&this.updateElementPosition(this.revealDescendantsArrowHighlightElement,e,!0)}timeToPositionClipped(e){return r.NumberUtilities.clamp(this.chartViewport.timeToPosition(e),0,this.offsetWidth)}groupIndexToOffsetForTest(e){if(!this.groupOffsets)throw new Error("No visible group offsets");return this.groupOffsets[e]}setEditModeForTest(e){this.#ie=e}levelIsVisible(e){if(!this.visibleLevels)throw new Error("No level visiblibities");return this.visibleLevels[e]}levelToOffset(e){if(!this.visibleLevelOffsets)throw new Error("No visible level offsets");return this.visibleLevelOffsets[e]}levelHeight(e){if(!this.visibleLevelHeights)throw new Error("No visible level heights");return this.visibleLevelHeights[e]}updateBoundaries(){this.totalTime=this.dataProvider.totalTime(),this.minimumBoundaryInternal=this.dataProvider.minimumBoundary(),this.chartViewport.setBoundaries(this.minimumBoundaryInternal,this.totalTime)}updateHeight(){const e=this.levelToOffset(this.dataProvider.maxStackDepth())+2;this.chartViewport.setContentHeight(e)}onResize(){this.#re=null,this.scheduleUpdate()}update(){this.timelineData()&&(this.updateHeight(),this.updateBoundaries(),this.draw(),this.chartViewport.isDragging()||this.updateHighlight())}reset(){this.#ie&&(this.#ke(),this.#ie=!1),this.chartViewport.reset(),this.rawTimelineData=null,this.rawTimelineDataLength=0,this.#ee=null,this.dimIndices=null,this.colorDimmingCache.clear(),this.highlightedMarkerIndex=-1,this.highlightedEntryIndex=-1,this.selectedEntryIndex=-1,this.selectedGroupIndex=-1}scheduleUpdate(){this.chartViewport.scheduleUpdate()}enabled(){return 0!==this.rawTimelineDataLength}computePosition(e){return this.chartViewport.timeToPosition(e)}formatValue(e,t){return this.dataProvider.formatValue(e-this.zeroTime(),t)}maximumBoundary(){return a.Types.Timing.Milli(this.chartViewport.windowRightTime())}minimumBoundary(){return a.Types.Timing.Milli(this.chartViewport.windowLeftTime())}zeroTime(){return a.Types.Timing.Milli(this.dataProvider.minimumBoundary())}boundarySpan(){return a.Types.Timing.Milli(this.maximumBoundary()-this.minimumBoundary())}getDimIndices(){return this.dimIndices||null}}const X=15,$={CANDY:1,WARNING_TRIANGLE:2,HIDDEN_DESCENDANTS_ARROW:3};function K(e){e.sort(((e,t)=>$[e.type]-$[t.type]))}class j{entryLevels;entryTotalTimes;entryStartTimes;entryDecorations;groups;markers;initiatorsData;selectedGroup;constructor(e,t,i,s,r=[],n=[]){this.entryLevels=e,this.entryTotalTimes=t,this.entryStartTimes=i,this.entryDecorations=r,this.groups=s||[],this.markers=[],this.initiatorsData=n||[],this.selectedGroup=null}static create(e){return new j(e.entryLevels,e.entryTotalTimes,e.entryStartTimes,e.groups,e.entryDecorations||[],e.initiatorsData||[])}static createEmpty(){return new j([],[],[],[])}resetFlowData(){this.initiatorsData=[]}}var Y=Object.freeze({__proto__:null,ARROW_SIDE:F,EDIT_ICON_WIDTH:N,FlameChart:_,FlameChartTimelineData:j,MinimalTimeWindowMs:.5,RulerHeight:X,sortDecorationsForRenderingOrder:K});class Z extends o.Widget.VBox{delegate;viewportElement;alwaysShowVerticalScrollInternal;rangeSelectionEnabled;vScrollElement;vScrollContent;selectionOverlay;cursorElement;isDraggingInternal;totalHeight;offsetHeight;scrollTop;rangeSelectionStart;rangeSelectionEnd;dragStartPointX;dragStartPointY;dragStartScrollTop;visibleLeftTime;visibleRightTime;offsetWidth;targetLeftTime;targetRightTime;selectionOffsetShiftX;selectionStartX;lastMouseOffsetX;minimumBoundary;totalTime;isUpdateScheduled;cancelWindowTimesAnimation;#He;constructor(e,t){super(),this.#He=t,this.registerRequiredCSS(L),this.delegate=e,this.viewportElement=this.contentElement.createChild("div","fill"),this.viewportElement.addEventListener("mousemove",this.updateCursorPosition.bind(this),!1),this.viewportElement.addEventListener("mouseout",this.onMouseOut.bind(this),!1),this.viewportElement.addEventListener("wheel",this.onMouseWheel.bind(this),!1),this.viewportElement.addEventListener("keydown",this.onChartKeyDown.bind(this),!1),this.viewportElement.addEventListener("keyup",this.onChartKeyUp.bind(this),!1),o.UIUtils.installDragHandle(this.viewportElement,this.startDragging.bind(this),this.dragging.bind(this),this.endDragging.bind(this),"-webkit-grabbing",null),o.UIUtils.installDragHandle(this.viewportElement,this.startRangeSelection.bind(this),this.rangeSelectionDragging.bind(this),this.endRangeSelection.bind(this),"text",null),this.alwaysShowVerticalScrollInternal=!1,this.rangeSelectionEnabled=!0,this.vScrollElement=this.contentElement.createChild("div","chart-viewport-v-scroll"),this.vScrollContent=this.vScrollElement.createChild("div"),this.vScrollElement.addEventListener("scroll",this.onScroll.bind(this),!1),this.selectionOverlay=this.contentElement.createChild("div","chart-viewport-selection-overlay hidden"),this.cursorElement=this.contentElement.createChild("div","chart-cursor-element hidden"),this.reset(),this.rangeSelectionStart=null,this.rangeSelectionEnd=null}alwaysShowVerticalScroll(){this.alwaysShowVerticalScrollInternal=!0,this.vScrollElement.classList.add("always-show-scrollbar")}disableRangeSelection(){this.rangeSelectionEnabled=!1,this.rangeSelectionStart=null,this.rangeSelectionEnd=null}isDragging(){return this.isDraggingInternal}elementsToRestoreScrollPositionsFor(){return[this.vScrollElement]}updateScrollBar(){const e=this.alwaysShowVerticalScrollInternal||this.totalHeight>this.offsetHeight;this.vScrollElement.classList.contains("hidden")===e&&(this.vScrollElement.classList.toggle("hidden",!e),this.updateContentElementSize())}onResize(){this.updateScrollBar(),this.updateContentElementSize(),this.scheduleUpdate()}reset(){this.vScrollElement.scrollTop=0,this.scrollTop=0,this.rangeSelectionStart=null,this.rangeSelectionEnd=null,this.isDraggingInternal=!1,this.dragStartPointX=0,this.dragStartPointY=0,this.dragStartScrollTop=0,this.visibleLeftTime=0,this.visibleRightTime=0,this.offsetWidth=0,this.offsetHeight=0,this.totalHeight=0,this.targetLeftTime=0,this.targetRightTime=0,this.isUpdateScheduled=!1,this.updateContentElementSize()}updateContentElementSize(){let e=this.vScrollElement.offsetLeft;e||(e=this.contentElement.offsetWidth),this.offsetWidth=e,this.offsetHeight=this.contentElement.offsetHeight,this.delegate.setSize(this.offsetWidth,this.offsetHeight)}setContentHeight(e){this.totalHeight=e,this.vScrollContent.style.height=e+"px",this.updateScrollBar(),this.updateContentElementSize(),this.scrollTop+this.offsetHeight<=e||(this.scrollTop=Math.max(0,e-this.offsetHeight),this.vScrollElement.scrollTop=this.scrollTop)}setScrollOffset(e,t,i){if(t=t||0,i){const i=Math.floor(this.offsetHeight/2);this.vScrollElement.scrollTop>e&&(this.vScrollElement.scrollTop=e-(t+i))}else this.vScrollElement.scrollTop>e&&(this.vScrollElement.scrollTop=e);this.vScrollElement.scrollTop<e-this.offsetHeight+t&&(this.vScrollElement.scrollTop=e-this.offsetHeight+t)}scrollOffset(){return this.vScrollElement.scrollTop}chartHeight(){return this.offsetHeight}setBoundaries(e,t){this.minimumBoundary=e,this.totalTime=t}onMouseWheel(e){const t=s.Settings.Settings.instance().moduleSetting("flamechart-selected-navigation").get(),i=(e.deltaY||e.deltaX)/53*this.offsetHeight/8,r=Math.pow(1.2,1*(e.deltaY||e.deltaX)/53)-1;if("classic"===t)e.shiftKey?this.vScrollElement.scrollTop+=i:Math.abs(e.deltaX)>Math.abs(e.deltaY)?this.handleHorizontalPanGesture(e.deltaX,!0):this.handleZoomGesture(r);else if("modern"===t){const t=o.KeyboardShortcut.KeyboardShortcut.eventHasCtrlEquivalentKey(e);e.shiftKey?this.handleHorizontalPanGesture(i,!0):Math.abs(e.deltaX)>Math.abs(e.deltaY)?this.handleHorizontalPanGesture(e.deltaX,!0):t?this.handleZoomGesture(r):this.vScrollElement.scrollTop+=i}e.consume(!0)}startDragging(e){return!e.shiftKey&&(this.isDraggingInternal=!0,this.dragStartPointX=e.pageX,this.dragStartPointY=e.pageY,this.dragStartScrollTop=this.vScrollElement.scrollTop,this.viewportElement.style.cursor="",!0)}dragging(e){const t=this.dragStartPointX-e.pageX;this.dragStartPointX=e.pageX,this.handleHorizontalPanGesture(t);const i=this.dragStartPointY-e.pageY;this.vScrollElement.scrollTop=this.dragStartScrollTop+i}endDragging(){this.isDraggingInternal=!1}startRangeSelection(e){return!(!e.shiftKey||!this.rangeSelectionEnabled)&&(this.isDraggingInternal=!0,this.selectionOffsetShiftX=e.offsetX-e.pageX,this.selectionStartX=e.offsetX,!0)}endRangeSelection(){this.isDraggingInternal=!1,this.selectionStartX=null}hideRangeSelection(){this.selectionOverlay.classList.add("hidden"),this.rangeSelectionStart=null,this.rangeSelectionEnd=null}setRangeSelection(e,t){this.rangeSelectionEnabled&&(this.rangeSelectionStart=Math.min(e,t),this.rangeSelectionEnd=Math.max(e,t),this.delegate.updateRangeSelection(this.rangeSelectionStart,this.rangeSelectionEnd))}onClick(e){const t=e,i=this.pixelToTime(t.offsetX);null!==this.rangeSelectionStart&&null!==this.rangeSelectionEnd&&i>=this.rangeSelectionStart&&i<=this.rangeSelectionEnd||this.hideRangeSelection()}rangeSelectionDragging(e){const t=r.NumberUtilities.clamp(e.pageX+this.selectionOffsetShiftX,0,this.offsetWidth),i=this.pixelToTime(this.selectionStartX||0),s=this.pixelToTime(t);this.setRangeSelection(i,s)}onScroll(){this.scrollTop=this.vScrollElement.scrollTop,this.scheduleUpdate()}onMouseOut(){this.lastMouseOffsetX=-1,this.showCursor(!1)}updateCursorPosition(e){const t=e;this.lastMouseOffsetX=t.offsetX;const i=this.#He.enableCursorElement&&t.shiftKey&&!t.metaKey;this.showCursor(i),i&&(this.cursorElement.style.left=t.offsetX+"px")}pixelToTime(e){return this.pixelToTimeOffset(e)+this.visibleLeftTime}pixelToTimeOffset(e){return e*(this.visibleRightTime-this.visibleLeftTime)/this.offsetWidth}timeToPosition(e){return Math.floor((e-this.visibleLeftTime)/(this.visibleRightTime-this.visibleLeftTime)*this.offsetWidth)}timeToPixel(){return this.offsetWidth/(this.visibleRightTime-this.visibleLeftTime)}showCursor(e){this.cursorElement.classList.toggle("hidden",!e||this.isDraggingInternal)}onChartKeyDown(e){this.showCursor(e.shiftKey),this.handleZoomPanScrollKeys(e)}onChartKeyUp(e){this.showCursor(e.shiftKey)}handleZoomPanScrollKeys(e){if(o.KeyboardShortcut.KeyboardShortcut.hasAtLeastOneModifier(e)&&!e.shiftKey)return;const t=e.shiftKey?.8:.3,i=160;switch(e.code){case"KeyA":this.handleHorizontalPanGesture(-160,!0);break;case"KeyD":this.handleHorizontalPanGesture(i,!0);break;case"Equal":case"KeyW":this.handleZoomGesture(-t);break;case"Minus":case"KeyS":this.handleZoomGesture(t);break;case"ArrowUp":e.shiftKey&&(this.vScrollElement.scrollTop-=50);break;case"ArrowDown":e.shiftKey&&(this.vScrollElement.scrollTop+=50);break;case"ArrowLeft":e.shiftKey&&this.handleHorizontalPanGesture(-160,!0);break;case"ArrowRight":e.shiftKey&&this.handleHorizontalPanGesture(i,!0);break;default:return}e.consume(!0)}handleZoomGesture(e){const t={left:this.targetLeftTime,right:this.targetRightTime},i=this.pixelToTime(this.lastMouseOffsetX||0);t.left+=(t.left-i)*e,t.right+=(t.right-i)*e,this.requestWindowTimes(t,!0)}handleHorizontalPanGesture(e,t){const i={left:this.targetLeftTime,right:this.targetRightTime},s=r.NumberUtilities.clamp(this.pixelToTimeOffset(e),this.minimumBoundary-i.left,this.totalTime+this.minimumBoundary-i.right);i.left+=s,i.right+=s,this.requestWindowTimes(i,Boolean(t))}requestWindowTimes(e,t){const i=this.minimumBoundary+this.totalTime;e.left<this.minimumBoundary?(e.right=Math.min(e.right+this.minimumBoundary-e.left,i),e.left=this.minimumBoundary):e.right>i&&(e.left=Math.max(e.left-e.right+i,this.minimumBoundary),e.right=i),e.right-e.left<.5||this.delegate.windowChanged(e.left,e.right,t)}scheduleUpdate(){this.cancelWindowTimesAnimation||this.isUpdateScheduled||(this.isUpdateScheduled=!0,n.write((()=>{this.isUpdateScheduled=!1,this.update()})))}update(){this.delegate.update()}setWindowTimes(e,t,i){if(e!==this.targetLeftTime||t!==this.targetRightTime){if(!i||0===this.visibleLeftTime||this.visibleRightTime===1/0||0===e&&t===1/0||e===1/0&&t===1/0)return this.targetLeftTime=e,this.targetRightTime=t,this.visibleLeftTime=e,this.visibleRightTime=t,void this.scheduleUpdate();this.cancelWindowTimesAnimation&&(this.cancelWindowTimesAnimation(),this.visibleLeftTime=this.targetLeftTime,this.visibleRightTime=this.targetRightTime),this.targetLeftTime=e,this.targetRightTime=t,this.cancelWindowTimesAnimation=o.UIUtils.animateFunction(this.element.window(),function(e,t){this.visibleLeftTime=e,this.visibleRightTime=t,this.update()}.bind(this),[{from:this.visibleLeftTime,to:e},{from:this.visibleRightTime,to:t}],100,(()=>{this.cancelWindowTimesAnimation=null}))}}windowLeftTime(){return this.visibleLeftTime}windowRightTime(){return this.visibleRightTime}}var q=Object.freeze({__proto__:null,ChartViewport:Z}),Q={cssText:`.film-strip-view{overflow:auto hidden;align-content:flex-start;min-height:81px}.film-strip-view .frame .time{font-size:10px;margin-top:2px}.film-strip-view .gray-info-message{margin:auto}.film-strip-view .frame{background:none;border:none;display:flex;flex-direction:column;align-items:center;padding:4px;flex:none;cursor:pointer}.film-strip-view .frame .thumbnail{min-width:24px;display:flex;flex-direction:row;align-items:center;pointer-events:none;margin:4px 0 2px;border:2px solid transparent}.film-strip-view .frame:hover .thumbnail,\n.film-strip-view .frame:focus .thumbnail{border-color:var(--sys-color-primary)}.film-strip-view .frame .thumbnail img{height:auto;width:auto;max-width:80px;max-height:50px;pointer-events:none;box-shadow:0 0 3px var(--box-shadow-outline-color);flex:0 0 auto}.film-strip-view .frame:hover .thumbnail img,\n.film-strip-view .frame:focus .thumbnail img{box-shadow:none}\n/*# sourceURL=${import.meta.resolve("./filmStripView.css")} */\n`};const J={doubleclickToZoomImageClickTo:"Doubleclick to zoom image. Click to view preceding requests.",screenshotForSSelectToView:"Screenshot for {PH1} - select to view preceding requests.",screenshot:"Screenshot",previousFrame:"Previous frame",nextFrame:"Next frame"},ee=e.i18n.registerUIStrings("ui/legacy/components/perf_ui/FilmStripView.ts",J),te=e.i18n.getLocalizedString.bind(void 0,ee);class ie extends(s.ObjectWrapper.eventMixin(o.Widget.HBox)){statusLabel;zeroTime=a.Types.Timing.Milli(0);#Be=null;constructor(){super(!0),this.registerRequiredCSS(Q),this.contentElement.classList.add("film-strip-view"),this.statusLabel=this.contentElement.createChild("div","gray-info-message"),this.reset()}static setImageData(e,t){t&&(e.src=t)}setModel(e){this.#Be=e,this.zeroTime=a.Helpers.Timing.microToMilli(e.zeroTime),this.#Be.frames.length?this.update():this.reset()}createFrameElement(t){const i=a.Helpers.Timing.microToMilli(t.screenshotEvent.ts),s=e.TimeUtilities.millisToString(i-this.zeroTime),r=document.createElement("button");r.classList.add("frame"),o.Tooltip.Tooltip.install(r,te(J.doubleclickToZoomImageClickTo)),r.createChild("div","time").textContent=s,r.tabIndex=0,r.setAttribute("jslog",`${l.preview("film-strip").track({click:!0,dblclick:!0})}`),r.setAttribute("aria-label",te(J.screenshotForSSelectToView,{PH1:s})),o.ARIAUtils.markAsButton(r);const n=r.createChild("div","thumbnail").createChild("img");n.alt=te(J.screenshot),r.addEventListener("mousedown",this.onMouseEvent.bind(this,"FrameSelected",i),!1),r.addEventListener("mouseenter",this.onMouseEvent.bind(this,"FrameEnter",i),!1),r.addEventListener("mouseout",this.onMouseEvent.bind(this,"FrameExit",i),!1),r.addEventListener("dblclick",this.onDoubleClick.bind(this,t),!1),r.addEventListener("focusin",this.onMouseEvent.bind(this,"FrameEnter",i),!1),r.addEventListener("focusout",this.onMouseEvent.bind(this,"FrameExit",i),!1);const h=a.Handlers.ModelHandlers.Screenshots.screenshotImageDataUri(t.screenshotEvent);return ie.setImageData(n,h),r}update(){const e=this.#Be?.frames;if(!e||e.length<1)return;const t=e.map((e=>this.createFrameElement(e)));this.contentElement.removeChildren();for(const e of t)this.contentElement.appendChild(e)}onMouseEvent(e,t){this.dispatchEventToListeners(e,t)}onDoubleClick(e){this.#Be&&se.fromFilmStrip(this.#Be,e.index)}reset(){this.zeroTime=a.Types.Timing.Milli(0),this.contentElement.removeChildren(),this.contentElement.appendChild(this.statusLabel)}setStatusText(e){this.statusLabel.textContent=e}}class se{fragment;widget;index;dialog=null;#Oe;static fromFilmStrip(e,t){const i={source:"Trace",frames:e.frames,index:t,zeroTime:a.Helpers.Timing.microToMilli(e.zeroTime)};return new se(i)}constructor(e){this.#Oe=e,this.index=e.index;const t=o.UIUtils.createTextButton("◀",this.onPrevFrame.bind(this));o.Tooltip.Tooltip.install(t,te(J.previousFrame));const i=o.UIUtils.createTextButton("▶",this.onNextFrame.bind(this));o.Tooltip.Tooltip.install(i,te(J.nextFrame)),this.fragment=o.Fragment.Fragment.build`
|
|
2
|
+
<x-widget flex=none margin='var(--sys-size-7) var(--sys-size-8) var(--sys-size-8) var(--sys-size-8)'>
|
|
3
|
+
<x-hbox overflow=auto border='var(--sys-size-1) solid var(--sys-color-divider)'>
|
|
4
|
+
<img $='image' data-film-strip-dialog-img style="max-height: 80vh; max-width: 80vw;"></img>
|
|
5
|
+
</x-hbox>
|
|
6
|
+
<x-hbox x-center justify-content=center margin-top='var(--sys-size-6)'>
|
|
7
|
+
${t}
|
|
8
|
+
<x-hbox $='time' margin='var(--sys-size-5)'></x-hbox>
|
|
9
|
+
${i}
|
|
10
|
+
</x-hbox>
|
|
11
|
+
</x-widget>
|
|
12
|
+
`,this.widget=this.fragment.element(),this.widget.tabIndex=0,this.widget.addEventListener("keydown",this.keyDown.bind(this),!1),this.dialog=null,this.render()}hide(){this.dialog&&this.dialog.hide()}#Ae(){return this.#Oe.frames.length}#Ge(){return this.#Oe.zeroTime}resize(){this.dialog||(this.dialog=new o.Dialog.Dialog,this.dialog.contentElement.appendChild(this.widget),this.dialog.setDefaultFocusedElement(this.widget),this.dialog.show()),this.dialog.setSizeBehavior("MeasureContent")}keyDown(e){const t=e;switch(t.key){case"ArrowLeft":d.Platform.isMac()&&t.metaKey?this.onFirstFrame():this.onPrevFrame();break;case"ArrowRight":d.Platform.isMac()&&t.metaKey?this.onLastFrame():this.onNextFrame();break;case"Home":this.onFirstFrame();break;case"End":this.onLastFrame()}}onPrevFrame(){this.index>0&&--this.index,this.render()}onNextFrame(){this.index<this.#Ae()-1&&++this.index,this.render()}onFirstFrame(){this.index=0,this.render()}onLastFrame(){this.index=this.#Ae()-1,this.render()}render(){const t=this.#Oe.frames[this.index],i=a.Helpers.Timing.microToMilli(t.screenshotEvent.ts);this.fragment.$("time").textContent=e.TimeUtilities.millisToString(i-this.#Ge());const s=this.fragment.$("image");s.setAttribute("data-frame-index",this.index.toString());const r=a.Handlers.ModelHandlers.Screenshots.screenshotImageDataUri(t.screenshotEvent);ie.setImageData(s,r),this.resize()}}var re=Object.freeze({__proto__:null,Dialog:se,FilmStripView:ie});var ne=Object.freeze({__proto__:null,GCActionDelegate:class{handleAction(e,t){for(const e of c.TargetManager.TargetManager.instance().models(c.HeapProfilerModel.HeapProfilerModel))e.collectGarbage();return!0}}});let oe,ae;class le{helper;constructor(){this.helper=new de("performance")}static instance(e={forceNew:null}){const{forceNew:t}=e;return oe&&!t||(oe=new le),oe}reset(){this.helper.reset()}appendLegacyCPUProfile(e,t){const i=[e.profileHead],s=(e.profileEndTime-e.profileStartTime)/e.totalHitCount;for(;i.length;){const e=i.pop().children;for(let r=0;r<e.length;++r){const n=e[r];if(i.push(n),n.url&&n.positionTicks)for(let e=0;e<n.positionTicks.length;++e){const i=n.positionTicks[e],r=i.line,o=i.ticks*s;this.helper.addLineData(t,n.url,r,o)}}}}appendCPUProfile(e,t){if(!e.lines)return this.appendLegacyCPUProfile(e,t),void this.helper.scheduleUpdate();if(e.samples){for(let i=1;i<e.samples.length;++i){const s=e.lines[i];if(!s)continue;const r=e.nodeByIndex(i);if(!r)continue;const n=Number(r.scriptId)||r.url;if(!n)continue;const o=e.timestamps[i]-e.timestamps[i-1];this.helper.addLineData(t,n,s,o)}this.helper.scheduleUpdate()}}}class he{helper;constructor(){this.helper=new de("memory")}static instance(e={forceNew:null}){const{forceNew:t}=e;return ae&&!t||(ae=new he),ae}reset(){this.helper.reset()}appendHeapProfile(e,t){const i=this.helper;!function e(s){if(s.children.forEach(e),!s.selfSize)return;const r=Number(s.callFrame.scriptId)||s.callFrame.url;if(!r)return;const n=s.callFrame.lineNumber+1;i.addLineData(t,r,n,s.selfSize)}(e.head),i.scheduleUpdate()}}class de{type;locationPool=new u.LiveLocation.LiveLocationPool;updateTimer=null;lineData=new Map;constructor(e){this.type=e,this.reset()}reset(){this.lineData=new Map,this.scheduleUpdate()}addLineData(e,t,i,s){let r=this.lineData.get(e);r||(r=new Map,this.lineData.set(e,r));let n=r.get(t);n||(n=new Map,r.set(t,n)),n.set(i,(n.get(i)||0)+s)}scheduleUpdate(){this.updateTimer||(this.updateTimer=window.setTimeout((()=>{this.updateTimer=null,this.doUpdate()}),0))}async doUpdate(){this.locationPool.disposeAll();const e=new Map,t=[];for(const[i,s]of this.lineData){const r=i?i.model(c.DebuggerModel.DebuggerModel):null;for(const[i,n]of s){const s=m.Workspace.WorkspaceImpl.instance();if(r){const s=u.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance();for(const o of n){const n=o[0]-1,a=o[1],l="string"==typeof i?r.createRawLocationByURL(i,n,0):r.createRawLocationByScriptId(String(i),n,0);l&&t.push(s.rawLocationToUILocation(l).then((t=>{if(t){let i=e.get(t.uiSourceCode);i||(i=new Map,e.set(t.uiSourceCode,i)),i.set(t.lineNumber+1,a)}})))}}else if("string"==typeof i){const t=s.uiSourceCodeForURL(i);t&&e.set(t,n)}}await Promise.all(t);for(const[t,i]of e)t.setDecorationData(this.type,i)}for(const t of m.Workspace.WorkspaceImpl.instance().uiSourceCodes())e.has(t)||t.setDecorationData(this.type,void 0)}}var ce=Object.freeze({__proto__:null,Helper:de,Memory:he,Performance:le});let ue;class me{running;sessionId;loadEventCallback;setting;constructor(){this.running=!1,this.sessionId=0,this.loadEventCallback=()=>{},this.setting=s.Settings.Settings.instance().moduleSetting("memory-live-heap-profile"),this.setting.addChangeListener((e=>e.data?this.startProfiling():this.stopProfiling())),this.setting.get()&&this.startProfiling()}static instance(e={forceNew:null}){const{forceNew:t}=e;return ue&&!t||(ue=new me),ue}async run(){}modelAdded(e){e.startSampling(1e4)}modelRemoved(e){}async startProfiling(){if(this.running)return;this.running=!0;const e=this.sessionId;c.TargetManager.TargetManager.instance().observeModels(c.HeapProfilerModel.HeapProfilerModel,this),c.TargetManager.TargetManager.instance().addModelListener(c.ResourceTreeModel.ResourceTreeModel,c.ResourceTreeModel.Events.Load,this.loadEventFired,this);do{const t=c.TargetManager.TargetManager.instance().models(c.HeapProfilerModel.HeapProfilerModel),i=await Promise.all(t.map((e=>e.getSamplingProfile())));if(e!==this.sessionId)break;he.instance().reset();for(let e=0;e<i.length;++e){const s=i[e];s&&he.instance().appendHeapProfile(s,t[e].target())}await Promise.race([new Promise((e=>window.setTimeout(e,d.InspectorFrontendHost.isUnderTest()?10:5e3))),new Promise((e=>{this.loadEventCallback=e}))])}while(e===this.sessionId);c.TargetManager.TargetManager.instance().unobserveModels(c.HeapProfilerModel.HeapProfilerModel,this),c.TargetManager.TargetManager.instance().removeModelListener(c.ResourceTreeModel.ResourceTreeModel,c.ResourceTreeModel.Events.Load,this.loadEventFired,this);for(const e of c.TargetManager.TargetManager.instance().models(c.HeapProfilerModel.HeapProfilerModel))e.stopSampling();he.instance().reset()}stopProfiling(){this.running&&(this.running=!1,this.sessionId++)}loadEventFired(){this.loadEventCallback()}}var pe=Object.freeze({__proto__:null,LiveHeapProfile:me});const ge={lowest:"Lowest",low:"Low",medium:"Medium",high:"High",highest:"Highest"},ve=e.i18n.registerUIStrings("ui/legacy/components/perf_ui/NetworkPriorities.ts",ge),fe=e.i18n.getLocalizedString.bind(void 0,ve);const we=new Map;const be=new Map;function ye(){return 0===be.size&&(be.set("VeryLow",fe(ge.lowest)),be.set("Low",fe(ge.low)),be.set("Medium",fe(ge.medium)),be.set("High",fe(ge.high)),be.set("VeryHigh",fe(ge.highest))),be}const Te=new Map;var Ee=Object.freeze({__proto__:null,networkPriorityWeight:function(e){return 0===Te.size&&(Te.set("VeryLow",1),Te.set("Low",2),Te.set("Medium",3),Te.set("High",4),Te.set("VeryHigh",5)),Te.get(e)||0},priorityUILabelMap:ye,uiLabelForNetworkPriority:function(e){return ye().get(e)||""},uiLabelToNetworkPriority:function(e){0===we.size&&ye().forEach(((e,t)=>we.set(e,t)));const t=we.get(e);if(t)return t;throw new Error("Priority not found")}}),xe={cssText:`.overview-grid-window-selector{position:absolute;top:0;bottom:0;background-color:var(--sys-color-state-ripple-primary);z-index:250;pointer-events:none}.overview-grid-window-resizer{position:absolute;top:0;height:19px;width:10px;margin-left:-5px;background-color:var(--sys-color-tonal-container);border:1px solid var(--sys-color-tonal-outline);z-index:500;border-radius:3px}.overview-grid-window-resizer::before,\n.overview-grid-window-resizer::after{content:"";width:1px;background:var(--sys-color-primary);height:7px;position:absolute;left:2px;top:5px;border-radius:1px}.overview-grid-window-resizer::after{left:5px}.overview-grid-window-resizer:focus-visible{background-color:var(--sys-color-state-focus-highlight)}.overview-grid-cursor-area{position:absolute;inset:20px 0 0;z-index:500;cursor:text}.overview-grid-cursor-position{position:absolute;top:0;bottom:0;width:2px;background-color:var(--sys-color-primary);z-index:500;pointer-events:none;visibility:hidden;overflow:hidden}.window-curtain-left,\n.window-curtain-right{background-color:var(--sys-color-state-ripple-primary);position:absolute;top:0;height:100%;z-index:300;pointer-events:none;border:2px none var(--sys-color-tonal-outline)}.window-curtain-left{left:0;border-right-style:solid}.window-curtain-right{right:0;border-left-style:solid}.create-breadcrumb-button-container{visibility:hidden;opacity:0%;transition:opacity 100ms 250ms;display:flex;position:absolute;top:15px;justify-content:center;z-index:600;left:0;right:0}.is-breadcrumb-button-visible{visibility:visible;opacity:100%}.create-breadcrumb-button-container.with-screenshots{top:20px}.create-breadcrumb-button{display:flex;flex-shrink:0;align-items:center;background:var(--sys-color-cdt-base-container);box-shadow:var(--drop-shadow-depth-3);border-radius:50px;padding:1px 6px;gap:2px}.create-breadcrumb-button:active{cursor:default}.create-breadcrumb-button:hover{background:var(--sys-color-neutral-container)}@media (forced-colors: active){.overview-grid-cursor-position{forced-color-adjust:none;background-color:Highlight}.window-curtain-left,\n .window-curtain-right{background-color:transparent;border-color:ButtonText}.overview-grid-window-resizer{background-color:ButtonText}.overview-grid-window-resizer:hover,\n .overview-grid-window-resizer:active,\n .overview-grid-window-resizer:focus-visible{forced-color-adjust:none;background-color:Highlight}}\n/*# sourceURL=${import.meta.resolve("./overviewGrid.css")} */\n`};const Ce={overviewGridWindow:"Overview grid window",leftResizer:"Left Resizer",rightResizer:"Right Resizer"},Se=e.i18n.registerUIStrings("ui/legacy/components/perf_ui/OverviewGrid.ts",Ce),Le=e.i18n.getLocalizedString.bind(void 0,Se);class ke{element;grid;window;constructor(e,t){this.element=document.createElement("div"),this.element.id=e+"-overview-container",this.grid=new A,this.grid.element.id=e+"-overview-grid",this.grid.setScrollTop(0),this.element.appendChild(this.grid.element),this.window=new Re(this.element,this.grid.dividersLabelBarElement,t)}enableCreateBreadcrumbsButton(){return this.window.enableCreateBreadcrumbsButton()}set showingScreenshots(e){this.window.showingScreenshots=e}clientWidth(){return this.element.clientWidth}updateDividers(e){this.grid.updateDividers(e)}addEventDividers(e){this.grid.addEventDividers(e)}removeEventDividers(){this.grid.removeEventDividers()}reset(){this.window.reset()}windowLeftRatio(){return this.window.windowLeftRatio||0}windowRightRatio(){return this.window.windowRightRatio||0}calculateWindowValue(){return this.window.calculateWindowValue()}setWindowRatio(e,t){this.window.setWindowRatio(e,t)}addEventListener(e,t,i){return this.window.addEventListener(e,t,i)}setClickHandler(e){this.window.setClickHandler(e)}zoom(e,t){this.window.zoom(e,t)}setResizeEnabled(e){this.window.setResizeEnabled(e)}}const Pe=14,De=10;class Re extends s.ObjectWrapper.ObjectWrapper{parentElement;calculator;leftResizeElement;rightResizeElement;leftCurtainElement;rightCurtainElement;breadcrumbButtonContainerElement;createBreadcrumbButton;curtainsRange;breadcrumbZoomIcon;overviewWindowSelector;offsetLeft;dragStartPointPixel;dragStartLeftRatio;dragStartRightRatio;windowLeftRatio=0;windowRightRatio=1;resizeEnabled;clickHandler;resizerParentOffsetLeft;#ze=!1;#Ve=!1;constructor(e,t,s){super(),this.parentElement=e,this.parentElement.classList.add("parent-element"),o.ARIAUtils.markAsGroup(this.parentElement),this.calculator=s,o.ARIAUtils.setLabel(this.parentElement,Le(Ce.overviewGridWindow)),o.UIUtils.installDragHandle(this.parentElement,this.startWindowSelectorDragging.bind(this),this.windowSelectorDragging.bind(this),this.endWindowSelectorDragging.bind(this),"text",null),t&&o.UIUtils.installDragHandle(t,this.startWindowDragging.bind(this),this.windowDragging.bind(this),null,"-webkit-grabbing","-webkit-grab"),this.parentElement.addEventListener("wheel",this.onMouseWheel.bind(this),!0),this.parentElement.addEventListener("dblclick",this.resizeWindowMaximum.bind(this),!0),i.ThemeSupport.instance().appendStyle(this.parentElement,xe),this.leftResizeElement=e.createChild("div","overview-grid-window-resizer"),o.UIUtils.installDragHandle(this.leftResizeElement,this.resizerElementStartDragging.bind(this),this.leftResizeElementDragging.bind(this),null,"ew-resize"),this.rightResizeElement=e.createChild("div","overview-grid-window-resizer"),o.UIUtils.installDragHandle(this.rightResizeElement,this.resizerElementStartDragging.bind(this),this.rightResizeElementDragging.bind(this),null,"ew-resize"),o.ARIAUtils.setLabel(this.leftResizeElement,Le(Ce.leftResizer)),o.ARIAUtils.markAsSlider(this.leftResizeElement);this.leftResizeElement.addEventListener("keydown",(e=>this.handleKeyboardResizing(e,!1))),this.leftResizeElement.addEventListener("click",this.onResizerClicked),o.ARIAUtils.setLabel(this.rightResizeElement,Le(Ce.rightResizer)),o.ARIAUtils.markAsSlider(this.rightResizeElement);this.rightResizeElement.addEventListener("keydown",(e=>this.handleKeyboardResizing(e,!0))),this.rightResizeElement.addEventListener("focus",this.onRightResizeElementFocused.bind(this)),this.rightResizeElement.addEventListener("click",this.onResizerClicked),this.leftCurtainElement=e.createChild("div","window-curtain-left"),this.rightCurtainElement=e.createChild("div","window-curtain-right"),this.breadcrumbButtonContainerElement=e.createChild("div","create-breadcrumb-button-container"),this.createBreadcrumbButton=this.breadcrumbButtonContainerElement.createChild("div","create-breadcrumb-button"),this.createBreadcrumbButton.setAttribute("jslog",`${l.action("timeline.create-breadcrumb").track({click:!0})}`),this.reset()}enableCreateBreadcrumbsButton(){return this.curtainsRange=this.createBreadcrumbButton.createChild("div"),this.breadcrumbZoomIcon=p.Icon.create("zoom-in"),this.createBreadcrumbButton.appendChild(this.breadcrumbZoomIcon),this.createBreadcrumbButton.addEventListener("click",(()=>{this.#We()})),this.#ze=!0,this.#Fe(this.parentElement),this.#Fe(this.rightResizeElement),this.#Fe(this.leftResizeElement),this.breadcrumbButtonContainerElement}set showingScreenshots(e){this.breadcrumbButtonContainerElement.classList.toggle("with-screenshots",e)}#Fe(e){this.#ze&&(e.addEventListener("mouseover",(()=>{this.windowLeftRatio<=0&&this.windowRightRatio>=1?(this.breadcrumbButtonContainerElement.classList.toggle("is-breadcrumb-button-visible",!1),this.#Ve=!1):(this.breadcrumbButtonContainerElement.classList.toggle("is-breadcrumb-button-visible",!0),this.#Ve=!0)})),e.addEventListener("mouseout",(()=>{this.breadcrumbButtonContainerElement.classList.toggle("is-breadcrumb-button-visible",!1),this.#Ve=!1})))}onResizerClicked(e){e.target&&e.target.focus()}onRightResizeElementFocused(){this.parentElement.scrollLeft=0}reset(){this.windowLeftRatio=0,this.windowRightRatio=1,this.setResizeEnabled(!0),this.updateCurtains()}setResizeEnabled(e){this.resizeEnabled=e,this.rightResizeElement.tabIndex=e?0:-1,this.leftResizeElement.tabIndex=e?0:-1}setClickHandler(e){this.clickHandler=e}resizerElementStartDragging(e){const t=e,i=e.target;return!!this.resizeEnabled&&(this.resizerParentOffsetLeft=t.pageX-t.offsetX-i.offsetLeft,e.stopPropagation(),!0)}leftResizeElementDragging(e){const t=e;this.resizeWindowLeft(t.pageX-(this.resizerParentOffsetLeft||0)),e.preventDefault()}rightResizeElementDragging(e){const t=e;this.resizeWindowRight(t.pageX-(this.resizerParentOffsetLeft||0)),e.preventDefault()}handleKeyboardResizing(e,t){const i=e,s=e.target;let r=!1;if("ArrowLeft"===i.key||"ArrowRight"===i.key){"ArrowRight"===i.key&&(r=!0);const n=this.getNewResizerPosition(s.offsetLeft,r,i.ctrlKey);t?this.resizeWindowRight(n):this.resizeWindowLeft(n),e.consume(!0)}}getNewResizerPosition(e,t,i){let s,r=i?10:2;r=t?r:-Math.abs(r);return s=e+5+r,t&&s<De?s=De:!t&&s>this.parentElement.clientWidth-De&&(s=this.parentElement.clientWidth-De),s}startWindowSelectorDragging(e){if(!this.resizeEnabled)return!1;const t=e;this.offsetLeft=this.parentElement.getBoundingClientRect().left;const i=t.x-this.offsetLeft;return this.overviewWindowSelector=new Ie(this.parentElement,i),!0}windowSelectorDragging(e){if(this.#Ve=!0,!this.overviewWindowSelector)return;const t=e;this.overviewWindowSelector.updatePosition(t.x-this.offsetLeft),e.preventDefault()}endWindowSelectorDragging(e){if(!this.overviewWindowSelector)return;const t=e,i=this.overviewWindowSelector.close(t.x-this.offsetLeft);if(this.#ze&&i.start===i.end)return;delete this.overviewWindowSelector;if(i.end-i.start<3){if(this.clickHandler?.call(null,e))return;const t=i.end;i.start=Math.max(0,t-7),i.end=Math.min(this.parentElement.clientWidth,t+7)}else i.end-i.start<Pe&&(this.parentElement.clientWidth-i.end>Pe?i.end=i.start+Pe:i.start=i.end-Pe);this.setWindowPosition(i.start,i.end)}startWindowDragging(e){const t=e;return this.dragStartPointPixel=t.pageX,this.dragStartLeftRatio=this.windowLeftRatio,this.dragStartRightRatio=this.windowRightRatio,e.stopPropagation(),!0}windowDragging(e){this.#Ve=!0,this.#ze&&this.breadcrumbButtonContainerElement.classList.toggle("is-breadcrumb-button-visible",!0);const t=e;t.preventDefault();let i=(t.pageX-this.dragStartPointPixel)/this.parentElement.clientWidth;this.dragStartLeftRatio+i<0&&(i=-this.dragStartLeftRatio),this.dragStartRightRatio+i>1&&(i=1-this.dragStartRightRatio),this.setWindowRatio(this.dragStartLeftRatio+i,this.dragStartRightRatio+i)}resizeWindowLeft(e){this.#Ve=!0,e<De?e=0:e>this.rightResizeElement.offsetLeft-4&&(e=this.rightResizeElement.offsetLeft-4),this.setWindowPosition(e,null)}resizeWindowRight(e){this.#Ve=!0,e>this.parentElement.clientWidth-De?e=this.parentElement.clientWidth:e<this.leftResizeElement.offsetLeft+Pe&&(e=this.leftResizeElement.offsetLeft+Pe),this.setWindowPosition(null,e)}resizeWindowMaximum(){this.setWindowPosition(0,this.parentElement.clientWidth)}getRawSliderValue(e){if(!this.calculator)throw new Error("No calculator to calculate boundaries");const t=this.calculator.minimumBoundary(),i=this.calculator.maximumBoundary()-t;return e?t+i*this.windowLeftRatio:t+i*this.windowRightRatio}updateResizeElementAriaValue(e,t){const i=e.toFixed(2),s=t.toFixed(2);o.ARIAUtils.setAriaValueNow(this.leftResizeElement,i),o.ARIAUtils.setAriaValueNow(this.rightResizeElement,s);const r=Number(s)-.5,n=Number(i)+.5;o.ARIAUtils.setAriaValueMinMax(this.leftResizeElement,"0",r.toString()),o.ARIAUtils.setAriaValueMinMax(this.rightResizeElement,n.toString(),"100")}updateResizeElementPositionLabels(){if(!this.calculator)return;const e=this.calculator.formatValue(this.getRawSliderValue(!0)),t=this.calculator.formatValue(this.getRawSliderValue(!1));o.ARIAUtils.setAriaValueText(this.leftResizeElement,String(e)),o.ARIAUtils.setAriaValueText(this.rightResizeElement,String(t))}updateResizeElementPercentageLabels(e,t){o.ARIAUtils.setAriaValueText(this.leftResizeElement,e),o.ARIAUtils.setAriaValueText(this.rightResizeElement,t)}calculateWindowValue(){return{rawStartValue:this.getRawSliderValue(!0),rawEndValue:this.getRawSliderValue(!1)}}setWindowRatio(e,t){this.windowLeftRatio=e,this.windowRightRatio=t,this.updateCurtains(),this.calculator&&this.dispatchEventToListeners("WindowChangedWithPosition",this.calculateWindowValue()),this.dispatchEventToListeners("WindowChanged"),this.#Ue(e,t)}#Ue(e,t){this.#ze&&(t>=1&&e<=0||!this.#Ve?this.breadcrumbButtonContainerElement.classList.toggle("is-breadcrumb-button-visible",!1):this.breadcrumbButtonContainerElement.classList.toggle("is-breadcrumb-button-visible",!0))}#We(){this.dispatchEventToListeners("BreadcrumbAdded",this.calculateWindowValue())}updateCurtains(){const e=this.windowLeftRatio,t=this.windowRightRatio;let i=e,s=t;const r=s-i;if(0!==this.parentElement.clientWidth){const n=r*this.parentElement.clientWidth,o=7;if(n<o){const a=o/n;i=(t+e-r*a)/2,s=(t+e+r*a)/2}}const n=100*i,o=100*s,a=100-100*s,l=n+"%",h=o+"%";this.leftResizeElement.style.left=l,this.rightResizeElement.style.left=h,this.leftCurtainElement.style.width=l,this.rightCurtainElement.style.width=a+"%",this.breadcrumbButtonContainerElement.style.marginLeft=n>0?n+"%":"0%",this.breadcrumbButtonContainerElement.style.marginRight=a>0?a+"%":"0%",this.curtainsRange&&(this.curtainsRange.textContent=this.getWindowRange().toFixed(0)+" ms"),this.updateResizeElementAriaValue(n,o),this.calculator?this.updateResizeElementPositionLabels():this.updateResizeElementPercentageLabels(l,h),this.toggleBreadcrumbZoomButtonDisplay()}toggleBreadcrumbZoomButtonDisplay(){this.breadcrumbZoomIcon&&(this.getWindowRange()<4.5?(this.breadcrumbZoomIcon.style.display="none",this.breadcrumbButtonContainerElement.style.pointerEvents="none"):(this.breadcrumbZoomIcon.style.display="flex",this.breadcrumbButtonContainerElement.style.pointerEvents="auto"))}getWindowRange(){if(!this.calculator)throw new Error("No calculator to calculate window range");const e=this.windowLeftRatio>0?this.windowLeftRatio:0,t=this.windowRightRatio<1?this.windowRightRatio:1;return this.calculator.boundarySpan()*(t-e)}setWindowPosition(e,t){const i=this.parentElement.clientWidth,s="number"==typeof e?e/i:this.windowLeftRatio,r="number"==typeof t?t/i:this.windowRightRatio;this.setWindowRatio(s||0,r||0)}onMouseWheel(e){const t=e;if(this.resizeEnabled){if(t.deltaY){const e=1.1,i=1/53,s=t.offsetX/this.parentElement.clientWidth;this.zoom(Math.pow(e,t.deltaY*i),s)}if(t.deltaX){let e=Math.round(.3*t.deltaX);const i=this.leftResizeElement.offsetLeft+5,s=this.rightResizeElement.offsetLeft+5;i-e<0&&(e=i),s-e>this.parentElement.clientWidth&&(e=s-this.parentElement.clientWidth),this.setWindowPosition(i-e,s-e),t.preventDefault()}}}zoom(e,t){let i=this.windowLeftRatio||0,s=this.windowRightRatio||0;const n=s-i;let o=e*n;o>1&&(o=1,e=o/n),i=t+(i-t)*e,i=r.NumberUtilities.clamp(i,0,1-o),s=t+(s-t)*e,s=r.NumberUtilities.clamp(s,o,1),this.setWindowRatio(i,s)}}class Ie{startPosition;width;windowSelector;constructor(e,t){this.startPosition=t,this.width=e.offsetWidth,this.windowSelector=document.createElement("div"),this.windowSelector.className="overview-grid-window-selector",this.windowSelector.style.left=this.startPosition+"px",this.windowSelector.style.right=this.width-this.startPosition+"px",e.appendChild(this.windowSelector)}close(e){return e=Math.max(0,Math.min(e,this.width)),this.windowSelector.remove(),this.startPosition<e?{start:this.startPosition,end:e}:{start:e,end:this.startPosition}}updatePosition(e){(e=Math.max(0,Math.min(e,this.width)))<this.startPosition?(this.windowSelector.style.left=e+"px",this.windowSelector.style.right=this.width-this.startPosition+"px"):(this.windowSelector.style.left=this.startPosition+"px",this.windowSelector.style.right=this.width-e+"px")}}var Me=Object.freeze({__proto__:null,OverviewGrid:ke,Window:Re,WindowSelector:Ie}),He={cssText:`.root{align-items:flex-start;display:flex;min-width:fit-content;white-space:nowrap}.chart-root{position:relative;overflow:hidden}.pie-chart-foreground{position:absolute;width:100%;height:100%;z-index:10;top:0;display:flex;pointer-events:none}.pie-chart-total{margin:auto;padding:2px 5px;pointer-events:auto}:focus{outline-width:0}.pie-chart-total.selected{font-weight:bold}.chart-root .slice.selected{stroke:var(--sys-color-primary);stroke-opacity:100%;stroke-width:0.04;stroke-linecap:round;stroke-linejoin:round}.pie-chart-legend{margin-left:30px}.pie-chart-legend-row{margin:5px 2px 5px auto;padding-right:25px}.pie-chart-legend-row.selected{font-weight:bold}.pie-chart-legend-row:focus-visible{box-shadow:0 0 0 2px var(--sys-color-state-focus-ring)!important}.pie-chart-swatch{display:inline-block;width:11px;height:11px;margin:0 6px;top:1px;position:relative;border:1px solid var(--sys-color-neutral-outline)}.pie-chart-name{display:inline-block}.pie-chart-size{display:inline-block;text-align:right;width:70px}@media (forced-colors: active){.pie-chart-swatch{forced-color-adjust:none;border-color:ButtonText}.pie-chart-total{forced-color-adjust:none;background-color:canvas}}\n/*# sourceURL=${import.meta.resolve("./pieChart.css")} */\n`};const Be=new CSSStyleSheet;Be.replaceSync(He.cssText);const Oe={total:"Total"},Ae=e.i18n.registerUIStrings("ui/legacy/components/perf_ui/PieChart.ts",Oe),Ge=e.i18n.getLocalizedString.bind(void 0,Ae);class ze extends HTMLElement{shadow=this.attachShadow({mode:"open"});chartName="";size=0;formatter=e=>String(e);showLegend=!1;total=0;slices=[];totalSelected=!0;sliceSelected=-1;innerR=.618;lastAngle=-Math.PI/2;connectedCallback(){this.shadow.adoptedStyleSheets=[Be]}set data(e){this.chartName=e.chartName,this.size=e.size,this.formatter=e.formatter,this.showLegend=e.showLegend,this.total=e.total,this.slices=e.slices,this.render()}render(){this.lastAngle=-Math.PI/2;const e=g`
|
|
13
|
+
<div class="root" role="group" @keydown=${this.onKeyDown} aria-label=${this.chartName}
|
|
14
|
+
jslog=${l.pieChart().track({keydown:"ArrowUp|ArrowDown"})}>
|
|
15
|
+
<div class="chart-root" style="width: ${this.size}px; height: ${this.size}px;">
|
|
16
|
+
${v`
|
|
17
|
+
<svg>
|
|
18
|
+
<g transform="scale(${this.size/2}) translate(1, 1) scale(0.99, 0.99)">
|
|
19
|
+
<circle r="1" stroke="hsl(0, 0%, 80%)" fill="transparent" stroke-width=${1/this.size}></circle>
|
|
20
|
+
<circle r=${this.innerR} stroke="hsl(0, 0%, 80%)" fill="transparent" stroke-width=${1/this.size}></circle>
|
|
21
|
+
${this.slices.map(((e,t)=>{const i=this.sliceSelected===t,s=i&&!this.showLegend?"0":"-1";return v`<path class="slice ${i?"selected":""}"
|
|
22
|
+
jslog=${l.pieChartSlice().track({click:!0})}
|
|
23
|
+
@click=${this.onSliceClicked(t)} tabIndex=${s}
|
|
24
|
+
fill=${e.color} d=${this.getPathStringForSlice(e)}
|
|
25
|
+
aria-label=${e.title} id=${i?"selectedSlice":""}></path>`}))}
|
|
26
|
+
<!-- This is so that the selected slice is re-drawn on top, to avoid re-ordering slices
|
|
27
|
+
just to render them properly. -->
|
|
28
|
+
<use href="#selectedSlice" />
|
|
29
|
+
</g>
|
|
30
|
+
</svg>
|
|
31
|
+
`}
|
|
32
|
+
<div class="pie-chart-foreground">
|
|
33
|
+
<div class="pie-chart-total ${this.totalSelected?"selected":""}" @click=${this.selectTotal}
|
|
34
|
+
jslog=${l.pieChartTotal("select-total").track({click:!0})}
|
|
35
|
+
tabIndex=${this.totalSelected&&!this.showLegend?"1":"-1"}>
|
|
36
|
+
${this.total?this.formatter(this.total):""}
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
${this.showLegend?g`
|
|
41
|
+
<div class="pie-chart-legend" jslog=${l.section("legend")}>
|
|
42
|
+
${this.slices.map(((e,t)=>{const i=this.sliceSelected===t;return g`
|
|
43
|
+
<div class="pie-chart-legend-row ${i?"selected":""}"
|
|
44
|
+
jslog=${l.pieChartSlice().track({click:!0})}
|
|
45
|
+
@click=${this.onSliceClicked(t)} tabIndex=${i?"0":"-1"}>
|
|
46
|
+
<div class="pie-chart-size">${this.formatter(e.value)}</div>
|
|
47
|
+
<div class="pie-chart-swatch" style="background-color: ${e.color};"></div>
|
|
48
|
+
<div class="pie-chart-name">${e.title}</div>
|
|
49
|
+
</div>`}))}
|
|
50
|
+
<div class="pie-chart-legend-row ${this.totalSelected?"selected":""}"
|
|
51
|
+
jslog=${l.pieChartTotal("select-total").track({click:!0})}
|
|
52
|
+
@click=${this.selectTotal} tabIndex=${this.totalSelected?"0":"-1"}>
|
|
53
|
+
<div class="pie-chart-size">${this.formatter(this.total)}</div>
|
|
54
|
+
<div class="pie-chart-swatch"></div>
|
|
55
|
+
<div class="pie-chart-name">${Ge(Oe.total)}</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
`:""}
|
|
59
|
+
</div>
|
|
60
|
+
`;f(e,this.shadow,{host:this})}onSliceClicked(e){return()=>{this.selectSlice(e)}}selectSlice(e){this.totalSelected=!1,this.sliceSelected=e,this.render()}selectTotal(){this.totalSelected=!0,this.sliceSelected=-1,this.render()}selectAndFocusTotal(){this.selectTotal();const e=this.shadow.querySelector(".pie-chart-legend > :last-child");e&&e.focus()}selectAndFocusSlice(e){this.selectSlice(e);const t=this.shadow.querySelector(`.pie-chart-legend > :nth-child(${e+1})`);t&&t.focus()}focusNextElement(){this.totalSelected?this.selectAndFocusSlice(0):this.sliceSelected===this.slices.length-1?this.selectAndFocusTotal():this.selectAndFocusSlice(this.sliceSelected+1)}focusPreviousElement(){this.totalSelected?this.selectAndFocusSlice(this.slices.length-1):0===this.sliceSelected?this.selectAndFocusTotal():this.selectAndFocusSlice(this.sliceSelected-1)}onKeyDown(e){let t=!1;"ArrowDown"===e.key?(this.focusNextElement(),t=!0):"ArrowUp"===e.key&&(this.focusPreviousElement(),t=!0),t&&(e.stopImmediatePropagation(),e.preventDefault())}getPathStringForSlice(e){let t=e.value/this.total*2*Math.PI;if(!isFinite(t))return;t=Math.min(t,2*Math.PI*.9999);const i=Math.cos(this.lastAngle),s=Math.sin(this.lastAngle);this.lastAngle+=t;const r=Math.cos(this.lastAngle),n=Math.sin(this.lastAngle),o=this.innerR,a=r*o,l=n*o,h=i*o,d=s*o,c=t>Math.PI?1:0;return`M${i},${s} A1,1,0,${c},1,${r},${n} L${a},${l} A${o},${o},0,${c},0,${h},${d} Z`}}customElements.define("devtools-perf-piechart",ze);var Ve=Object.freeze({__proto__:null,PieChart:ze});class We{#Ne=a.Types.Timing.Milli(0);#_e=a.Types.Timing.Milli(100);#Xe=0;navStartTimes;computePosition(e){return(e-this.#Ne)/this.boundarySpan()*this.#Xe}positionToTime(e){return 0===this.#Xe?a.Types.Timing.Milli(0):a.Types.Timing.Milli(e/this.#Xe*this.boundarySpan()+this.#Ne)}setBounds(e,t){this.#Ne=e,this.#_e=t}setNavStartTimes(e){this.navStartTimes=e}setDisplayWidth(e){this.#Xe=e}reset(){this.setBounds(a.Types.Timing.Milli(0),a.Types.Timing.Milli(100))}formatValue(t,i){if(this.navStartTimes)for(let e=this.navStartTimes.length-1;e>=0;e--){const i=a.Helpers.Timing.microToMilli(this.navStartTimes[e].ts);if(t>i){t=a.Types.Timing.Milli(t-(i-this.zeroTime()));break}}return e.TimeUtilities.preciseMillisToString(t-this.zeroTime(),i)}maximumBoundary(){return this.#_e}minimumBoundary(){return this.#Ne}zeroTime(){return this.#Ne}boundarySpan(){return a.Types.Timing.Milli(this.#_e-this.#Ne)}}var Fe=Object.freeze({__proto__:null,TimelineOverviewCalculator:We}),Ue={cssText:`.overview-info:not(:empty){display:flex;background:var(--sys-color-cdt-base-container);box-shadow:var(--sys-elevation-level2);padding:var(--sys-size-4);border-radius:var(--sys-shape-corner-small)}.overview-info .frame .time{display:none}.overview-info .frame .thumbnail img{max-width:50vw;max-height:50vh}\n/*# sourceURL=${import.meta.resolve("./timelineOverviewInfo.css")} */\n`};class Ne extends(s.ObjectWrapper.eventMixin(o.Widget.VBox)){overviewCalculator;overviewGrid;cursorArea;cursorElement;overviewControls=[];markers=new Map;overviewInfo;updateThrottler=new s.Throttler.Throttler(100);cursorEnabled=!1;cursorPosition=0;lastWidth=0;windowStartTime=0;windowEndTime=1/0;muteOnWindowChanged=!1;#$e;constructor(e){super(),this.element.id=e+"-overview-pane",this.overviewCalculator=new We,this.overviewGrid=new ke(e,this.overviewCalculator),this.overviewGrid.element.setAttribute("jslog",`${l.timeline(`${e}-overview`).track({click:!0,drag:!0,hover:!0})}`),this.element.appendChild(this.overviewGrid.element),this.cursorArea=this.overviewGrid.element.createChild("div","overview-grid-cursor-area"),this.cursorElement=this.overviewGrid.element.createChild("div","overview-grid-cursor-position"),this.cursorArea.addEventListener("mousemove",this.onMouseMove.bind(this),!0),this.cursorArea.addEventListener("mouseleave",this.hideCursor.bind(this),!0),this.overviewGrid.setResizeEnabled(!1),this.overviewGrid.addEventListener("WindowChangedWithPosition",this.onWindowChanged,this),this.overviewGrid.addEventListener("BreadcrumbAdded",this.onBreadcrumbAdded,this),this.overviewGrid.setClickHandler(this.onClick.bind(this)),this.overviewInfo=new Xe(this.cursorElement),this.#$e=o.UIUtils.createSVGChild(this.element,"svg","timeline-minimap-dim-highlight-svg hidden"),this.#Ke()}enableCreateBreadcrumbsButton(){const e=this.overviewGrid.enableCreateBreadcrumbsButton();e.addEventListener("mousemove",this.onMouseMove.bind(this),!0),e.addEventListener("mouseleave",this.hideCursor.bind(this),!0)}onMouseMove(e){if(!this.cursorEnabled)return;const t=e,i=e.target.getBoundingClientRect().left-this.cursorArea.getBoundingClientRect().left;this.cursorPosition=t.offsetX+i,this.cursorElement.style.left=this.cursorPosition+"px",this.cursorElement.style.visibility="visible";const s=this.overviewCalculator.positionToTime(this.cursorPosition),r=this.overviewGrid.calculateWindowValue();if(a.Types.Timing.Milli(r.rawStartValue)<=s&&s<=a.Types.Timing.Milli(r.rawEndValue)){const e=a.Helpers.Timing.milliToMicro(s);this.dispatchEventToListeners("OverviewPaneMouseMove",{timeInMicroSeconds:e})}else this.dispatchEventToListeners("OverviewPaneMouseLeave");this.overviewInfo.setContent(this.buildOverviewInfo())}async buildOverviewInfo(){const e=this.element.ownerDocument,t=this.cursorPosition,i=await Promise.all(this.overviewControls.map((e=>e.overviewInfoPromise(t)))),s=e.createDocumentFragment(),r=i.filter((e=>null!==e));return s.append(...r),s}hideCursor(){this.cursorElement.style.visibility="hidden",this.dispatchEventToListeners("OverviewPaneMouseLeave"),this.overviewInfo.hide()}wasShown(){this.update()}willHide(){this.overviewInfo.hide()}onResize(){const e=this.element.offsetWidth;e!==this.lastWidth&&(this.lastWidth=e,this.scheduleUpdate())}setOverviewControls(e){for(let e=0;e<this.overviewControls.length;++e)this.overviewControls[e].dispose();for(let t=0;t<e.length;++t)e[t].setCalculator(this.overviewCalculator),e[t].show(this.overviewGrid.element);this.overviewControls=e,this.update()}set showingScreenshots(e){this.overviewGrid.showingScreenshots=e}setBounds(e,t){e===this.overviewCalculator.minimumBoundary()&&t===this.overviewCalculator.maximumBoundary()||(this.overviewCalculator.setBounds(e,t),this.overviewGrid.setResizeEnabled(!0),this.cursorEnabled=!0,this.scheduleUpdate(e,t))}setNavStartTimes(e){this.overviewCalculator.setNavStartTimes(e)}scheduleUpdate(e,t){this.updateThrottler.schedule((async()=>{this.update(e,t)}))}update(e,t){if(this.isShowing()){this.overviewCalculator.setDisplayWidth(this.overviewGrid.clientWidth());for(let i=0;i<this.overviewControls.length;++i)this.overviewControls[i].update(e,t);this.overviewGrid.updateDividers(this.overviewCalculator),this.updateMarkers(),this.updateWindow()}}setMarkers(e){this.markers=e}#je(e){for(const t of this.markers.keys()){const i=this.markers.get(t);if(!i)continue;const s=a.Helpers.Timing.milliToMicro(a.Types.Timing.Milli(t)),r=e&&!a.Helpers.Timing.timestampIsInBounds(e,s);i.style.filter=`grayscale(${r?1:0})`}}updateMarkers(){const e=new Map;for(const t of this.markers.keys()){const i=this.markers.get(t),s=Math.round(this.overviewCalculator.computePosition(a.Types.Timing.Milli(t)));e.has(s)||(e.set(s,i),i.style.left=s+"px")}this.overviewGrid.removeEventDividers(),this.overviewGrid.addEventDividers([...e.values()])}reset(){this.windowStartTime=0,this.windowEndTime=1/0,this.overviewCalculator.reset(),this.overviewGrid.reset(),this.overviewGrid.setResizeEnabled(!1),this.cursorEnabled=!1,this.hideCursor(),this.markers=new Map;for(const e of this.overviewControls)e.reset();this.overviewInfo.hide(),this.scheduleUpdate()}onClick(e){return this.overviewControls.some((t=>t.onClick(e)))}onBreadcrumbAdded(){this.dispatchEventToListeners("OverviewPaneBreadcrumbAdded",{startTime:a.Types.Timing.Milli(this.windowStartTime),endTime:a.Types.Timing.Milli(this.windowEndTime)})}onWindowChanged(e){if(this.muteOnWindowChanged)return;if(!this.overviewControls.length)return;this.windowStartTime=e.data.rawStartValue===this.overviewCalculator.minimumBoundary()?0:e.data.rawStartValue,this.windowEndTime=e.data.rawEndValue===this.overviewCalculator.maximumBoundary()?1/0:e.data.rawEndValue;const t={startTime:a.Types.Timing.Milli(this.windowStartTime),endTime:a.Types.Timing.Milli(this.windowEndTime)};this.dispatchEventToListeners("OverviewPaneWindowChanged",t)}setWindowTimes(e,t){e===this.windowStartTime&&t===this.windowEndTime||(this.windowStartTime=e,this.windowEndTime=t,this.updateWindow(),this.dispatchEventToListeners("OverviewPaneWindowChanged",{startTime:a.Types.Timing.Milli(e),endTime:a.Types.Timing.Milli(t)}))}updateWindow(){if(!this.overviewControls.length)return;const e=this.overviewCalculator.minimumBoundary(),t=this.overviewCalculator.maximumBoundary()-e,i=e>0,s=i&&this.windowStartTime?Math.min((this.windowStartTime-e)/t,1):0,r=i&&this.windowEndTime<1/0?(this.windowEndTime-e)/t:1;this.muteOnWindowChanged=!0,this.overviewGrid.setWindowRatio(s,r),this.muteOnWindowChanged=!1}#Ke(){const e=o.UIUtils.createSVGChild(this.#$e,"defs"),t=o.UIUtils.createSVGChild(e,"mask");t.id="dim-highlight-cutouts";const s=o.UIUtils.createSVGChild(t,"rect");s.setAttribute("width","100%"),s.setAttribute("height","100%"),s.setAttribute("fill","hsl(0deg 0% 95%)");const r=o.UIUtils.createSVGChild(this.#$e,"rect","background");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.setAttribute("fill",i.ThemeSupport.instance().getComputedValue("--color-background")),r.setAttribute("mask",`url(#${t.id})`),r.style.mixBlendMode="saturation";const n=o.UIUtils.createSVGChild(t,"rect","punch");n.setAttribute("y","0"),n.setAttribute("height","100%"),n.setAttribute("fill","black");const a=i.ThemeSupport.instance().getComputedValue("--sys-color-state-on-header-hover");o.UIUtils.createSVGChild(this.#$e,"polygon").setAttribute("fill",a),i.ThemeSupport.instance().addEventListener(i.ThemeChangeEvent.eventName,(()=>{const e=this.#$e.querySelector("rect.background");e?.setAttribute("fill",i.ThemeSupport.instance().getComputedValue("--color-background"));const t=this.#$e.querySelector("polygon");t?.setAttribute("fill",i.ThemeSupport.instance().getComputedValue("--sys-color-state-on-header-hover"))}))}#Ye(e,t){const i=this.#$e.querySelector("polygon");i?.setAttribute("points",`${e},0 ${e},5 ${e+5-1},1 ${t-5-1},1 ${t},5 ${t},0`),i?.classList.remove("hidden")}#Ze(){const e=this.#$e.querySelector("polygon");e?.classList.add("hidden")}highlightBounds(e,t){const i=this.overviewCalculator.computePosition(a.Helpers.Timing.microToMilli(e.min)),s=this.overviewCalculator.computePosition(a.Helpers.Timing.microToMilli(e.max));this.#je(e);const r=this.#$e.querySelector("rect.punch");r?.setAttribute("x",i.toString()),r?.setAttribute("width",(s-i).toString()),t?this.#Ye(i,s):this.#Ze(),this.#$e.classList.remove("hidden")}clearBoundsHighlight(){this.#je(),this.#$e.classList.add("hidden")}}class _e extends o.Widget.VBox{calculatorInternal;canvas;contextInternal;constructor(){super(),this.calculatorInternal=null,this.canvas=this.element.createChild("canvas","fill"),this.contextInternal=this.canvas.getContext("2d")}width(){return this.canvas.width}height(){return this.canvas.height}context(){if(!this.contextInternal)throw new Error("Unable to retrieve canvas context");return this.contextInternal}calculator(){return this.calculatorInternal}update(){throw new Error("Not implemented")}dispose(){this.detach()}reset(){}async overviewInfoPromise(e){return null}setCalculator(e){this.calculatorInternal=e}onClick(e){return!1}resetCanvas(){this.element.clientWidth&&this.setCanvasSize(this.element.clientWidth,this.element.clientHeight)}setCanvasSize(e,t){this.canvas.width=e*window.devicePixelRatio,this.canvas.height=t*window.devicePixelRatio}}class Xe{anchorElement;glassPane;visible;element;constructor(e){this.anchorElement=e,this.glassPane=new o.GlassPane.GlassPane,this.glassPane.setPointerEventsBehavior("PierceContents"),this.glassPane.setMarginBehavior("DefaultMargin"),this.glassPane.setSizeBehavior("MeasureContent"),this.visible=!1,this.element=o.UIUtils.createShadowRootWithCoreStyles(this.glassPane.contentElement,{cssFile:Ue}).createChild("div","overview-info")}async setContent(e){this.visible=!0;const t=await e;this.visible&&(this.element.removeChildren(),this.element.appendChild(t),this.glassPane.setContentAnchorBox(this.anchorElement.boxInWindow()),this.glassPane.isShowing()||this.glassPane.show(this.anchorElement.ownerDocument))}hide(){this.visible=!1,this.glassPane.hide()}}var $e=Object.freeze({__proto__:null,OverviewInfo:Xe,TimelineOverviewBase:_e,TimelineOverviewPane:Ne});export{S as BrickBreaker,q as ChartViewport,re as FilmStripView,Y as FlameChart,H as Font,ne as GCActionDelegate,ce as LineLevelProfile,pe as LiveHeapProfile,Ee as NetworkPriorities,Me as OverviewGrid,Ve as PieChart,G as TimelineGrid,Fe as TimelineOverviewCalculator,$e as TimelineOverviewPane};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../../../core/i18n/i18n.js";import*as t from"../../legacy.js";const o={openFile:"Open file",runCommand:"Run command"},n=e.i18n.registerUIStrings("ui/legacy/components/quick_open/quick_open-meta.ts",o),i=e.i18n.getLazilyComputedLocalizedString.bind(void 0,n);let a;async function s(){return a||(a=await import("./quick_open.js")),a}t.ActionRegistration.registerActionExtension({actionId:"quick-open.show-command-menu",category:"GLOBAL",title:i(o.runCommand),loadActionDelegate:async()=>new((await s()).CommandMenu.ShowActionDelegate),bindings:[{platform:"windows,linux",shortcut:"Ctrl+Shift+P",keybindSets:["devToolsDefault","vsCode"]},{platform:"mac",shortcut:"Meta+Shift+P",keybindSets:["devToolsDefault","vsCode"]},{shortcut:"F1",keybindSets:["vsCode"]}]}),t.ActionRegistration.registerActionExtension({actionId:"quick-open.show",category:"GLOBAL",title:i(o.openFile),loadActionDelegate:async()=>new((await s()).QuickOpen.ShowActionDelegate),order:100,bindings:[{platform:"mac",shortcut:"Meta+P",keybindSets:["devToolsDefault","vsCode"]},{platform:"mac",shortcut:"Meta+O",keybindSets:["devToolsDefault","vsCode"]},{platform:"windows,linux",shortcut:"Ctrl+P",keybindSets:["devToolsDefault","vsCode"]},{platform:"windows,linux",shortcut:"Ctrl+O",keybindSets:["devToolsDefault","vsCode"]}]}),t.ContextMenu.registerItem({location:"mainMenu/default",actionId:"quick-open.show-command-menu",order:void 0}),t.ContextMenu.registerItem({location:"mainMenu/default",actionId:"quick-open.show",order:void 0});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../../../core/common/common.js";import*as t from"../../../../core/host/host.js";import*as i from"../../../../core/i18n/i18n.js";import*as s from"../../../../core/platform/platform.js";import*as r from"../../../../third_party/diff/diff.js";import*as o from"../../../components/icon_button/icon_button.js";import*as n from"../../legacy.js";import*as l from"../../../../models/text_utils/text_utils.js";import*as a from"../../../components/text_prompt/text_prompt.js";import*as d from"../../../visual_logging/visual_logging.js";var c={cssText:`.filtered-list-widget{display:flex;flex-direction:column;flex:auto;border:1px solid transparent}.hbox{flex:0 0 var(--sys-size-14);padding:0 var(--sys-size-8);gap:var(--sys-size-3);align-items:center}.filtered-list-widget-hint{color:var(--sys-color-on-surface-subtle);font-size:var(--sys-typescale-body4-size);line-height:18px}devtools-text-prompt{flex-grow:1;font-size:var(--sys-typescale-body3-size);gap:var(--sys-size-3);font-family:".SFNSDisplay-Regular","Helvetica Neue","Lucida Grande",sans-serif;line-height:var(--sys-typescale-body3-line-height)}.filtered-list-widget-progress{flex:none;background:var(--sys-color-divider);height:var(--sys-size-1)}.filtered-list-widget-progress-bar{background-color:var(--sys-color-primary-bright);height:var(--sys-size-2);width:100%;transform:scaleX(0);transform-origin:top left;opacity:100%;transition:none}.filtered-widget-progress-fade{opacity:0%;transition:opacity 500ms}.filtered-list-widget .vbox > div.container{flex:auto;overflow:hidden auto}.filtered-list-widget-item-wrapper{color:var(--sys-color-on-surface);display:flex;font-family:".SFNSDisplay-Regular","Helvetica Neue","Lucida Grande",sans-serif;padding:0 var(--sys-size-7);gap:var(--sys-size-7);height:var(--sys-size-14)}.filtered-list-widget-item-wrapper devtools-icon{align-self:center;flex:none;width:18px;height:18px;&.snippet{color:var(--sys-color-orange-bright)}}.filtered-list-widget-item-wrapper.selected{background-color:var(--sys-color-state-hover-on-subtle)}.filtered-list-widget-item{white-space:break-spaces;overflow:hidden;text-overflow:ellipsis;align-self:center;font-size:var(--sys-typescale-body4-size);flex:auto}.filtered-list-widget-item.is-ignore-listed *{color:var(--sys-color-state-disabled)}.filtered-list-widget-item span.highlight{font-weight:var(--ref-typeface-weight-bold)}.filtered-list-widget-item .filtered-list-widget-title{white-space:nowrap;flex:initial;overflow:hidden;text-overflow:ellipsis}.filtered-list-widget-item .filtered-list-widget-subtitle{flex:none;overflow:hidden;text-overflow:ellipsis;color:var(--sys-color-on-surface-subtle);display:flex;white-space:pre}.filtered-list-widget-item .filtered-list-widget-subtitle .first-part{flex-shrink:1000;overflow:hidden;text-overflow:ellipsis}.filtered-list-widget-item-wrapper .tag{font-size:var(--sys-typescale-body5-size);line-height:var(--sys-typescale-headline5-line-height);align-self:center;flex-shrink:0}.filtered-list-widget-item-wrapper .deprecated-tag{font-size:11px;color:var(--sys-color-token-subtle)}.filtered-list-widget-item.one-row{line-height:var(--sys-typescale-body3-line-height);align-content:center;display:flex}.filtered-list-widget-item.one-row .filtered-list-widget-title{display:inline}.filtered-list-widget-item.two-rows{display:grid;align-content:center;gap:var(--sys-size-2)}.filtered-list-widget-item-wrapper:not(.search-mode) .filtered-list-widget-item.two-rows .filtered-list-widget-title{font-weight:var(--ref-typeface-weight-bold)}.not-found-text{height:34px;line-height:34px;padding-left:8px;font-style:italic;color:var(--sys-color-state-disabled);background:var(--sys-color-state-disabled-container)}.quickpick-description{flex:none;overflow:hidden;text-overflow:ellipsis;color:var(--sys-color-state-disabled);padding-left:15px}@media (forced-colors: active){.filtered-list-widget{forced-color-adjust:none;border-color:ButtonText}.filtered-list-widget-item-wrapper .filtered-list-widget-title,\n .filtered-list-widget-item-wrapper .filtered-list-widget-subtitle,\n .quickpick-description{color:ButtonText}.filtered-list-widget-item-wrapper.selected{background-color:Highlight}.filtered-list-widget-item-wrapper.selected .filtered-list-widget-item .filtered-list-widget-title,\n .filtered-list-widget-item-wrapper.selected .filtered-list-widget-item .filtered-list-widget-subtitle{color:HighlightText}devtools-text-prompt{border-color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./filteredListWidget.css")} */\n`};const h={quickOpenPrompt:"Quick open prompt",quickOpen:"Quick open",noResultsFound:"No results found",sItemSOfS:"{PH1}, item {PH2} of {PH3}"},m=i.i18n.registerUIStrings("ui/legacy/components/quick_open/FilteredListWidget.ts",h),g=i.i18n.getLocalizedString.bind(void 0,m);class p extends(e.ObjectWrapper.eventMixin(n.Widget.VBox)){promptHistory;scoringTimer;filterTimer;loadTimeout;refreshListWithCurrentResult;dialog;query="";inputBoxElement;hintElement;bottomElementsContainer;progressElement;progressBarElement;items;list;itemElementsContainer;notFoundElement;prefix="";provider;queryChangedCallback;constructor(e,t,i){super(!0),this.registerRequiredCSS(c),this.promptHistory=t||[],this.scoringTimer=0,this.filterTimer=0,this.loadTimeout=0,this.contentElement.classList.add("filtered-list-widget");const s=this.onKeyDown.bind(this);this.contentElement.addEventListener("keydown",s),n.ARIAUtils.markAsCombobox(this.contentElement);const r=this.contentElement.createChild("div","hbox");this.inputBoxElement=new a.TextPrompt.TextPrompt,this.inputBoxElement.data={ariaLabel:g(h.quickOpenPrompt),prefix:"",suggestion:""},this.inputBoxElement.addEventListener(a.TextPrompt.PromptInputEvent.eventName,this.onInput.bind(this),!1),this.inputBoxElement.setAttribute("jslog",`${d.textField().track({change:!0,keydown:"ArrowUp|ArrowDown|PageUp|PageDown|Enter|Tab|>|@|:|?|!"})}`),r.appendChild(this.inputBoxElement),this.hintElement=r.createChild("span","filtered-list-widget-hint"),this.bottomElementsContainer=this.contentElement.createChild("div","vbox"),this.progressElement=this.bottomElementsContainer.createChild("div","filtered-list-widget-progress"),this.progressBarElement=this.progressElement.createChild("div","filtered-list-widget-progress-bar"),this.items=new n.ListModel.ListModel,this.list=new n.ListControl.ListControl(this.items,this,n.ListControl.ListMode.EqualHeightItems),this.itemElementsContainer=this.list.element,this.itemElementsContainer.classList.add("container"),this.bottomElementsContainer.appendChild(this.itemElementsContainer),this.itemElementsContainer.addEventListener("click",this.onClick.bind(this),!1),this.itemElementsContainer.addEventListener("mousemove",this.onMouseMove.bind(this),!1),n.ARIAUtils.markAsListBox(this.itemElementsContainer),n.ARIAUtils.setControls(this.inputBoxElement,this.itemElementsContainer),n.ARIAUtils.setAutocomplete(this.inputBoxElement,"list"),this.notFoundElement=this.bottomElementsContainer.createChild("div","not-found-text"),this.notFoundElement.classList.add("hidden"),this.setDefaultFocusedElement(this.inputBoxElement),this.provider=e,this.queryChangedCallback=i}static highlightRanges(e,t,i){if(!t)return!1;function s(e,t){const i=r.Diff.DiffWrapper.charDiff(t,e);let s=0;const o=[];for(let e=0;e<i.length;++e){const t=i[e];if(t[0]===r.Diff.Operation.Equal)o.push(new l.TextRange.SourceRange(s,t[1].length));else if(t[0]!==r.Diff.Operation.Insert)return null;s+=t[1].length}return o}if(null===e.textContent)return!1;const o=e.textContent;let a=s(o,t);return a&&!i||(a=s(o.toUpperCase(),t.toUpperCase())),!!a&&(n.UIUtils.highlightRangesWithStyleClass(e,a,"highlight"),!0)}setCommandPrefix(e){this.inputBoxElement.setPrefix(e)}setCommandSuggestion(e){this.inputBoxElement.setSuggestion(e)}setHintElement(e){this.hintElement.textContent=e}showAsDialog(e){e||(e=g(h.quickOpen)),this.dialog=new n.Dialog.Dialog("quick-open"),n.ARIAUtils.setLabel(this.dialog.contentElement,e),this.dialog.setMaxContentSize(new n.Geometry.Size(576,320)),this.dialog.setSizeBehavior("SetExactWidthMaxHeight"),this.dialog.setContentPosition(null,22),this.dialog.contentElement.style.setProperty("border-radius","var(--sys-shape-corner-medium)"),this.dialog.contentElement.style.setProperty("box-shadow","var(--sys-elevation-level3)"),this.show(this.dialog.contentElement),n.ARIAUtils.setExpanded(this.contentElement,!0),this.dialog.once("hidden").then((()=>{this.dispatchEventToListeners("hidden")})),this.dialog.show()}setPrefix(e){this.prefix=e}setProvider(e){e!==this.provider&&(this.provider&&this.provider.detach(),this.clearTimers(),this.provider=e,this.isShowing()&&this.attachProvider())}setQuerySelectedRange(e,t){this.inputBoxElement.setSelectedRange(e,t)}attachProvider(){this.items.replaceAll([]),this.list.invalidateItemHeight(),this.provider&&(this.provider.setRefreshCallback(this.itemsLoaded.bind(this,this.provider)),this.provider.attach()),this.itemsLoaded(this.provider)}cleanValue(){return this.query.substring(this.prefix.length).trim()}wasShown(){super.wasShown(),this.attachProvider()}willHide(){this.provider&&this.provider.detach(),this.clearTimers(),n.ARIAUtils.setExpanded(this.contentElement,!1)}clearTimers(){clearTimeout(this.filterTimer),clearTimeout(this.scoringTimer),clearTimeout(this.loadTimeout),this.filterTimer=0,this.scoringTimer=0,this.loadTimeout=0,this.refreshListWithCurrentResult=void 0}onEnter(e){if(!this.provider)return;e.preventDefault();const t=this.list.selectedIndex();if(t<0)return;const i=this.list.elementAtIndex(t);i&&d.logClick(i,e);const s=this.provider.itemCount()?this.list.selectedItem():null;this.selectItem(s),this.dialog&&this.dialog.hide()}itemsLoaded(e){this.loadTimeout||e!==this.provider||(this.loadTimeout=window.setTimeout(this.updateAfterItemsLoaded.bind(this),0))}updateAfterItemsLoaded(){this.loadTimeout=0,this.filterItems()}createElementForItem(e){const t=document.createElement("div");t.className="filtered-list-widget-item-wrapper";const i=t.createChild("div"),s=this.provider?.renderAsTwoRows();i.className="filtered-list-widget-item "+(s?"two-rows":"one-row");const r=i.createChild("div","filtered-list-widget-title"),o=i.createChild("div","filtered-list-widget-subtitle");return o.textContent="",this.provider&&(this.provider.renderItem(e,this.cleanValue(),r,o),t.setAttribute("jslog",`${d.item(this.provider.jslogContextAt(e)).track({click:!0})}`)),n.ARIAUtils.markAsOption(i),t}heightForItem(e){return 0}isItemSelectable(e){return!0}selectedItemChanged(e,t,i,s){i&&i.classList.remove("selected"),s&&s.classList.add("selected"),n.ARIAUtils.setActiveDescendant(this.inputBoxElement,s)}onClick(e){const t=this.list.itemForNode(e.target);null!==t&&(e.consume(!0),this.selectItem(t),this.dialog&&this.dialog.hide())}onMouseMove(e){const t=this.list.itemForNode(e.target);if(null===t)return;this.list.selectItem(t);const i=this.list.elementAtIndex(this.list.selectedIndex())?.textContent;i&&n.ARIAUtils.alert(g(h.sItemSOfS,{PH1:i,PH2:this.list.selectedIndex()+1,PH3:this.items.length}))}setQuery(e){this.query=e,this.inputBoxElement.focus(),this.inputBoxElement.setText(e),this.queryChanged(),this.scheduleFilter()}tabKeyPressed(){const e=this.query;let t;for(let i=this.promptHistory.length-1;i>=0;i--)if(this.promptHistory[i]!==e&&this.promptHistory[i].startsWith(e)){t=this.promptHistory[i];break}if(t){const i=this.inputBoxElement.getComponentSelection();return i&&""!==i.toString().trim()?(this.setQuery(t),!0):(this.inputBoxElement.focus(),this.inputBoxElement.setText(t),this.setQuerySelectedRange(e.length,t.length),!0)}return this.list.selectNextItem(!0,!1)}itemsFilteredForTest(){}filterItems(){if(this.filterTimer=0,this.scoringTimer&&(clearTimeout(this.scoringTimer),this.scoringTimer=0,this.refreshListWithCurrentResult&&this.refreshListWithCurrentResult()),!this.provider)return this.bottomElementsContainer.classList.toggle("hidden",!0),void this.itemsFilteredForTest();this.bottomElementsContainer.classList.toggle("hidden",!1),this.progressBarElement.style.transform="scaleX(0)",this.progressBarElement.classList.remove("filtered-widget-progress-fade","hidden");const e=this.provider.rewriteQuery(this.cleanValue()),t=e?s.StringUtilities.filterRegex(e):null,i=[],r=[],o=[],n=100;let l=0;const a=[],d=window.performance.now(),c=s.NumberUtilities.clamp(10,500,this.provider.itemCount()/10|0);function h(e,t){return t-e}(function m(g){if(!this.provider)return;this.scoringTimer=0;let p,u=0;for(p=g;p<this.provider.itemCount()&&u<c;++p){if(t&&!t.test(this.provider.itemKeyAt(p)))continue;const d=this.provider.itemScoreAt(p,e);if(e&&u++,d>l||r.length<n){const e=s.ArrayUtilities.upperBound(r,d,h);if(r.splice(e,0,d),o.splice(e,0,p),r.length>n){const e=o[o.length-1];e&&a.push(e),r.length=n,o.length=n}const t=r[r.length-1];t&&(l=t)}else i.push(p)}if(this.refreshListWithCurrentResult=this.refreshList.bind(this,o,a,i),p<this.provider.itemCount())return this.scoringTimer=window.setTimeout(m.bind(this,p),0),void(window.performance.now()-d>50&&(this.progressBarElement.style.transform="scaleX("+p/this.provider.itemCount()+")"));window.performance.now()-d>100?(this.progressBarElement.style.transform="scaleX(1)",this.progressBarElement.classList.add("filtered-widget-progress-fade")):this.progressBarElement.classList.add("hidden");this.refreshListWithCurrentResult()}).call(this,0)}refreshList(e,t,i){this.refreshListWithCurrentResult=void 0,i=[...e,...t,...i],this.updateNotFoundMessage(Boolean(i.length));const s=this.list.element.offsetHeight;this.items.replaceAll(i),i.length&&this.list.selectItem(i[0]),this.list.element.offsetHeight!==s&&this.list.viewportResized(),this.itemsFilteredForTest()}updateNotFoundMessage(e){this.list.element.classList.toggle("hidden",!e),this.notFoundElement.classList.toggle("hidden",e),!e&&this.provider&&(this.notFoundElement.textContent=this.provider.notFoundText(this.cleanValue()),n.ARIAUtils.alert(this.notFoundElement.textContent))}onInput(e){this.query=e.data,this.queryChanged(),this.scheduleFilter()}async queryChanged(){this.hintElement.classList.toggle("hidden",Boolean(this.query)),this.queryChangedCallback&&await this.queryChangedCallback(this.query),this.provider&&this.provider.queryChanged(this.cleanValue())}updateSelectedItemARIA(e,t){return!1}onKeyDown(e){let t=!1;switch(e.key){case s.KeyboardUtilities.ENTER_KEY:return void(e.isComposing||this.onEnter(e));case s.KeyboardUtilities.TAB_KEY:if(e.shiftKey){t=this.list.selectPreviousItem(!0,!1);break}t=this.tabKeyPressed();break;case"ArrowUp":t=this.list.selectPreviousItem(!0,!1);break;case"ArrowDown":t=this.list.selectNextItem(!0,!1);break;case"PageUp":t=this.list.selectItemPreviousPage(!1);break;case"PageDown":t=this.list.selectItemNextPage(!1)}if(t){e.consume(!0);const t=this.list.elementAtIndex(this.list.selectedIndex())?.textContent;t&&n.ARIAUtils.alert(g(h.sItemSOfS,{PH1:t,PH2:this.list.selectedIndex()+1,PH3:this.items.length}))}}scheduleFilter(){this.filterTimer||(this.filterTimer=window.setTimeout(this.filterItems.bind(this),0))}selectItem(e){this.promptHistory.push(this.query),this.promptHistory.length>100&&this.promptHistory.shift(),this.provider&&this.provider.selectItem(e,this.cleanValue())}}class u{refreshCallback;jslogContext;constructor(e){this.jslogContext=e}setRefreshCallback(e){this.refreshCallback=e}attach(){}itemCount(){return 0}itemKeyAt(e){return""}itemScoreAt(e,t){return 1}renderItem(e,t,i,s){}jslogContextAt(e){return this.jslogContext}renderAsTwoRows(){return!1}selectItem(e,t){}refresh(){this.refreshCallback&&this.refreshCallback()}rewriteQuery(e){return e}queryChanged(e){}notFoundText(e){return g(h.noResultsFound)}detach(){}}const f=[];function v(e){f.push(e)}function w(){return f}var x=Object.freeze({__proto__:null,FilteredListWidget:p,Provider:u,getRegisteredProviders:w,registerProvider:v});const y={typeToSeeAvailableCommands:"Type ? to see available commands"},C=i.i18n.registerUIStrings("ui/legacy/components/quick_open/QuickOpen.ts",y),b=i.i18n.getLocalizedString.bind(void 0,C),E=[];class A{prefix=null;prefixes=[];providers=new Map;filteredListWidget=null;constructor(){w().forEach(this.addProvider.bind(this)),this.prefixes.sort(((e,t)=>t.length-e.length))}static show(e){const t=new this,i=new p(null,E,t.queryChanged.bind(t));t.filteredListWidget=i,i.setHintElement(b(y.typeToSeeAvailableCommands)),i.showAsDialog(),i.setQuery(e)}addProvider(e){const t=e.prefix;null!==t&&(this.prefixes.push(t),this.providers.set(t,{provider:e.provider,titlePrefix:e.titlePrefix,titleSuggestion:e.titleSuggestion}))}async queryChanged(e){const t=this.prefixes.find((t=>e.startsWith(t)));if("string"!=typeof t)return;if(!this.filteredListWidget)return;this.filteredListWidget.setPrefix(t);const i=this.providers.get(t)?.titlePrefix;this.filteredListWidget.setCommandPrefix(i?i():"");const s=e===t&&this.providers.get(t)?.titleSuggestion;if(this.filteredListWidget.setCommandSuggestion(s?s():""),this.prefix===t)return;this.prefix=t,this.filteredListWidget.setProvider(null);const r=this.providers.get(t)?.provider;if(!r)return;const o=await r();this.prefix===t&&this.filteredListWidget&&(this.filteredListWidget.setProvider(o),this.providerLoadedForTest(o))}providerLoadedForTest(e){}}var I=Object.freeze({__proto__:null,QuickOpenImpl:A,ShowActionDelegate:class{handleAction(e,t){return"quick-open.show"===t&&(A.show(""),!0)}},history:E});const R={oneOrMoreSettingsHaveChanged:"One or more settings have changed which requires a reload to take effect",noCommandsFound:"No commands found",run:"Run",command:"Command",runCommand:"Run command",deprecated:"— deprecated"},S=i.i18n.registerUIStrings("ui/legacy/components/quick_open/CommandMenu.ts",R),T=i.i18n.getLocalizedString.bind(void 0,S);let L;class P{commandsInternal;constructor(){this.commandsInternal=[],this.loadCommands()}static instance(e={forceNew:null}){const{forceNew:t}=e;return L&&!t||(L=new P),L}static createCommand(e){const{category:i,keys:s,title:r,shortcut:o,jslogContext:n,executeHandler:l,availableHandler:a,userActionCode:d,deprecationWarning:c,isPanelOrDrawer:h}=e;let m=l;if(d){const e=d;m=()=>{t.userMetrics.actionTaken(e),l()}}return new F(i,r,s,o,n,m,a,c,h)}static createSettingCommand(i,r,o){const l=i.category();if(!l)throw new Error(`Creating '${r}' setting command failed. Setting has no category.`);const a=i.tags()||"",d=Boolean(i.reloadRequired());return P.createCommand({category:e.Settings.getLocalizedSettingsCategory(l),keys:a,title:r,shortcut:"",jslogContext:s.StringUtilities.toKebabCase(`${i.name}-${o}`),executeHandler:()=>{!i.deprecation?.disabled||i.deprecation?.experiment&&!i.deprecation.experiment.isEnabled()?(i.set(o),"emulate-page-focus"===i.name&&t.userMetrics.actionTaken(t.UserMetrics.Action.ToggleEmulateFocusedPageFromCommandMenu),d&&n.InspectorView.InspectorView.instance().displayReloadRequiredWarning(T(R.oneOrMoreSettingsHaveChanged))):e.Revealer.reveal(i)},availableHandler:function(){return i.get()!==o},deprecationWarning:i.deprecation?.warning})}static createActionCommand(e){const{action:t,userActionCode:i}=e,s=t.category();if(!s)throw new Error(`Creating '${t.title()}' action command failed. Action has no category.`);let r;"DRAWER"===s&&(r="DRAWER");const o=n.ShortcutRegistry.ShortcutRegistry.instance().shortcutTitleForAction(t.id())||"";return P.createCommand({category:n.ActionRegistration.getLocalizedActionCategory(s),keys:t.tags()||"",title:t.title(),shortcut:o,jslogContext:t.id(),executeHandler:t.execute.bind(t),userActionCode:i,availableHandler:void 0,isPanelOrDrawer:r})}static createRevealViewCommand(e){const{title:i,tags:s,category:r,userActionCode:o,id:l}=e;if(!r)throw new Error(`Creating '${i}' reveal view command failed. Reveal view has no category.`);let a;"PANEL"===r?a="PANEL":"DRAWER"===r&&(a="DRAWER");return P.createCommand({category:n.ViewManager.getLocalizedViewLocationCategory(r),keys:s,title:i,shortcut:"",jslogContext:l,executeHandler:()=>("issues-pane"===l&&t.userMetrics.issuesPanelOpenedFrom(5),n.ViewManager.ViewManager.instance().showView(l,!0)),userActionCode:o,availableHandler:void 0,isPanelOrDrawer:a})}loadCommands(){const t=new Map;for(const{category:e,name:i}of n.ViewManager.getRegisteredLocationResolvers())e&&i&&t.set(i,e);const i=n.ViewManager.getRegisteredViewExtensions();for(const e of i){const i=e.location(),s=i&&t.get(i);if(!s)continue;const r={title:e.commandPrompt(),tags:e.tags()||"",category:s,id:e.viewId()};this.commandsInternal.push(P.createRevealViewCommand(r))}const s=e.Settings.Settings.instance().getRegisteredSettings();for(const t of s){const i=t.options;if(i&&t.category)for(const s of i){const i=e.Settings.Settings.instance().moduleSetting(t.settingName);this.commandsInternal.push(P.createSettingCommand(i,s.title(),s.value))}}}commands(){return this.commandsInternal}}class k extends u{commands;constructor(e=[]){super("command"),this.commands=e}attach(){const e=P.instance().commands(),t=n.ActionRegistry.ActionRegistry.instance().availableActions();for(const e of t){e.category()&&this.commands.push(P.createActionCommand({action:e}))}for(const t of e)t.available()&&(this.commands.find((({title:e,category:i})=>e===t.title&&i===t.category))||this.commands.push(t));this.commands=this.commands.sort((function(e,t){const i=s.StringUtilities.compare(e.category,t.category);return i||s.StringUtilities.compare(e.title,t.title)}))}detach(){this.commands=[]}itemCount(){return this.commands.length}itemKeyAt(e){return this.commands[e].key}itemScoreAt(e,t){const i=this.commands[e];let s=r.Diff.DiffWrapper.characterScore(t.toLowerCase(),i.title.toLowerCase());return"PANEL"===i.isPanelOrDrawer?s+=2:"DRAWER"===i.isPanelOrDrawer&&(s+=1),s}renderItem(e,t,i,s){const r=this.commands[e];i.removeChildren();const l=o.Icon.create(H[r.category]);i.parentElement?.parentElement?.insertBefore(l,i.parentElement),n.UIUtils.createTextChild(i,r.title),p.highlightRanges(i,t,!0),s.textContent=r.shortcut;const a=r.deprecationWarning;if(a){const e=i.parentElement?.createChild("span","deprecated-tag");e&&(e.textContent=T(R.deprecated),e.title=a)}const d=i.parentElement?.parentElement?.createChild("span","tag");d&&(d.textContent=r.category)}jslogContextAt(e){return this.commands[e].jslogContext}selectItem(e,i){null!==e&&(this.commands[e].execute(),t.userMetrics.actionTaken(t.UserMetrics.Action.SelectCommandFromCommandMenu))}notFoundText(){return T(R.noCommandsFound)}}const H={Appearance:"palette",Console:"terminal",Debugger:"bug",Drawer:"keyboard-full",Elements:"code",Global:"global",Grid:"grid-on",Help:"help",Mobile:"devices",Navigation:"refresh",Network:"arrow-up-down",Panel:"frame",Performance:"performance",Persistence:"override",Recorder:"record-start",Rendering:"tonality",Resources:"bin",Screenshot:"photo-camera",Settings:"gear",Sources:"label"};class F{category;title;key;shortcut;jslogContext;deprecationWarning;isPanelOrDrawer;#e;#t;constructor(e,t,i,s,r,o,n,l,a){this.category=e,this.title=t,this.key=e+"\0"+t+"\0"+i,this.shortcut=s,this.jslogContext=r,this.#e=o,this.#t=n,this.deprecationWarning=l,this.isPanelOrDrawer=a}available(){return!this.#t||this.#t()}execute(){return this.#e()}}v({prefix:">",iconName:"chevron-right",provider:()=>Promise.resolve(new k),helpTitle:()=>T(R.runCommand),titlePrefix:()=>T(R.run),titleSuggestion:()=>T(R.command)});var B=Object.freeze({__proto__:null,Command:F,CommandMenu:P,CommandMenuProvider:k,ShowActionDelegate:class{handleAction(e,i){return t.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),A.show(">"),!0}}});class W extends u{providers;constructor(e){super(e),this.providers=[],w().forEach(this.addProvider.bind(this))}async addProvider(e){this.providers.push({prefix:e.prefix||"",iconName:e.iconName,title:e.helpTitle(),jslogContext:(await e.provider()).jslogContext})}itemCount(){return this.providers.length}itemKeyAt(e){return this.providers[e].prefix}itemScoreAt(e,t){return-this.providers[e].prefix.length}renderItem(e,t,i,s){const r=this.providers[e],l=new o.Icon.Icon;l.data={iconName:r.iconName,color:"var(--icon-default)",width:"18px"},i.parentElement?.parentElement?.insertBefore(l,i.parentElement),n.UIUtils.createTextChild(i,r.title)}jslogContextAt(e){return this.providers[e].jslogContext}selectItem(e,t){null!==e&&A.show(this.providers[e].prefix)}renderAsTwoRows(){return!1}}v({prefix:"?",iconName:"help",provider:()=>Promise.resolve(new W("help")),helpTitle:()=>"Help",titlePrefix:()=>"Help",titleSuggestion:void 0});var D=Object.freeze({__proto__:null,HelpQuickOpen:W});export{B as CommandMenu,x as FilteredListWidget,D as HelpQuickOpen,I as QuickOpen};
|