simdeck 0.1.4 → 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.
Files changed (807) hide show
  1. package/README.md +34 -14
  2. package/build/simdeck-bin +0 -0
  3. package/client/dist/assets/index-D2-CFde1.css +1 -0
  4. package/client/dist/assets/index-E1gIgaOR.js +9 -0
  5. package/client/dist/chrome-devtools-ui/Images/3d-center.svg +1 -0
  6. package/client/dist/chrome-devtools-ui/Images/3d-pan.svg +1 -0
  7. package/client/dist/chrome-devtools-ui/Images/3d-rotate.svg +1 -0
  8. package/client/dist/chrome-devtools-ui/Images/Images.js +296 -0
  9. package/client/dist/chrome-devtools-ui/Images/accelerometer-back.svg +1 -0
  10. package/client/dist/chrome-devtools-ui/Images/accelerometer-bottom.png +0 -0
  11. package/client/dist/chrome-devtools-ui/Images/accelerometer-front.svg +1 -0
  12. package/client/dist/chrome-devtools-ui/Images/accelerometer-left.png +0 -0
  13. package/client/dist/chrome-devtools-ui/Images/accelerometer-right.png +0 -0
  14. package/client/dist/chrome-devtools-ui/Images/accelerometer-top.png +0 -0
  15. package/client/dist/chrome-devtools-ui/Images/account-tree.svg +1 -0
  16. package/client/dist/chrome-devtools-ui/Images/align-content-center.svg +1 -0
  17. package/client/dist/chrome-devtools-ui/Images/align-content-end.svg +1 -0
  18. package/client/dist/chrome-devtools-ui/Images/align-content-space-around.svg +1 -0
  19. package/client/dist/chrome-devtools-ui/Images/align-content-space-between.svg +1 -0
  20. package/client/dist/chrome-devtools-ui/Images/align-content-space-evenly.svg +1 -0
  21. package/client/dist/chrome-devtools-ui/Images/align-content-start.svg +1 -0
  22. package/client/dist/chrome-devtools-ui/Images/align-content-stretch.svg +1 -0
  23. package/client/dist/chrome-devtools-ui/Images/align-items-baseline.svg +1 -0
  24. package/client/dist/chrome-devtools-ui/Images/align-items-center.svg +1 -0
  25. package/client/dist/chrome-devtools-ui/Images/align-items-end.svg +1 -0
  26. package/client/dist/chrome-devtools-ui/Images/align-items-start.svg +1 -0
  27. package/client/dist/chrome-devtools-ui/Images/align-items-stretch.svg +1 -0
  28. package/client/dist/chrome-devtools-ui/Images/align-self-center.svg +1 -0
  29. package/client/dist/chrome-devtools-ui/Images/align-self-end.svg +1 -0
  30. package/client/dist/chrome-devtools-ui/Images/align-self-start.svg +1 -0
  31. package/client/dist/chrome-devtools-ui/Images/align-self-stretch.svg +1 -0
  32. package/client/dist/chrome-devtools-ui/Images/animation.svg +1 -0
  33. package/client/dist/chrome-devtools-ui/Images/arrow-back.svg +1 -0
  34. package/client/dist/chrome-devtools-ui/Images/arrow-collapse.svg +1 -0
  35. package/client/dist/chrome-devtools-ui/Images/arrow-down.svg +1 -0
  36. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-dark.svg +1 -0
  37. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-light.svg +1 -0
  38. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down.svg +1 -0
  39. package/client/dist/chrome-devtools-ui/Images/arrow-forward.svg +1 -0
  40. package/client/dist/chrome-devtools-ui/Images/arrow-right-circle.svg +1 -0
  41. package/client/dist/chrome-devtools-ui/Images/arrow-up-down-circle.svg +1 -0
  42. package/client/dist/chrome-devtools-ui/Images/arrow-up-down.svg +1 -0
  43. package/client/dist/chrome-devtools-ui/Images/arrow-up.svg +1 -0
  44. package/client/dist/chrome-devtools-ui/Images/bell.svg +1 -0
  45. package/client/dist/chrome-devtools-ui/Images/bezier-curve-filled.svg +1 -0
  46. package/client/dist/chrome-devtools-ui/Images/bin.svg +1 -0
  47. package/client/dist/chrome-devtools-ui/Images/bottom-panel-close.svg +1 -0
  48. package/client/dist/chrome-devtools-ui/Images/bottom-panel-open.svg +1 -0
  49. package/client/dist/chrome-devtools-ui/Images/brackets.svg +1 -0
  50. package/client/dist/chrome-devtools-ui/Images/breakpoint-circle.svg +1 -0
  51. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed-filled.svg +1 -0
  52. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed.svg +1 -0
  53. package/client/dist/chrome-devtools-ui/Images/brush-2.svg +1 -0
  54. package/client/dist/chrome-devtools-ui/Images/brush-filled.svg +1 -0
  55. package/client/dist/chrome-devtools-ui/Images/brush.svg +1 -0
  56. package/client/dist/chrome-devtools-ui/Images/bug.svg +1 -0
  57. package/client/dist/chrome-devtools-ui/Images/bundle.svg +1 -0
  58. package/client/dist/chrome-devtools-ui/Images/button-magic.svg +1 -0
  59. package/client/dist/chrome-devtools-ui/Images/calendar-today.svg +1 -0
  60. package/client/dist/chrome-devtools-ui/Images/center-focus-weak.svg +1 -0
  61. package/client/dist/chrome-devtools-ui/Images/check-circle.svg +1 -0
  62. package/client/dist/chrome-devtools-ui/Images/check-double.svg +1 -0
  63. package/client/dist/chrome-devtools-ui/Images/checker.svg +1 -0
  64. package/client/dist/chrome-devtools-ui/Images/checkmark.svg +1 -0
  65. package/client/dist/chrome-devtools-ui/Images/chevron-double-right.svg +1 -0
  66. package/client/dist/chrome-devtools-ui/Images/chevron-down.svg +1 -0
  67. package/client/dist/chrome-devtools-ui/Images/chevron-left-dot.svg +1 -0
  68. package/client/dist/chrome-devtools-ui/Images/chevron-left.svg +1 -0
  69. package/client/dist/chrome-devtools-ui/Images/chevron-right.svg +1 -0
  70. package/client/dist/chrome-devtools-ui/Images/chevron-up.svg +1 -0
  71. package/client/dist/chrome-devtools-ui/Images/chromeLeft.avif +0 -0
  72. package/client/dist/chrome-devtools-ui/Images/chromeMiddle.avif +0 -0
  73. package/client/dist/chrome-devtools-ui/Images/chromeRight.avif +0 -0
  74. package/client/dist/chrome-devtools-ui/Images/class.svg +1 -0
  75. package/client/dist/chrome-devtools-ui/Images/clear-list.svg +1 -0
  76. package/client/dist/chrome-devtools-ui/Images/clear.svg +1 -0
  77. package/client/dist/chrome-devtools-ui/Images/cloud.svg +1 -0
  78. package/client/dist/chrome-devtools-ui/Images/code-circle.svg +1 -0
  79. package/client/dist/chrome-devtools-ui/Images/code.svg +1 -0
  80. package/client/dist/chrome-devtools-ui/Images/colon.svg +1 -0
  81. package/client/dist/chrome-devtools-ui/Images/color-picker-filled.svg +1 -0
  82. package/client/dist/chrome-devtools-ui/Images/color-picker.svg +1 -0
  83. package/client/dist/chrome-devtools-ui/Images/compress.svg +1 -0
  84. package/client/dist/chrome-devtools-ui/Images/console-conditional-breakpoint.svg +1 -0
  85. package/client/dist/chrome-devtools-ui/Images/console-logpoint.svg +1 -0
  86. package/client/dist/chrome-devtools-ui/Images/cookie.svg +1 -0
  87. package/client/dist/chrome-devtools-ui/Images/cookie_off.svg +1 -0
  88. package/client/dist/chrome-devtools-ui/Images/copy.svg +1 -0
  89. package/client/dist/chrome-devtools-ui/Images/corporate-fare.svg +1 -0
  90. package/client/dist/chrome-devtools-ui/Images/credit-card.svg +1 -0
  91. package/client/dist/chrome-devtools-ui/Images/cross-circle-filled.svg +1 -0
  92. package/client/dist/chrome-devtools-ui/Images/cross-circle.svg +1 -0
  93. package/client/dist/chrome-devtools-ui/Images/cross.svg +1 -0
  94. package/client/dist/chrome-devtools-ui/Images/cssoverview_icons_2x.avif +0 -0
  95. package/client/dist/chrome-devtools-ui/Images/custom-typography.svg +1 -0
  96. package/client/dist/chrome-devtools-ui/Images/database.svg +1 -0
  97. package/client/dist/chrome-devtools-ui/Images/deployed.svg +1 -0
  98. package/client/dist/chrome-devtools-ui/Images/device-fold.svg +1 -0
  99. package/client/dist/chrome-devtools-ui/Images/devices.svg +1 -0
  100. package/client/dist/chrome-devtools-ui/Images/devtools-thumbnail.svg +1 -0
  101. package/client/dist/chrome-devtools-ui/Images/devtools-tips.svg +1 -0
  102. package/client/dist/chrome-devtools-ui/Images/devtools.svg +1 -0
  103. package/client/dist/chrome-devtools-ui/Images/difference.svg +1 -0
  104. package/client/dist/chrome-devtools-ui/Images/dock-bottom.svg +1 -0
  105. package/client/dist/chrome-devtools-ui/Images/dock-left.svg +1 -0
  106. package/client/dist/chrome-devtools-ui/Images/dock-right.svg +1 -0
  107. package/client/dist/chrome-devtools-ui/Images/dock-window.svg +1 -0
  108. package/client/dist/chrome-devtools-ui/Images/document.svg +1 -0
  109. package/client/dist/chrome-devtools-ui/Images/dog-paw.svg +1 -0
  110. package/client/dist/chrome-devtools-ui/Images/domain.svg +1 -0
  111. package/client/dist/chrome-devtools-ui/Images/dots-horizontal.svg +1 -0
  112. package/client/dist/chrome-devtools-ui/Images/dots-vertical.svg +1 -0
  113. package/client/dist/chrome-devtools-ui/Images/download.svg +1 -0
  114. package/client/dist/chrome-devtools-ui/Images/edit.svg +1 -0
  115. package/client/dist/chrome-devtools-ui/Images/empty.svg +1 -0
  116. package/client/dist/chrome-devtools-ui/Images/errorWave.svg +1 -0
  117. package/client/dist/chrome-devtools-ui/Images/exclamation.svg +1 -0
  118. package/client/dist/chrome-devtools-ui/Images/experiment-check.svg +1 -0
  119. package/client/dist/chrome-devtools-ui/Images/experiment.svg +1 -0
  120. package/client/dist/chrome-devtools-ui/Images/extension.svg +1 -0
  121. package/client/dist/chrome-devtools-ui/Images/eye.svg +1 -0
  122. package/client/dist/chrome-devtools-ui/Images/favicon.ico +0 -0
  123. package/client/dist/chrome-devtools-ui/Images/file-document.svg +1 -0
  124. package/client/dist/chrome-devtools-ui/Images/file-fetch-xhr.svg +1 -0
  125. package/client/dist/chrome-devtools-ui/Images/file-font.svg +1 -0
  126. package/client/dist/chrome-devtools-ui/Images/file-generic.svg +1 -0
  127. package/client/dist/chrome-devtools-ui/Images/file-image.svg +1 -0
  128. package/client/dist/chrome-devtools-ui/Images/file-json.svg +1 -0
  129. package/client/dist/chrome-devtools-ui/Images/file-manifest.svg +1 -0
  130. package/client/dist/chrome-devtools-ui/Images/file-media.svg +1 -0
  131. package/client/dist/chrome-devtools-ui/Images/file-script.svg +1 -0
  132. package/client/dist/chrome-devtools-ui/Images/file-snippet.svg +1 -0
  133. package/client/dist/chrome-devtools-ui/Images/file-stylesheet.svg +1 -0
  134. package/client/dist/chrome-devtools-ui/Images/file-wasm.svg +1 -0
  135. package/client/dist/chrome-devtools-ui/Images/file-websocket.svg +1 -0
  136. package/client/dist/chrome-devtools-ui/Images/filter-clear.svg +1 -0
  137. package/client/dist/chrome-devtools-ui/Images/filter-filled.svg +1 -0
  138. package/client/dist/chrome-devtools-ui/Images/filter.svg +1 -0
  139. package/client/dist/chrome-devtools-ui/Images/flex-direction.svg +1 -0
  140. package/client/dist/chrome-devtools-ui/Images/flex-no-wrap.svg +1 -0
  141. package/client/dist/chrome-devtools-ui/Images/flex-wrap.svg +1 -0
  142. package/client/dist/chrome-devtools-ui/Images/flow.svg +1 -0
  143. package/client/dist/chrome-devtools-ui/Images/fold-more.svg +1 -0
  144. package/client/dist/chrome-devtools-ui/Images/folder.svg +1 -0
  145. package/client/dist/chrome-devtools-ui/Images/frame-crossed.svg +1 -0
  146. package/client/dist/chrome-devtools-ui/Images/frame-icon.svg +1 -0
  147. package/client/dist/chrome-devtools-ui/Images/frame.svg +1 -0
  148. package/client/dist/chrome-devtools-ui/Images/gear-filled.svg +1 -0
  149. package/client/dist/chrome-devtools-ui/Images/gear.svg +1 -0
  150. package/client/dist/chrome-devtools-ui/Images/gears.svg +1 -0
  151. package/client/dist/chrome-devtools-ui/Images/global.svg +1 -0
  152. package/client/dist/chrome-devtools-ui/Images/google.svg +1 -0
  153. package/client/dist/chrome-devtools-ui/Images/goto-filled.svg +1 -0
  154. package/client/dist/chrome-devtools-ui/Images/grid-on.svg +1 -0
  155. package/client/dist/chrome-devtools-ui/Images/group.svg +1 -0
  156. package/client/dist/chrome-devtools-ui/Images/heap-snapshot.svg +1 -0
  157. package/client/dist/chrome-devtools-ui/Images/heap-snapshots.svg +1 -0
  158. package/client/dist/chrome-devtools-ui/Images/help.svg +1 -0
  159. package/client/dist/chrome-devtools-ui/Images/history.svg +1 -0
  160. package/client/dist/chrome-devtools-ui/Images/home.svg +1 -0
  161. package/client/dist/chrome-devtools-ui/Images/hover.svg +1 -0
  162. package/client/dist/chrome-devtools-ui/Images/iframe-crossed.svg +1 -0
  163. package/client/dist/chrome-devtools-ui/Images/iframe.svg +1 -0
  164. package/client/dist/chrome-devtools-ui/Images/import.svg +1 -0
  165. package/client/dist/chrome-devtools-ui/Images/indeterminate-question-box.svg +1 -0
  166. package/client/dist/chrome-devtools-ui/Images/info-filled.svg +1 -0
  167. package/client/dist/chrome-devtools-ui/Images/info.svg +1 -0
  168. package/client/dist/chrome-devtools-ui/Images/issue-cross-filled.svg +1 -0
  169. package/client/dist/chrome-devtools-ui/Images/issue-exclamation-filled.svg +1 -0
  170. package/client/dist/chrome-devtools-ui/Images/issue-questionmark-filled.svg +1 -0
  171. package/client/dist/chrome-devtools-ui/Images/issue-text-filled.svg +1 -0
  172. package/client/dist/chrome-devtools-ui/Images/justify-content-center.svg +1 -0
  173. package/client/dist/chrome-devtools-ui/Images/justify-content-end.svg +1 -0
  174. package/client/dist/chrome-devtools-ui/Images/justify-content-space-around.svg +1 -0
  175. package/client/dist/chrome-devtools-ui/Images/justify-content-space-between.svg +1 -0
  176. package/client/dist/chrome-devtools-ui/Images/justify-content-space-evenly.svg +1 -0
  177. package/client/dist/chrome-devtools-ui/Images/justify-content-start.svg +1 -0
  178. package/client/dist/chrome-devtools-ui/Images/justify-items-center.svg +1 -0
  179. package/client/dist/chrome-devtools-ui/Images/justify-items-end.svg +1 -0
  180. package/client/dist/chrome-devtools-ui/Images/justify-items-start.svg +1 -0
  181. package/client/dist/chrome-devtools-ui/Images/justify-items-stretch.svg +1 -0
  182. package/client/dist/chrome-devtools-ui/Images/keyboard-arrow-right.svg +1 -0
  183. package/client/dist/chrome-devtools-ui/Images/keyboard-full.svg +1 -0
  184. package/client/dist/chrome-devtools-ui/Images/keyboard-pen.svg +1 -0
  185. package/client/dist/chrome-devtools-ui/Images/keyboard.svg +1 -0
  186. package/client/dist/chrome-devtools-ui/Images/label.svg +1 -0
  187. package/client/dist/chrome-devtools-ui/Images/large-arrow-right-filled.svg +1 -0
  188. package/client/dist/chrome-devtools-ui/Images/layers-filled.svg +1 -0
  189. package/client/dist/chrome-devtools-ui/Images/layers.svg +1 -0
  190. package/client/dist/chrome-devtools-ui/Images/left-panel-close.svg +1 -0
  191. package/client/dist/chrome-devtools-ui/Images/left-panel-open.svg +1 -0
  192. package/client/dist/chrome-devtools-ui/Images/lightbulb-spark.svg +1 -0
  193. package/client/dist/chrome-devtools-ui/Images/lightbulb.svg +1 -0
  194. package/client/dist/chrome-devtools-ui/Images/lighthouse_logo.svg +1 -0
  195. package/client/dist/chrome-devtools-ui/Images/list.svg +1 -0
  196. package/client/dist/chrome-devtools-ui/Images/location-on.svg +1 -0
  197. package/client/dist/chrome-devtools-ui/Images/lock.svg +1 -0
  198. package/client/dist/chrome-devtools-ui/Images/match-case.svg +1 -0
  199. package/client/dist/chrome-devtools-ui/Images/match-whole-word.svg +1 -0
  200. package/client/dist/chrome-devtools-ui/Images/memory.svg +1 -0
  201. package/client/dist/chrome-devtools-ui/Images/minus.svg +1 -0
  202. package/client/dist/chrome-devtools-ui/Images/mop.svg +1 -0
  203. package/client/dist/chrome-devtools-ui/Images/mouse.svg +1 -0
  204. package/client/dist/chrome-devtools-ui/Images/navigationControls.png +0 -0
  205. package/client/dist/chrome-devtools-ui/Images/navigationControls_2x.png +0 -0
  206. package/client/dist/chrome-devtools-ui/Images/network-settings.svg +1 -0
  207. package/client/dist/chrome-devtools-ui/Images/node-stack-icon.svg +1 -0
  208. package/client/dist/chrome-devtools-ui/Images/nodeIcon.avif +0 -0
  209. package/client/dist/chrome-devtools-ui/Images/open-externally.svg +1 -0
  210. package/client/dist/chrome-devtools-ui/Images/override.svg +1 -0
  211. package/client/dist/chrome-devtools-ui/Images/palette.svg +1 -0
  212. package/client/dist/chrome-devtools-ui/Images/pause-circle.svg +1 -0
  213. package/client/dist/chrome-devtools-ui/Images/pause.svg +1 -0
  214. package/client/dist/chrome-devtools-ui/Images/pen-spark.svg +1 -0
  215. package/client/dist/chrome-devtools-ui/Images/performance-panel-delete-annotation.svg +1 -0
  216. package/client/dist/chrome-devtools-ui/Images/performance-panel-diagram.svg +1 -0
  217. package/client/dist/chrome-devtools-ui/Images/performance-panel-entry-label.svg +1 -0
  218. package/client/dist/chrome-devtools-ui/Images/performance-panel-time-range.svg +1 -0
  219. package/client/dist/chrome-devtools-ui/Images/performance.svg +1 -0
  220. package/client/dist/chrome-devtools-ui/Images/person.svg +1 -0
  221. package/client/dist/chrome-devtools-ui/Images/photo-camera.svg +1 -0
  222. package/client/dist/chrome-devtools-ui/Images/play.svg +1 -0
  223. package/client/dist/chrome-devtools-ui/Images/plus.svg +1 -0
  224. package/client/dist/chrome-devtools-ui/Images/policy.svg +1 -0
  225. package/client/dist/chrome-devtools-ui/Images/popoverArrows.png +0 -0
  226. package/client/dist/chrome-devtools-ui/Images/popup.svg +1 -0
  227. package/client/dist/chrome-devtools-ui/Images/preview_feature_video_thumbnail.svg +1 -0
  228. package/client/dist/chrome-devtools-ui/Images/profile.svg +1 -0
  229. package/client/dist/chrome-devtools-ui/Images/psychiatry.svg +1 -0
  230. package/client/dist/chrome-devtools-ui/Images/react_native/learn-debugging-basics.jpg +0 -0
  231. package/client/dist/chrome-devtools-ui/Images/react_native/learn-native-debugging.jpg +0 -0
  232. package/client/dist/chrome-devtools-ui/Images/react_native/learn-react-native-devtools.jpg +0 -0
  233. package/client/dist/chrome-devtools-ui/Images/react_native/welcomeIcon.png +0 -0
  234. package/client/dist/chrome-devtools-ui/Images/record-start.svg +1 -0
  235. package/client/dist/chrome-devtools-ui/Images/record-stop.svg +1 -0
  236. package/client/dist/chrome-devtools-ui/Images/redo.svg +1 -0
  237. package/client/dist/chrome-devtools-ui/Images/refresh.svg +1 -0
  238. package/client/dist/chrome-devtools-ui/Images/regular-expression.svg +1 -0
  239. package/client/dist/chrome-devtools-ui/Images/replace.svg +1 -0
  240. package/client/dist/chrome-devtools-ui/Images/replay.svg +1 -0
  241. package/client/dist/chrome-devtools-ui/Images/report.svg +1 -0
  242. package/client/dist/chrome-devtools-ui/Images/resizeDiagonal.svg +1 -0
  243. package/client/dist/chrome-devtools-ui/Images/resizeHorizontal.svg +1 -0
  244. package/client/dist/chrome-devtools-ui/Images/resizeVertical.svg +1 -0
  245. package/client/dist/chrome-devtools-ui/Images/resume.svg +1 -0
  246. package/client/dist/chrome-devtools-ui/Images/review.svg +1 -0
  247. package/client/dist/chrome-devtools-ui/Images/right-panel-close.svg +1 -0
  248. package/client/dist/chrome-devtools-ui/Images/right-panel-open.svg +1 -0
  249. package/client/dist/chrome-devtools-ui/Images/scissors.svg +1 -0
  250. package/client/dist/chrome-devtools-ui/Images/screen-rotation.svg +1 -0
  251. package/client/dist/chrome-devtools-ui/Images/search.svg +1 -0
  252. package/client/dist/chrome-devtools-ui/Images/select-element.svg +1 -0
  253. package/client/dist/chrome-devtools-ui/Images/send.svg +1 -0
  254. package/client/dist/chrome-devtools-ui/Images/shadow.svg +1 -0
  255. package/client/dist/chrome-devtools-ui/Images/small-status-dot.svg +1 -0
  256. package/client/dist/chrome-devtools-ui/Images/smart-assistant.svg +1 -0
  257. package/client/dist/chrome-devtools-ui/Images/snippet.svg +1 -0
  258. package/client/dist/chrome-devtools-ui/Images/spark-info.svg +1 -0
  259. package/client/dist/chrome-devtools-ui/Images/star.svg +1 -0
  260. package/client/dist/chrome-devtools-ui/Images/step-into.svg +1 -0
  261. package/client/dist/chrome-devtools-ui/Images/step-out.svg +1 -0
  262. package/client/dist/chrome-devtools-ui/Images/step-over.svg +1 -0
  263. package/client/dist/chrome-devtools-ui/Images/step.svg +1 -0
  264. package/client/dist/chrome-devtools-ui/Images/stop.svg +1 -0
  265. package/client/dist/chrome-devtools-ui/Images/symbol.svg +1 -0
  266. package/client/dist/chrome-devtools-ui/Images/sync.svg +1 -0
  267. package/client/dist/chrome-devtools-ui/Images/table.svg +1 -0
  268. package/client/dist/chrome-devtools-ui/Images/terminal.svg +1 -0
  269. package/client/dist/chrome-devtools-ui/Images/thumb-down-filled.svg +1 -0
  270. package/client/dist/chrome-devtools-ui/Images/thumb-down.svg +1 -0
  271. package/client/dist/chrome-devtools-ui/Images/thumb-up-filled.svg +1 -0
  272. package/client/dist/chrome-devtools-ui/Images/thumb-up.svg +1 -0
  273. package/client/dist/chrome-devtools-ui/Images/tonality.svg +1 -0
  274. package/client/dist/chrome-devtools-ui/Images/toolbarResizerVertical.png +0 -0
  275. package/client/dist/chrome-devtools-ui/Images/top-panel-close.svg +1 -0
  276. package/client/dist/chrome-devtools-ui/Images/top-panel-open.svg +1 -0
  277. package/client/dist/chrome-devtools-ui/Images/touch-app.svg +1 -0
  278. package/client/dist/chrome-devtools-ui/Images/touchCursor.png +0 -0
  279. package/client/dist/chrome-devtools-ui/Images/touchCursor_2x.png +0 -0
  280. package/client/dist/chrome-devtools-ui/Images/triangle-bottom-right.svg +1 -0
  281. package/client/dist/chrome-devtools-ui/Images/triangle-down.svg +1 -0
  282. package/client/dist/chrome-devtools-ui/Images/triangle-left.svg +1 -0
  283. package/client/dist/chrome-devtools-ui/Images/triangle-right.svg +1 -0
  284. package/client/dist/chrome-devtools-ui/Images/triangle-up.svg +1 -0
  285. package/client/dist/chrome-devtools-ui/Images/tune.svg +1 -0
  286. package/client/dist/chrome-devtools-ui/Images/undo.svg +1 -0
  287. package/client/dist/chrome-devtools-ui/Images/warning-filled.svg +1 -0
  288. package/client/dist/chrome-devtools-ui/Images/warning.svg +1 -0
  289. package/client/dist/chrome-devtools-ui/Images/watch.svg +1 -0
  290. package/client/dist/chrome-devtools-ui/Images/whatsnew.svg +1 -0
  291. package/client/dist/chrome-devtools-ui/Images/width.svg +1 -0
  292. package/client/dist/chrome-devtools-ui/Images/zoom-in.svg +1 -0
  293. package/client/dist/chrome-devtools-ui/Tests.js +1700 -0
  294. package/client/dist/chrome-devtools-ui/application_tokens.css +407 -0
  295. package/client/dist/chrome-devtools-ui/core/common/common.js +1 -0
  296. package/client/dist/chrome-devtools-ui/core/dom_extension/dom_extension.js +1 -0
  297. package/client/dist/chrome-devtools-ui/core/host/host.js +1 -0
  298. package/client/dist/chrome-devtools-ui/core/i18n/i18n.js +1 -0
  299. package/client/dist/chrome-devtools-ui/core/i18n/locales/en-US.json +1 -0
  300. package/client/dist/chrome-devtools-ui/core/i18n/locales/zh.json +1 -0
  301. package/client/dist/chrome-devtools-ui/core/platform/platform.js +1 -0
  302. package/client/dist/chrome-devtools-ui/core/protocol_client/protocol_client.js +1 -0
  303. package/client/dist/chrome-devtools-ui/core/rn_experiments/rn_experiments.js +1 -0
  304. package/client/dist/chrome-devtools-ui/core/root/root.js +1 -0
  305. package/client/dist/chrome-devtools-ui/core/sdk/sdk-meta.js +1 -0
  306. package/client/dist/chrome-devtools-ui/core/sdk/sdk.js +1 -0
  307. package/client/dist/chrome-devtools-ui/design_system_tokens.css +782 -0
  308. package/client/dist/chrome-devtools-ui/device_mode_emulation_frame.html +24 -0
  309. package/client/dist/chrome-devtools-ui/devtools_app.html +24 -0
  310. package/client/dist/chrome-devtools-ui/devtools_compatibility.js +1741 -0
  311. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  312. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  313. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  314. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  315. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  316. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  317. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
  318. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
  319. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  320. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  321. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  322. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  323. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  324. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  325. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  326. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  327. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  328. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  329. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  330. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  331. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  332. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  333. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  334. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  335. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  336. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  337. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  338. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  339. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  340. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  341. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  342. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  343. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-landscape.avif +0 -0
  344. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-portrait.avif +0 -0
  345. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  346. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  347. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  348. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  349. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  350. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  351. package/client/dist/chrome-devtools-ui/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
  352. package/client/dist/chrome-devtools-ui/entrypoints/devtools_app/devtools_app.js +1 -0
  353. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/FormatterActions.js +1 -0
  354. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
  355. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker.js +1 -0
  356. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  357. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  358. package/client/dist/chrome-devtools-ui/entrypoints/inspector/inspector.js +1 -0
  359. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main-meta.js +1 -0
  360. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main.js +1 -0
  361. package/client/dist/chrome-devtools-ui/entrypoints/js_app/js_app.js +1 -0
  362. package/client/dist/chrome-devtools-ui/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
  363. package/client/dist/chrome-devtools-ui/entrypoints/main/main-meta.js +1 -0
  364. package/client/dist/chrome-devtools-ui/entrypoints/main/main.js +48 -0
  365. package/client/dist/chrome-devtools-ui/entrypoints/ndb_app/ndb_app.js +1 -0
  366. package/client/dist/chrome-devtools-ui/entrypoints/node_app/node_app.js +1 -0
  367. package/client/dist/chrome-devtools-ui/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -0
  368. package/client/dist/chrome-devtools-ui/entrypoints/rn_fusebox/rn_fusebox.js +24 -0
  369. package/client/dist/chrome-devtools-ui/entrypoints/shell/shell.js +1 -0
  370. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  371. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
  372. package/client/dist/chrome-devtools-ui/entrypoints/worker_app/worker_app.js +1 -0
  373. package/client/dist/chrome-devtools-ui/inspector.html +24 -0
  374. package/client/dist/chrome-devtools-ui/integration_test_runner.html +40 -0
  375. package/client/dist/chrome-devtools-ui/js_app.html +24 -0
  376. package/client/dist/chrome-devtools-ui/legacy_test_runner/legacy_test_runner.js +13 -0
  377. package/client/dist/chrome-devtools-ui/legacy_test_runner/test_runner/test_runner.js +1 -0
  378. package/client/dist/chrome-devtools-ui/models/ai_assistance/ai_assistance.js +1 -0
  379. package/client/dist/chrome-devtools-ui/models/autofill_manager/autofill_manager.js +1 -0
  380. package/client/dist/chrome-devtools-ui/models/bindings/bindings.js +1 -0
  381. package/client/dist/chrome-devtools-ui/models/breakpoints/breakpoints.js +1 -0
  382. package/client/dist/chrome-devtools-ui/models/cpu_profile/cpu_profile.js +1 -0
  383. package/client/dist/chrome-devtools-ui/models/crux-manager/crux-manager.js +1 -0
  384. package/client/dist/chrome-devtools-ui/models/emulation/emulation.js +1 -0
  385. package/client/dist/chrome-devtools-ui/models/extensions/extensions.js +1 -0
  386. package/client/dist/chrome-devtools-ui/models/formatter/formatter.js +1 -0
  387. package/client/dist/chrome-devtools-ui/models/har/har.js +1 -0
  388. package/client/dist/chrome-devtools-ui/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
  389. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  390. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  391. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  392. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  393. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  394. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  395. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  396. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  397. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  398. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  399. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  400. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  401. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  402. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  403. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  404. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  405. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  406. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  407. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  408. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  409. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  410. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  411. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  412. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  413. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  414. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  415. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  416. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  417. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  418. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  419. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  420. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  421. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  422. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  423. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  424. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  425. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  426. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  427. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  428. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  429. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  430. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  431. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  432. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  433. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  434. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  435. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  436. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  437. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  438. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  439. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  440. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  441. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  442. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  443. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  444. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  445. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  446. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  447. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  448. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  449. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  450. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  451. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  452. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  453. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  454. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  455. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  456. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  457. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  458. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  459. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  460. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  461. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  462. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  463. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  464. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  465. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  466. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/deprecation.md +3 -0
  467. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  468. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  469. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  470. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  471. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  472. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  473. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  474. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  475. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  476. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  477. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  478. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  479. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  480. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  481. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  482. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  483. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  484. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  485. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  486. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  487. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  488. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  489. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  490. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  491. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  492. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  493. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  494. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  495. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  496. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
  497. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  498. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  499. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  500. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  501. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  502. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  503. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  504. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  505. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
  506. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  507. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/heavyAd.md +10 -0
  508. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/mixedContent.md +5 -0
  509. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  510. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  511. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  512. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  513. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  514. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  515. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  516. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  517. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  518. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  519. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  520. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  521. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  522. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  523. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  524. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  525. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  526. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  527. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  528. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  529. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  530. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  531. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  532. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  533. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  534. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  535. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  536. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  537. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  538. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  539. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  540. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  541. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  542. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  543. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  544. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  545. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  546. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  547. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  548. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  549. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  550. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  551. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  552. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  553. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  554. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  555. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  556. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  557. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  558. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  559. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  560. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +12 -0
  561. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  562. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  563. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  564. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  565. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  566. package/client/dist/chrome-devtools-ui/models/issues_manager/issues_manager.js +1 -0
  567. package/client/dist/chrome-devtools-ui/models/javascript_metadata/javascript_metadata.js +1 -0
  568. package/client/dist/chrome-devtools-ui/models/live-metrics/live-metrics.js +1 -0
  569. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
  570. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
  571. package/client/dist/chrome-devtools-ui/models/logs/logs-meta.js +1 -0
  572. package/client/dist/chrome-devtools-ui/models/logs/logs.js +1 -0
  573. package/client/dist/chrome-devtools-ui/models/persistence/persistence-meta.js +1 -0
  574. package/client/dist/chrome-devtools-ui/models/persistence/persistence.js +1 -0
  575. package/client/dist/chrome-devtools-ui/models/project_settings/project_settings.js +1 -0
  576. package/client/dist/chrome-devtools-ui/models/react_native/react_native.js +1 -0
  577. package/client/dist/chrome-devtools-ui/models/source_map_scopes/source_map_scopes.js +1 -0
  578. package/client/dist/chrome-devtools-ui/models/text_utils/text_utils.js +1 -0
  579. package/client/dist/chrome-devtools-ui/models/trace/extras/extras.js +1 -0
  580. package/client/dist/chrome-devtools-ui/models/trace/handlers/handlers.js +1 -0
  581. package/client/dist/chrome-devtools-ui/models/trace/helpers/helpers.js +1 -0
  582. package/client/dist/chrome-devtools-ui/models/trace/insights/insights.js +1 -0
  583. package/client/dist/chrome-devtools-ui/models/trace/lantern/core/core.js +1 -0
  584. package/client/dist/chrome-devtools-ui/models/trace/lantern/graph/graph.js +1 -0
  585. package/client/dist/chrome-devtools-ui/models/trace/lantern/lantern.js +1 -0
  586. package/client/dist/chrome-devtools-ui/models/trace/lantern/metrics/metrics.js +1 -0
  587. package/client/dist/chrome-devtools-ui/models/trace/lantern/simulation/simulation.js +1 -0
  588. package/client/dist/chrome-devtools-ui/models/trace/lantern/types/types.js +1 -0
  589. package/client/dist/chrome-devtools-ui/models/trace/trace.js +1 -0
  590. package/client/dist/chrome-devtools-ui/models/trace/types/types.js +1 -0
  591. package/client/dist/chrome-devtools-ui/models/workspace/workspace.js +1 -0
  592. package/client/dist/chrome-devtools-ui/models/workspace_diff/workspace_diff.js +1 -0
  593. package/client/dist/chrome-devtools-ui/ndb_app.html +24 -0
  594. package/client/dist/chrome-devtools-ui/node_app.html +24 -0
  595. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility-meta.js +1 -0
  596. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility.js +1 -0
  597. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance-meta.js +1 -0
  598. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance.js +512 -0
  599. package/client/dist/chrome-devtools-ui/panels/animation/animation-meta.js +1 -0
  600. package/client/dist/chrome-devtools-ui/panels/animation/animation.js +1 -0
  601. package/client/dist/chrome-devtools-ui/panels/application/application-meta.js +1 -0
  602. package/client/dist/chrome-devtools-ui/panels/application/application.js +107 -0
  603. package/client/dist/chrome-devtools-ui/panels/application/components/components.js +765 -0
  604. package/client/dist/chrome-devtools-ui/panels/application/preloading/components/components.js +362 -0
  605. package/client/dist/chrome-devtools-ui/panels/application/preloading/helper/helper.js +1 -0
  606. package/client/dist/chrome-devtools-ui/panels/autofill/autofill-meta.js +1 -0
  607. package/client/dist/chrome-devtools-ui/panels/autofill/autofill.js +107 -0
  608. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger-meta.js +1 -0
  609. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger.js +1 -0
  610. package/client/dist/chrome-devtools-ui/panels/changes/changes-meta.js +1 -0
  611. package/client/dist/chrome-devtools-ui/panels/changes/changes.js +31 -0
  612. package/client/dist/chrome-devtools-ui/panels/common/common.js +45 -0
  613. package/client/dist/chrome-devtools-ui/panels/console/console-meta.js +1 -0
  614. package/client/dist/chrome-devtools-ui/panels/console/console.js +6 -0
  615. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters-meta.js +1 -0
  616. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters.js +1 -0
  617. package/client/dist/chrome-devtools-ui/panels/coverage/coverage-meta.js +1 -0
  618. package/client/dist/chrome-devtools-ui/panels/coverage/coverage.js +1 -0
  619. package/client/dist/chrome-devtools-ui/panels/css_overview/components/components.js +23 -0
  620. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview-meta.js +1 -0
  621. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview.js +148 -0
  622. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources-meta.js +1 -0
  623. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources.js +48 -0
  624. package/client/dist/chrome-devtools-ui/panels/elements/components/components.js +250 -0
  625. package/client/dist/chrome-devtools-ui/panels/elements/elements-meta.js +1 -0
  626. package/client/dist/chrome-devtools-ui/panels/elements/elements.js +67 -0
  627. package/client/dist/chrome-devtools-ui/panels/emulation/components/components.js +39 -0
  628. package/client/dist/chrome-devtools-ui/panels/emulation/emulation-meta.js +1 -0
  629. package/client/dist/chrome-devtools-ui/panels/emulation/emulation.js +1 -0
  630. package/client/dist/chrome-devtools-ui/panels/event_listeners/event_listeners.js +1 -0
  631. package/client/dist/chrome-devtools-ui/panels/explain/explain-meta.js +1 -0
  632. package/client/dist/chrome-devtools-ui/panels/explain/explain.js +231 -0
  633. package/client/dist/chrome-devtools-ui/panels/issues/components/components.js +14 -0
  634. package/client/dist/chrome-devtools-ui/panels/issues/issues-meta.js +1 -0
  635. package/client/dist/chrome-devtools-ui/panels/issues/issues.js +1 -0
  636. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline-meta.js +1 -0
  637. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline.js +2 -0
  638. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer-meta.js +1 -0
  639. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer.js +1 -0
  640. package/client/dist/chrome-devtools-ui/panels/layers/layers-meta.js +1 -0
  641. package/client/dist/chrome-devtools-ui/panels/layers/layers.js +1 -0
  642. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse-meta.js +1 -0
  643. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse.js +65 -0
  644. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/components/components.js +179 -0
  645. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  646. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
  647. package/client/dist/chrome-devtools-ui/panels/media/media-meta.js +1 -0
  648. package/client/dist/chrome-devtools-ui/panels/media/media.js +25 -0
  649. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
  650. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling.js +1 -0
  651. package/client/dist/chrome-devtools-ui/panels/network/components/components.js +346 -0
  652. package/client/dist/chrome-devtools-ui/panels/network/forward/forward.js +1 -0
  653. package/client/dist/chrome-devtools-ui/panels/network/network-meta.js +1 -0
  654. package/client/dist/chrome-devtools-ui/panels/network/network.js +1 -0
  655. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor-meta.js +1 -0
  656. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor.js +1 -0
  657. package/client/dist/chrome-devtools-ui/panels/profiler/profiler-meta.js +1 -0
  658. package/client/dist/chrome-devtools-ui/panels/profiler/profiler.js +8 -0
  659. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
  660. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor.js +293 -0
  661. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools.js +1 -0
  662. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_components-meta.js +1 -0
  663. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_profiler-meta.js +1 -0
  664. package/client/dist/chrome-devtools-ui/panels/recorder/components/components.js +686 -0
  665. package/client/dist/chrome-devtools-ui/panels/recorder/controllers/controllers.js +1 -0
  666. package/client/dist/chrome-devtools-ui/panels/recorder/converters/converters.js +1 -0
  667. package/client/dist/chrome-devtools-ui/panels/recorder/extensions/extensions.js +1 -0
  668. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.generated.js +1 -0
  669. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.js +1 -0
  670. package/client/dist/chrome-devtools-ui/panels/recorder/models/models.js +1 -0
  671. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-actions/recorder-actions.js +3 -0
  672. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-meta.js +1 -0
  673. package/client/dist/chrome-devtools-ui/panels/recorder/recorder.js +126 -0
  674. package/client/dist/chrome-devtools-ui/panels/recorder/util/util.js +1 -0
  675. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome-meta.js +1 -0
  676. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome.js +62 -0
  677. package/client/dist/chrome-devtools-ui/panels/screencast/screencast-meta.js +1 -0
  678. package/client/dist/chrome-devtools-ui/panels/screencast/screencast.js +1 -0
  679. package/client/dist/chrome-devtools-ui/panels/search/search.js +1 -0
  680. package/client/dist/chrome-devtools-ui/panels/security/security-meta.js +1 -0
  681. package/client/dist/chrome-devtools-ui/panels/security/security.js +178 -0
  682. package/client/dist/chrome-devtools-ui/panels/sensors/sensors-meta.js +1 -0
  683. package/client/dist/chrome-devtools-ui/panels/sensors/sensors.js +1 -0
  684. package/client/dist/chrome-devtools-ui/panels/settings/components/components.js +22 -0
  685. package/client/dist/chrome-devtools-ui/panels/settings/emulation/components/components.js +221 -0
  686. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation-meta.js +1 -0
  687. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation.js +1 -0
  688. package/client/dist/chrome-devtools-ui/panels/settings/emulation/utils/utils.js +1 -0
  689. package/client/dist/chrome-devtools-ui/panels/settings/settings-meta.js +1 -0
  690. package/client/dist/chrome-devtools-ui/panels/settings/settings.js +91 -0
  691. package/client/dist/chrome-devtools-ui/panels/snippets/snippets.js +1 -0
  692. package/client/dist/chrome-devtools-ui/panels/sources/components/components.js +162 -0
  693. package/client/dist/chrome-devtools-ui/panels/sources/sources-meta.js +1 -0
  694. package/client/dist/chrome-devtools-ui/panels/sources/sources.js +2 -0
  695. package/client/dist/chrome-devtools-ui/panels/timeline/components/components.js +1063 -0
  696. package/client/dist/chrome-devtools-ui/panels/timeline/components/insights/insights.js +262 -0
  697. package/client/dist/chrome-devtools-ui/panels/timeline/extensions/extensions.js +1 -0
  698. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/components/components.js +190 -0
  699. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/overlays.js +1 -0
  700. package/client/dist/chrome-devtools-ui/panels/timeline/timeline-meta.js +1 -0
  701. package/client/dist/chrome-devtools-ui/panels/timeline/timeline.js +43 -0
  702. package/client/dist/chrome-devtools-ui/panels/timeline/utils/utils.js +1 -0
  703. package/client/dist/chrome-devtools-ui/panels/utils/utils.js +1 -0
  704. package/client/dist/chrome-devtools-ui/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  705. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio-meta.js +1 -0
  706. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio.js +19 -0
  707. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn-meta.js +1 -0
  708. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn.js +1 -0
  709. package/client/dist/chrome-devtools-ui/panels/whats_new/resources/WNDT.md +6 -0
  710. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new-meta.js +1 -0
  711. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new.js +32 -0
  712. package/client/dist/chrome-devtools-ui/rehydrated_devtools_app.html +24 -0
  713. package/client/dist/chrome-devtools-ui/rn_fusebox.html +24 -0
  714. package/client/dist/chrome-devtools-ui/services/puppeteer/puppeteer.js +1 -0
  715. package/client/dist/chrome-devtools-ui/services/trace_bounds/trace_bounds.js +1 -0
  716. package/client/dist/chrome-devtools-ui/services/tracing/tracing.js +1 -0
  717. package/client/dist/chrome-devtools-ui/services/window_bounds/window_bounds.js +1 -0
  718. package/client/dist/chrome-devtools-ui/third_party/acorn/acorn.js +1 -0
  719. package/client/dist/chrome-devtools-ui/third_party/chromium/client-variations/client-variations.js +1 -0
  720. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/angular.js +2 -0
  721. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/codemirror.js +2 -0
  722. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/cpp.js +2 -0
  723. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/java.js +2 -0
  724. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/legacy.js +2 -0
  725. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/less.js +2 -0
  726. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/markdown.js +2 -0
  727. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/php.js +2 -0
  728. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/python.js +2 -0
  729. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/sass.js +2 -0
  730. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/svelte.js +2 -0
  731. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/vue.js +2 -0
  732. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/wast.js +2 -0
  733. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/xml.js +2 -0
  734. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/codemirror.next.js +2 -0
  735. package/client/dist/chrome-devtools-ui/third_party/csp_evaluator/csp_evaluator.js +194 -0
  736. package/client/dist/chrome-devtools-ui/third_party/diff/diff.js +1 -0
  737. package/client/dist/chrome-devtools-ui/third_party/i18n/i18n.js +1 -0
  738. package/client/dist/chrome-devtools-ui/third_party/intl-messageformat/intl-messageformat.js +15 -0
  739. package/client/dist/chrome-devtools-ui/third_party/json5/json5.js +1 -0
  740. package/client/dist/chrome-devtools-ui/third_party/legacy-javascript/legacy-javascript.js +7 -0
  741. package/client/dist/chrome-devtools-ui/third_party/lighthouse/lighthouse-dt-bundle.js +3023 -0
  742. package/client/dist/chrome-devtools-ui/third_party/lighthouse/report/report.js +39 -0
  743. package/client/dist/chrome-devtools-ui/third_party/lit/lit.js +121 -0
  744. package/client/dist/chrome-devtools-ui/third_party/marked/marked.js +1 -0
  745. package/client/dist/chrome-devtools-ui/third_party/puppeteer/puppeteer.js +373 -0
  746. package/client/dist/chrome-devtools-ui/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
  747. package/client/dist/chrome-devtools-ui/third_party/react-devtools/react-devtools.js +41 -0
  748. package/client/dist/chrome-devtools-ui/third_party/third-party-web/third-party-web.js +1 -0
  749. package/client/dist/chrome-devtools-ui/third_party/wasmparser/wasmparser.js +1 -0
  750. package/client/dist/chrome-devtools-ui/third_party/web-vitals/web-vitals.js +1 -0
  751. package/client/dist/chrome-devtools-ui/ui/components/adorners/adorners.js +1 -0
  752. package/client/dist/chrome-devtools-ui/ui/components/buttons/buttons.js +17 -0
  753. package/client/dist/chrome-devtools-ui/ui/components/cards/cards.js +10 -0
  754. package/client/dist/chrome-devtools-ui/ui/components/chrome_link/chrome_link.js +6 -0
  755. package/client/dist/chrome-devtools-ui/ui/components/code_highlighter/code_highlighter.js +1 -0
  756. package/client/dist/chrome-devtools-ui/ui/components/dialogs/dialogs.js +61 -0
  757. package/client/dist/chrome-devtools-ui/ui/components/diff_view/diff_view.js +8 -0
  758. package/client/dist/chrome-devtools-ui/ui/components/expandable_list/expandable_list.js +17 -0
  759. package/client/dist/chrome-devtools-ui/ui/components/floating_button/floating_button.js +1 -0
  760. package/client/dist/chrome-devtools-ui/ui/components/helpers/helpers.js +1 -0
  761. package/client/dist/chrome-devtools-ui/ui/components/highlighting/highlighting.js +1 -0
  762. package/client/dist/chrome-devtools-ui/ui/components/icon_button/icon_button.js +13 -0
  763. package/client/dist/chrome-devtools-ui/ui/components/input/input.js +1 -0
  764. package/client/dist/chrome-devtools-ui/ui/components/issue_counter/issue_counter.js +10 -0
  765. package/client/dist/chrome-devtools-ui/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
  766. package/client/dist/chrome-devtools-ui/ui/components/linkifier/linkifier.js +1 -0
  767. package/client/dist/chrome-devtools-ui/ui/components/markdown_view/markdown_view.js +51 -0
  768. package/client/dist/chrome-devtools-ui/ui/components/menus/menus.js +71 -0
  769. package/client/dist/chrome-devtools-ui/ui/components/node_text/node_text.js +3 -0
  770. package/client/dist/chrome-devtools-ui/ui/components/panel_feedback/panel_feedback.js +37 -0
  771. package/client/dist/chrome-devtools-ui/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
  772. package/client/dist/chrome-devtools-ui/ui/components/render_coordinator/render_coordinator.js +1 -0
  773. package/client/dist/chrome-devtools-ui/ui/components/report_view/report_view.js +21 -0
  774. package/client/dist/chrome-devtools-ui/ui/components/request_link_icon/request_link_icon.js +8 -0
  775. package/client/dist/chrome-devtools-ui/ui/components/settings/settings.js +20 -0
  776. package/client/dist/chrome-devtools-ui/ui/components/spinners/spinners.js +16 -0
  777. package/client/dist/chrome-devtools-ui/ui/components/srgb_overlay/srgb_overlay.js +6 -0
  778. package/client/dist/chrome-devtools-ui/ui/components/suggestion_input/suggestion_input.js +29 -0
  779. package/client/dist/chrome-devtools-ui/ui/components/survey_link/survey_link.js +7 -0
  780. package/client/dist/chrome-devtools-ui/ui/components/switch/switch.js +10 -0
  781. package/client/dist/chrome-devtools-ui/ui/components/text_editor/text_editor.js +1 -0
  782. package/client/dist/chrome-devtools-ui/ui/components/text_prompt/text_prompt.js +4 -0
  783. package/client/dist/chrome-devtools-ui/ui/components/tooltips/tooltips.js +7 -0
  784. package/client/dist/chrome-devtools-ui/ui/components/tree_outline/tree_outline.js +32 -0
  785. package/client/dist/chrome-devtools-ui/ui/legacy/components/color_picker/color_picker.js +1 -0
  786. package/client/dist/chrome-devtools-ui/ui/legacy/components/cookie_table/cookie_table.js +85 -0
  787. package/client/dist/chrome-devtools-ui/ui/legacy/components/data_grid/data_grid.js +1 -0
  788. package/client/dist/chrome-devtools-ui/ui/legacy/components/inline_editor/inline_editor.js +58 -0
  789. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
  790. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui.js +7 -0
  791. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
  792. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui.js +60 -0
  793. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
  794. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open.js +1 -0
  795. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
  796. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame.js +1 -0
  797. package/client/dist/chrome-devtools-ui/ui/legacy/components/utils/utils.js +1 -0
  798. package/client/dist/chrome-devtools-ui/ui/legacy/legacy.js +59 -0
  799. package/client/dist/chrome-devtools-ui/ui/legacy/theme_support/theme_support.js +1 -0
  800. package/client/dist/chrome-devtools-ui/ui/lit/lit.js +1 -0
  801. package/client/dist/chrome-devtools-ui/ui/visual_logging/visual_logging.js +1 -0
  802. package/client/dist/chrome-devtools-ui/worker_app.html +24 -0
  803. package/client/dist/index.html +3 -3
  804. package/package.json +4 -1
  805. package/packages/simdeck-test/dist/index.d.ts +7 -1
  806. package/client/dist/assets/index-BHTf_1bs.js +0 -9
  807. package/client/dist/assets/index-PP2opq5o.css +0 -1
@@ -0,0 +1 @@
1
+ import*as e from"../../../../core/common/common.js";import*as t from"../../../../core/i18n/i18n.js";import*as i from"../../../../core/platform/platform.js";import*as o from"../../../visual_logging/visual_logging.js";import*as r from"../../legacy.js";import*as s from"../../../components/render_coordinator/render_coordinator.js";var n={cssText:`.data-grid{position:relative;border:1px solid var(--sys-color-divider)!important;line-height:120%}.data-grid table{table-layout:fixed;border-spacing:0;border-collapse:separate;height:100%;width:100%}.data-grid .data-container{position:absolute;inset:0;overflow:hidden auto;transform:translateZ(0);background-color:var(--sys-color-cdt-base-container)}.data-grid thead{position:sticky;top:0;height:21px;z-index:1}.data-grid .aria-live-label{width:1px;height:1px;overflow:hidden}.data-grid.inline .data-container{position:static}.data-grid .corner{width:14px;padding-right:0;padding-left:0;border-left:0 none transparent!important}.data-grid.inline .corner{display:none}.data-grid.data-grid-fits-viewport .corner{display:none}.data-grid .top-filler-td,\n.data-grid .bottom-filler-td{height:auto!important;padding:0!important}.data-grid table.data{position:absolute;inset:0;border-top:0 none transparent;table-layout:fixed}.data-grid.inline table.data{position:static}.data-grid tbody tr{display:none;height:20px;&:has(td.show-more){height:var(--sys-size-13)}}.data-grid tbody tr.revealed{display:table-row}.striped-data-grid .revealed.data-grid-data-grid-node:nth-child(odd):not(.dirty, .selected),\n.striped-data-grid-starts-with-odd .revealed.data-grid-data-grid-node:nth-child(even):not(.dirty, .selected){background-color:var(--sys-color-surface1)}.data-grid td,\n.data-grid th{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:18px;height:18px;border-left:1px solid var(--sys-color-divider);padding:1px 4px}.data-grid td{vertical-align:top;user-select:text}.data-grid tr:has(th){background-color:var(--sys-color-surface1)}.data-grid th{border-bottom:1px solid var(--sys-color-divider);text-align:left;font-weight:normal;vertical-align:middle}.data-grid th:first-child,\n.data-grid td:first-child{border-left-width:0}.data-grid tr.selected td,\n.data-grid tr.selected th{border-left-color:var(--sys-color-divider-on-tonal-container)}.data-grid td > div,\n.data-grid th > div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:8px}.data-grid td.editing > div{text-overflow:clip}.data-grid .center{text-align:center}.data-grid .right{text-align:right}.data-grid th.sortable{position:relative}.data-grid th .sort-order-icon-container{min-width:0;position:absolute;top:1px;right:0;bottom:1px;display:flex;align-items:center}.data-grid th .sort-order-icon{margin-right:4px;margin-bottom:-2px;width:14px;height:14px;display:none;background-color:var(--icon-default)}.data-grid th.sort-ascending .sort-order-icon{display:inline-block;mask-image:var(--image-file-triangle-up)}.data-grid th.sort-descending .sort-order-icon{display:inline-block;mask-image:var(--image-file-triangle-down)}.data-grid th.sort-ascending,\n.data-grid th.sort-descending{padding-right:14px}.data-grid th.sortable:hover,\n.data-grid th.sortable:focus-within{background-color:var(--sys-color-state-hover-on-subtle)}.data-grid .top-filler-td{border-bottom:0 none transparent;line-height:0}.data-grid button{line-height:18px;color:inherit}.data-grid td.disclosure::before{user-select:none;mask-image:var(--image-file-triangle-right);float:left;width:14px;height:14px;margin-right:2px;content:"";position:relative;top:3px;background-color:var(--icon-default);transition:transform 200ms}.data-grid tr:not(.parent) td.disclosure::before{background-color:transparent}.data-grid tr.expanded td.disclosure::before{transform:rotate(90deg)}.data-grid tbody tr.revealed.selected{background-color:var(--sys-color-neutral-container);color:inherit;& ::selection{background-color:var(--sys-color-state-focus-select);color:currentcolor}}.data-grid:focus-within tbody tr.revealed.selected{background-color:var(--sys-color-tonal-container)}.data-grid tbody tr.revealed:not(.data-grid-filler-row, .selected):hover{background-color:var(--sys-color-state-hover-on-subtle)}.data-grid tbody tr.revealed.selected.dirty{color:var(--sys-color-on-tonal-container)}.data-grid.no-selection:focus-visible{border:1px solid var(--sys-color-state-focus-ring)!important}.data-grid:focus tbody tr.selected{background-color:var(--sys-color-tonal-container);color:var(--sys-color-on-tonal-container)}.data-grid tbody tr.selected.dirty{--override-data-grid-dirty-background-color:var(--sys-color-error);background-color:var(--override-data-grid-dirty-background-color)}.data-grid:focus tr.selected.dirty{--override-data-grid-dirty-background-color:var(--sys-color-error-container)}.data-grid:focus tr.selected .devtools-link{color:var(--sys-color-on-tonal-container)}.data-grid:focus tr.parent.selected td.disclosure::before{background-color:var(--sys-color-on-tonal-container)}.data-grid tr.inactive{color:var(--sys-color-state-disabled);font-style:italic}.data-grid tr.dirty{--override-data-grid-dirty-background-color:var(--sys-color-surface-error);background-color:var(--override-data-grid-dirty-background-color);color:var(--sys-color-error);font-style:normal}.data-grid tr.highlighted:not(.selected){background-color:var(--sys-color-surface-yellow)}.striped-data-grid .revealed.data-grid-data-grid-node.highlighted:nth-child(odd):not(.dirty, .selected),\n.striped-data-grid-starts-with-odd .revealed.data-grid-data-grid-node.highlighted:nth-child(even):not(.dirty, .selected){background-color:var(--sys-color-surface-yellow-high)}.data-grid td.show-more{white-space:normal;gap:var(--sys-size-3);devtools-button{margin-right:var(--sys-size-6);position:relative;margin-top:3px;margin-bottom:3px}}.data-grid td.show-more::before{display:none}.data-grid-resizer{position:absolute;top:0;bottom:0;width:5px;z-index:500}@media (forced-colors: active){.sort-order-icon-container .sort-order-icon{forced-color-adjust:none;background-color:ButtonText}.data-grid td.disclosure::before{forced-color-adjust:none;color:ButtonText}.data-grid.no-selection:focus-visible *{color:ButtonText}.data-grid th.sortable:hover *,\n .data-grid tr.parent.selected td.disclosure::before,\n .data-grid:focus tr.parent.selected td.disclosure::before,\n .data-grid tbody tr.parent.revealed:hover td.disclosure::before{color:HighlightText}.data-grid th.sortable:hover .sort-order-icon-container .sort-order-icon{background-color:HighlightText}.striped-data-grid .revealed.data-grid-data-grid-node:nth-child(odd):not(.dirty, .selected),\n .striped-data-grid-starts-with-odd .revealed.data-grid-data-grid-node:nth-child(even):not(.dirty, .selected),\n .request-cookies-view tr.revealed.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(2n),\n .cookies-table tr.revealed.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(odd){background-color:canvas}.data-grid.no-selection:focus-visible{forced-color-adjust:none;border-color:Highlight}.data-grid th.sortable:hover,\n .data-grid tbody tr.revealed:hover,\n .data-grid tbody tr.revealed.selected,\n .striped-data-grid .revealed:hover.data-grid-data-grid-node:nth-child(odd):not(.dirty, .selected),\n .striped-data-grid-starts-with-odd .revealed:hover.data-grid-data-grid-node:nth-child(even):not(.dirty, .selected),\n .request-cookies-view tr.revealed:hover.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(2n),\n .cookies-table tr.revealed:hover.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(odd){forced-color-adjust:none;background-color:Highlight}.data-grid tbody tr.revealed:hover *,\n .data-grid tbody tr.revealed.selected *,\n .data-grid tbody tr.revealed:focus *,\n .data-grid tbody tr.revealed:hover .heap-object-tag{color:HighlightText}.data-grid th{background-color:canvas;border-color:Highlight}}\n/*# sourceURL=${import.meta.resolve("./dataGrid.css")} */\n`};const a={expanded:"expanded",collapsed:"collapsed",sRowS:"{PH1} Row {PH2}",rowsS:"Rows: {PH1}",sSUseTheUpAndDownArrowKeysTo:"{PH1} {PH2}, use the up and down arrow keys to navigate and interact with the rows of the table; Use browse mode to read cell by cell.",sortByString:"Sort By",resetColumns:"Reset Columns",headerOptions:"Header Options",refresh:"Refresh",addNew:"Add new",editS:'Edit "{PH1}"',delete:"Delete",levelS:"level {PH1}",checked:"checked",emptyRowCreated:"An empty table row has been created. You may double click or use context menu to edit.",enterToSort:"Column sort state: {PH1}. Press enter to apply sorting filter",sortableColumn:"Sortable column. Press enter to apply sorting filter"},l=t.i18n.registerUIStrings("ui/legacy/components/data_grid/DataGrid.ts",a),d=t.i18n.getLocalizedString.bind(void 0,l),h=new WeakMap,c=new WeakMap,u=new WeakMap,g=new WeakMap,p=new WeakMap;class b extends e.ObjectWrapper.ObjectWrapper{element;displayName;editCallback;deleteCallback;refreshCallback;dataTableHeaders;scrollContainerInternal;dataContainerInternal;dataTable;inline;columnsArray;columns;visibleColumnsArray;cellClass;dataTableHeadInternal;headerRow;dataTableColumnGroup;dataTableBody;topFillerRow;bottomFillerRow;editing;selectedNode;expandNodesWhenArrowing;indentWidth;resizers;columnWidthsInitialized;cornerWidth;resizeMethod;headerContextMenuCallback;rowContextMenuCallback;elementToDataGridNode;disclosureColumnId;sortColumnCell;rootNodeInternal;editingNode;columnWeightsSetting;creationNode;currentResizer;dataGridWidget;constructor(e){super();const{displayName:t,columns:i,deleteCallback:o,refreshCallback:s}=e;this.element=document.createElement("div"),this.element.classList.add("data-grid"),this.element.tabIndex=0,this.element.addEventListener("keydown",this.keyDown.bind(this),!1),this.element.addEventListener("contextmenu",this.contextMenu.bind(this),!0),this.element.addEventListener("focusin",(e=>{this.updateGridAccessibleNameOnFocus(),e.consume(!0)})),this.element.addEventListener("focusout",(e=>{e.consume(!0)})),r.ARIAUtils.markAsApplication(this.element),this.displayName=t,this.deleteCallback=o,this.refreshCallback=s,this.dataTableHeaders={},this.dataContainerInternal=this.element.createChild("div","data-container"),this.dataTable=this.dataContainerInternal.createChild("table","data"),this.scrollContainerInternal=this.dataContainerInternal,this.dataTable.addEventListener("dblclick",this.ondblclick.bind(this),!1),this.dataTable.addEventListener("mousedown",this.mouseDownInDataTable.bind(this)),this.dataTable.addEventListener("click",this.clickInDataTable.bind(this),!0),this.inline=!1,this.columnsArray=[],this.columns={},this.visibleColumnsArray=i,i.forEach((e=>this.innerAddColumn(e))),this.cellClass=null,this.dataTableColumnGroup=this.dataTable.createChild("colgroup"),this.dataTableHeadInternal=this.dataTable.createChild("thead"),this.headerRow=this.dataTableHeadInternal.createChild("tr"),this.dataTableBody=this.dataTable.createChild("tbody"),this.topFillerRow=this.dataTableBody.createChild("tr","data-grid-filler-row revealed"),r.ARIAUtils.setHidden(this.topFillerRow,!0),this.bottomFillerRow=this.dataTableBody.createChild("tr","data-grid-filler-row revealed"),r.ARIAUtils.setHidden(this.bottomFillerRow,!0),this.setVerticalPadding(0,0,!0),this.refreshHeader(),this.editing=!1,this.selectedNode=null,this.expandNodesWhenArrowing=!0,this.setRootNode(new y),this.setHasSelection(!1),this.indentWidth=15,this.resizers=[],this.columnWidthsInitialized=!1,this.cornerWidth=m,this.resizeMethod="nearest",this.headerContextMenuCallback=null,this.rowContextMenuCallback=null,this.elementToDataGridNode=new WeakMap}setEditCallback(e,t){this.editCallback=e}firstSelectableNode(){let e=this.rootNodeInternal;for(;e&&!e.selectable;)e=e.traverseNextNode(!0)||void 0;return e}lastSelectableNode(){let e=this.rootNodeInternal,t=this.rootNodeInternal;for(;t;)t.selectable&&(e=t),t=t.traverseNextNode(!0)||void 0;return e}setElementContent(e,t){const i=this.columnIdFromNode(e);if(!i)return;const o=this.columns[i],r=e.parentElement;let s;r&&(s=this.elementToDataGridNode.get(r)),"Boolean"===o.dataType?b.setElementBoolean(e,Boolean(t),s):null!==t&&b.setElementText(e,t,Boolean(o.longText),s)}static setElementText(e,t,o,s){o&&t.length>1e3?(e.textContent=i.StringUtilities.trimEndWithMaxLength(t,1e3),r.Tooltip.Tooltip.install(e,t),h.set(e,t)):(e.textContent=t,r.Tooltip.Tooltip.install(e,""),h.delete(e)),s&&b.updateNodeAccessibleText(s)}static setElementBoolean(e,t,i){e.textContent=t?"✓":"",r.Tooltip.Tooltip.install(e,""),i&&b.updateNodeAccessibleText(i)}static updateNodeAccessibleText(e){let t="",i=e.elementInternal?.children[0]||null;if(i){for(;i&&!i.classList.contains("corner");){let o=null;for(const e of i.classList)if(e.includes("-column")){o=e.substring(0,e.indexOf("-column"));break}if(o&&e.dataGrid){const r=e.dataGrid.columns[o];r&&(t+=`${r.title}: ${i.textContent}, `)}i=i.nextElementSibling}t.length>0&&(t=t.substring(0,t.length-2)),e.nodeAccessibleText=t}}setStriped(e){this.element.classList.toggle("striped-data-grid",e)}setFocusable(e){this.element.tabIndex=e?0:-1,!1===e&&r.ARIAUtils.removeRole(this.element)}setHasSelection(e){this.element.classList.toggle("no-selection",!e)}announceSelectedGridNode(){if(this.element===i.DOMUtilities.deepActiveElement(this.element.ownerDocument)&&this.selectedNode?.existingElement()){let e;this.selectedNode.hasChildren()&&(e=this.selectedNode.expanded?d(a.expanded):d(a.collapsed));const t=e?`${this.selectedNode.nodeAccessibleText}, ${e}`:this.selectedNode.nodeAccessibleText;r.ARIAUtils.alert(t)}}getNumberOfRows(){return this.rootNodeInternal?this.enumerateChildren(this.rootNodeInternal,[],1).length:0}updateGridAccessibleNameOnFocus(){let e;if(this.selectedNode?.existingElement()){let t="";this.selectedNode.hasChildren()&&(t=this.selectedNode.expanded?d(a.expanded):d(a.collapsed));e=`${d(a.sRowS,{PH1:this.displayName,PH2:t})} ${this.selectedNode.nodeAccessibleText}`}else{if(!this.rootNodeInternal)return;const t=this.getNumberOfRows(),i=d(a.rowsS,{PH1:t});e=d(a.sSUseTheUpAndDownArrowKeysTo,{PH1:this.displayName,PH2:i})}r.ARIAUtils.alert(e)}innerAddColumn(e,t){e.defaultWeight=e.weight;const s=e.id;s in this.columns&&this.innerRemoveColumn(s),void 0===t&&(t=this.columnsArray.length),this.columnsArray.splice(t,0,e),this.columns[s]=e,e.disclosure&&(this.disclosureColumnId=s);const n=document.createElement("th");n.setAttribute("jslog",`${o.tableHeader().track({click:e.sortable,resize:!0}).context(i.StringUtilities.toKebabCase(s))}`),n.className=s+"-column",n.setAttribute("tabindex","0"),n.setAttribute("role","columnheader"),c.set(n,s),this.dataTableHeaders[s]=n;const l=document.createElement("div");if(e.titleDOMFragment?l.appendChild(e.titleDOMFragment):l.textContent=e.title||null,n.appendChild(l),e.sort&&(n.classList.add(e.sort),this.sortColumnCell=n),e.sortable){n.addEventListener("click",this.clickInHeaderCell.bind(this),!1),n.addEventListener("keydown",this.keydownHeaderCell.bind(this),!1),n.classList.add("sortable");const t=document.createElement("span");t.className="sort-order-icon",n.createChild("div","sort-order-icon-container").appendChild(t),e.title&&r.ARIAUtils.setLabel(n,d(a.sortableColumn))}}addColumn(e,t){this.innerAddColumn(e,t)}innerRemoveColumn(e){if(!this.columns[e])return;delete this.columns[e];const t=this.columnsArray.findIndex((t=>t.id===e));this.columnsArray.splice(t,1);const i=this.dataTableHeaders[e];i.parentElement&&i.parentElement.removeChild(i),delete this.dataTableHeaders[e]}removeColumn(e){this.innerRemoveColumn(e)}setCellClass(e){this.cellClass=e}refreshHeader(){this.dataTableColumnGroup.removeChildren(),this.headerRow.removeChildren(),this.topFillerRow.removeChildren(),this.bottomFillerRow.removeChildren();for(let e=0;e<this.visibleColumnsArray.length;++e){const t=this.visibleColumnsArray[e],i=t.id,o=this.dataTableColumnGroup.createChild("col");t.width&&(o.style.width=t.width),this.headerRow.appendChild(this.dataTableHeaders[i]);const r=this.topFillerRow.createChild("th","top-filler-td");r.textContent=t.title||null,r.scope="col";const s=this.bottomFillerRow.createChild("td","bottom-filler-td");c.set(s,i)}const e=this.headerRow.createChild("th","corner");r.ARIAUtils.setHidden(e,!0);const t=this.topFillerRow.createChild("th","corner");t.classList.add("top-filler-td"),t.scope="col",this.bottomFillerRow.createChild("td","corner").classList.add("bottom-filler-td"),this.dataTableColumnGroup.createChild("col","corner")}setVerticalPadding(e,t,i=!1){const o=e+"px",r=e||t?t+"px":"auto";this.topFillerRow.style.height===o&&this.bottomFillerRow.style.height===r||(this.topFillerRow.style.height=o,this.bottomFillerRow.style.height=r,i||this.dispatchEventToListeners("PaddingChanged"))}setRootNode(e){this.rootNodeInternal&&(this.rootNodeInternal.removeChildren(),this.rootNodeInternal.dataGrid=null,this.rootNodeInternal.isRoot=!1),this.rootNodeInternal=e,e.isRoot=!0,e.setHasChildren(!1),e.expandedInternal=!0,e.revealedInternal=!0,e.selectable=!1,e.dataGrid=this}rootNode(){let e=this.rootNodeInternal;return e||(e=new y,this.setRootNode(e)),e}isColumnEditable(e){const t=this.columns[e];return Boolean(t&&t.editable&&this.editCallback)}ondblclick(e){if(!this.editCallback||this.editing||this.editingNode)return;const t=this.columnIdFromNode(e.target);t&&this.isColumnEditable(t)&&this.startEditing(e.target)}startEditingColumnOfDataGridNode(e,t){this.editing=!0,this.editingNode=e,this.editingNode.select();const i=this.editingNode.element();if(!i)return;const o=i.children[t],s=h.get(o);s&&(o.textContent=s);const n=this.visibleColumnsArray[t];if("Boolean"===n.dataType){const t=r.UIUtils.CheckboxLabel.create(void 0,e.data[n.id]);r.ARIAUtils.setLabel(t,n.title||"");let i=!1;t.style.height="100%";const s=t.checkboxElement;s.classList.add("inside-datagrid");const a=s.checked;s.addEventListener("change",(()=>{i=!0,this.editingCommitted(o,s.checked,a,void 0,"forward")}),!1),s.addEventListener("keydown",(e=>{if("Tab"===e.key)return e.consume(!0),i=!0,this.editingCommitted(o,s.checked,a,void 0,e.shiftKey?"backward":"forward");" "===e.key?(e.consume(!0),s.checked=!s.checked):"Enter"===e.key&&(e.consume(!0),i=!0,this.editingCommitted(o,s.checked,a,void 0,"forward"))}),!1),s.addEventListener("blur",(()=>{i||this.editingCommitted(o,s.checked,s.checked,void 0,"next")}),!1),o.innerHTML="",o.appendChild(t),s.focus()}else{r.InplaceEditor.InplaceEditor.startEditing(o,this.startEditingConfig(o));const e=o.getComponentSelection();e&&e.selectAllChildren(o)}}startEditingNextEditableColumnOfDataGridNode(e,t,i){const o=this.columns[t],r=this.visibleColumnsArray.indexOf(o),s=this.nextEditableColumn(r,!1,i);-1!==s&&this.startEditingColumnOfDataGridNode(e,s)}startEditing(e){if(!r.UIUtils.enclosingNodeOrSelfWithNodeName(e,"td"))return;if(this.editingNode=this.dataGridNodeFromNode(e),!this.editingNode){if(!this.creationNode)return;this.editingNode=this.creationNode}if(this.editingNode instanceof C&&this.editingNode.isCreationNode)return void this.startEditingColumnOfDataGridNode(this.editingNode,this.nextEditableColumn(-1));const t=this.columnIdFromNode(e);if(!t)return;const i=this.columns[t],o=this.visibleColumnsArray.indexOf(i);this.editingNode&&this.startEditingColumnOfDataGridNode(this.editingNode,o)}renderInline(){this.element.classList.add("inline"),this.cornerWidth=0,this.inline=!0,this.updateWidths()}startEditingConfig(e){return new r.InplaceEditor.Config(this.editingCommitted.bind(this),this.editingCancelled.bind(this),void 0)}editingCommitted(e,t,i,o,r){const s=this.columnIdFromNode(e);if(!s)return void this.editingCancelled(e);const n=this.columns[s],a=this.visibleColumnsArray.indexOf(n);if(!this.editingNode)return;const l=this.editingNode.data[s],d=this.editingNode;function h(e){if(r){if("forward"===r){const t=this.nextEditableColumn(-1),i=d instanceof C&&d.isCreationNode;if(i&&a===t&&!e)return;const o=this.nextEditableColumn(a);if(-1!==o)return void this.startEditingColumnOfDataGridNode(d,o);const r=d.traverseNextNode(!0,null,!0);return r?void this.startEditingColumnOfDataGridNode(r,t):i&&e&&this.creationNode?(this.addCreationNode(!1),void this.startEditingColumnOfDataGridNode(this.creationNode,t)):void 0}if("backward"!==r);else{const e=this.nextEditableColumn(a,!0);if(-1!==e)return void this.startEditingColumnOfDataGridNode(d,e);const t=this.nextEditableColumn(this.visibleColumnsArray.length,!0),i=d.traversePreviousNode(!0,!0);i&&this.startEditingColumnOfDataGridNode(i,t)}}}if(this.setElementContent(e,t),l===t)return this.editingCancelled(e),void h.call(this,!1);this.editingNode.data[s]=t,this.editCallback&&(this.editCallback(this.editingNode,s,l,t,r),this.editingNode instanceof C&&this.editingNode.isCreationNode&&this.addCreationNode(!1),this.editingCancelled(e),h.call(this,!0))}editingCancelled(e){this.editing=!1,this.editingNode=null}nextEditableColumn(e,t,i){const o=t?-1:1,r=i?e:e+o,s=this.visibleColumnsArray;for(let e=r;e>=0&&e<s.length;e+=o)if(this.isColumnEditable(s[e].id))return e;return-1}sortColumnId(){return this.sortColumnCell&&c.get(this.sortColumnCell)||null}sortOrder(){return!this.sortColumnCell||this.sortColumnCell.classList.contains(f.Ascending)?f.Ascending:this.sortColumnCell.classList.contains(f.Descending)?f.Descending:null}isSortOrderAscending(){return!this.sortColumnCell||this.sortColumnCell.classList.contains(f.Ascending)}autoSizeWidths(e,t,i){t&&(t=Math.min(t,Math.floor(100/e.length)));let o=0;for(let t=0;t<e.length;++t)o+=e[t];let r=0;for(let s=0;s<e.length;++s){let n=Math.round(100*e[s]/o);t&&n<t?n=t:i&&n>i&&(n=i),r+=n,e[s]=n}let s=r-100;for(;t&&s>0;)for(let i=0;i<e.length&&(!(e[i]>t)||(--e[i],--s,s));++i);for(;i&&s<0;)for(let t=0;t<e.length&&(!(e[t]<i)||(++e[t],++s,s));++t);return e}autoSizeColumns(e,t,i){let o=[];for(let e=0;e<this.columnsArray.length;++e)o.push((this.columnsArray[e].title||"").length);if(i=i||0,!this.rootNodeInternal)return;const r=this.enumerateChildren(this.rootNodeInternal,[],i+1);for(let e=0;e<r.length;++e){const t=r[e];for(let e=0;e<this.columnsArray.length;++e){const i=String(t.data[this.columnsArray[e].id]);i.length>o[e]&&(o[e]=i.length)}}o=this.autoSizeWidths(o,e,t);for(let e=0;e<this.columnsArray.length;++e)this.columnsArray[e].weight=o[e];this.columnWidthsInitialized=!1,this.updateWidths()}enumerateChildren(e,t,i){if(e.isRoot||t.push(e),!i)return[];for(let o=0;o<e.children.length;++o)this.enumerateChildren(e.children[o],t,i-1);return t}onResize(){this.updateWidths()}updateWidths(){if(!this.columnWidthsInitialized&&this.element.offsetWidth){const e=this.element.offsetWidth-this.cornerWidth,t=this.dataTableHeadInternal.rows[0].cells.length-1;for(let i=0;i<t;i++){const t=this.visibleColumnsArray[i];t.weight||(t.weight=100*this.getPreferredWidth(i)/e||10)}this.columnWidthsInitialized=!0}this.applyColumnWeights()}indexOfVisibleColumn(e){return this.visibleColumnsArray.findIndex((t=>t.id===e))}setName(t){this.columnWeightsSetting=e.Settings.Settings.instance().createSetting("data-grid-"+t+"-column-weights",{}),this.loadColumnWeights()}resetColumnWeights(){for(const e of this.columnsArray)e.defaultWeight&&(e.weight=e.defaultWeight);this.applyColumnWeights(),this.saveColumnWeights()}loadColumnWeights(){if(!this.columnWeightsSetting)return;const e=this.columnWeightsSetting.get();for(let t=0;t<this.columnsArray.length;++t){const i=this.columnsArray[t],o=e[i.id];o&&(i.weight=o)}this.applyColumnWeights()}saveColumnWeights(){if(!this.columnWeightsSetting)return;const e={};for(let t=0;t<this.columnsArray.length;++t){const i=this.columnsArray[t];e[i.id]=i.weight}this.columnWeightsSetting.set(e)}wasShown(){this.loadColumnWeights()}willHide(){}getPreferredWidth(e){return u.get(this.dataTableColumnGroup.children[e])||this.dataTableHeadInternal.rows[0].cells[e].offsetWidth}applyColumnWeights(){let e=this.element.offsetWidth-this.cornerWidth;if(e<=0)return;let t=0;const i=[];for(let o=0;o<this.visibleColumnsArray.length;++o){if(this.visibleColumnsArray[o].fixedWidth){const t=this.getPreferredWidth(o);i[o]=t,e-=t}else t+=this.visibleColumnsArray[o].weight||0}let o=0,r=0;for(let s=0;s<this.visibleColumnsArray.length;++s){const n=this.visibleColumnsArray[s];let a;if(n.fixedWidth)a=i[s];else{o+=n.weight||0;const i=o*e/t|0;a=Math.max(i-r,14),r=i}this.setPreferredWidth(s,a)}this.positionResizers()}setColumnsVisibility(e){this.visibleColumnsArray=[];for(const t of this.columnsArray)e.has(t.id)&&this.visibleColumnsArray.push(t);this.refreshHeader(),this.applyColumnWeights();const t=this.enumerateChildren(this.rootNode(),[],-1);for(const e of t)e.refresh()}get scrollContainer(){return this.scrollContainerInternal}positionResizers(){const e=this.dataTableColumnGroup.children.length-1,t=[],i=this.resizers;for(;i.length>e-1;){const e=i.pop();e&&e.remove()}for(let i=0;i<e-1;i++)t[i]=(t[i-1]||0)+this.dataTableHeadInternal.rows[0].cells[i].offsetWidth;for(let o=0;o<e-1;o++){let e=i[o];e||(e=document.createElement("div"),p.set(e,o),e.classList.add("data-grid-resizer"),r.UIUtils.installDragHandle(e,this.startResizerDragging.bind(this),this.resizerDragging.bind(this),this.endResizerDragging.bind(this),"col-resize"),this.element.appendChild(e),i.push(e)),g.get(e)!==t[o]&&(g.set(e,t[o]),e.style.left=t[o]+"px")}}addCreationNode(e){this.creationNode&&(this.creationNode.isCreationNode=!1);const t={};for(const e in this.columns)t[e]=null;this.creationNode=new C(t,e),r.ARIAUtils.alert(d(a.emptyRowCreated)),this.rootNode().appendChild(this.creationNode)}keyDown(e){if(!(e instanceof KeyboardEvent))return;if(this.selectedNode&&this.selectedNode.element().tabIndex<0&&o.logKeyDown(this.selectedNode.element(),e),e.shiftKey||e.metaKey||e.ctrlKey||this.editing||r.UIUtils.isEditing())return;let t,s=!1;if(this.selectedNode)if("ArrowUp"!==e.key||e.altKey)if("ArrowDown"!==e.key||e.altKey){if("ArrowLeft"===e.key)this.selectedNode.expanded?(e.altKey?this.selectedNode.collapseRecursively():this.selectedNode.collapse(),s=!0):this.selectedNode.parent&&!this.selectedNode.parent.isRoot&&(s=!0,this.selectedNode.parent.selectable?(t=this.selectedNode.parent,s=!!t):this.selectedNode.parent&&this.selectedNode.parent.collapse());else if("ArrowRight"===e.key){if(!this.expandNodesWhenArrowing)return;this.selectedNode.revealed?this.selectedNode.hasChildren()&&(s=!0,this.selectedNode.expanded?(t=this.selectedNode.children[0],s=!!t):e.altKey?this.selectedNode.expandRecursively():this.selectedNode.expand()):(this.selectedNode.reveal(),s=!0)}else if(8===e.keyCode||46===e.keyCode)this.deleteCallback&&(s=!0,this.deleteCallback(this.selectedNode));else if("Enter"===e.key)if(this.editCallback){s=!0;const e=this.selectedNode.element();if(!e)return;this.startEditing(e.children[this.nextEditableColumn(-1)])}else this.dispatchEventToListeners("OpenedNode",this.selectedNode)}else{for(t=this.selectedNode.traverseNextNode(!0);t&&!t.selectable;)t=t.traverseNextNode(!0);s=!!t}else{for(t=this.selectedNode.traversePreviousNode(!0);t&&!t.selectable;)t=t.traversePreviousNode(!0);s=!!t}else"ArrowUp"!==e.key||e.altKey?"ArrowDown"!==e.key||e.altKey||(t=this.firstSelectableNode()):t=this.lastSelectableNode(),s=!!t;t&&(t.reveal(),t.select());const n=i.DOMUtilities.deepActiveElement(this.element.ownerDocument);s&&this.element!==n&&!this.element.contains(n)&&this.element.focus(),s&&e.consume(!0)}updateSelectionBeforeRemoval(e,t){let i,o=this.selectedNode;for(;o&&o!==e;)o=o.parent;if(o){for(o=e;o&&!o.nextSibling;)o=o.parent;for(o&&(i=o.nextSibling);i&&!i.selectable;)i=i.traverseNextNode(!0);if(!i||i.isCreationNode){if(!e)return;for(i=e.traversePreviousNode(!0);i&&!i.selectable;)i=i.traversePreviousNode(!0)}i?(i.reveal(),i.select()):this.selectedNode&&this.selectedNode.deselect()}}dataGridNodeFromNode(e){const t=r.UIUtils.enclosingNodeOrSelfWithNodeName(e,"tr");return t&&this.elementToDataGridNode.get(t)||null}columnIdFromNode(e){const t=r.UIUtils.enclosingNodeOrSelfWithNodeName(e,"td");return t&&c.get(t)||null}clickInHeaderCell(e){const t=r.UIUtils.enclosingNodeOrSelfWithNodeName(e.target,"th");t&&this.sortByColumnHeaderCell(t)}keydownHeaderCell(e){"Enter"!==e.key&&" "!==e.key||this.clickInHeaderCell(e)}sortByColumnHeaderCell(e){if(!c.has(e)||!e.classList.contains("sortable"))return;let t=f.Ascending;e===this.sortColumnCell&&this.isSortOrderAscending()&&(t=f.Descending),this.sortColumnCell&&(this.sortColumnCell.classList.remove(f.Ascending,f.Descending),this.sortColumnCell.removeAttribute("aria-sort")),this.sortColumnCell=e,e.classList.add(t);const i=this.isSortOrderAscending()?"ascending":"descending";e.setAttribute("aria-sort",i),r.ARIAUtils.alert(d(a.enterToSort,{PH1:i||""})),this.dispatchEventToListeners("SortingChanged")}markColumnAsSortedBy(e,t){this.sortColumnCell&&this.sortColumnCell.classList.remove(f.Ascending,f.Descending),this.sortColumnCell=this.dataTableHeaders[e],this.sortColumnCell.classList.add(t)}headerTableHeader(e){return this.dataTableHeaders[e]}mouseDownInDataTable(e){const t=e.target,i=this.dataGridNodeFromNode(t);if(!i||!i.selectable||i.isEventWithinDisclosureTriangle(e))return;const o=this.columnIdFromNode(t);o&&this.columns[o].nonSelectable||(e.metaKey?i.selected?i.deselect():i.select():(i.select(),this.dispatchEventToListeners("OpenedNode",i)))}setHeaderContextMenuCallback(e){this.headerContextMenuCallback=e}setRowContextMenuCallback(e){this.rowContextMenuCallback=e}contextMenu(e){if(!(e instanceof MouseEvent))return;const t=new r.ContextMenu.ContextMenu(e),o=e.target,s=this.visibleColumnsArray.filter((e=>e.sortable&&e.title)),n=this.columnsArray.filter((e=>-1===s.indexOf(e)&&e.allowInSortByEvenWhenHidden)),l=[...s,...n];if(l.length>0){const e=t.defaultSection().appendSubMenuItem(d(a.sortByString),!1,"sort-by");for(const t of l){const o=this.dataTableHeaders[t.id];e.defaultSection().appendItem(t.title,this.sortByColumnHeaderCell.bind(this,o),{jslogContext:i.StringUtilities.toKebabCase(t.id)})}}if(o.isSelfOrDescendant(this.dataTableHeadInternal))return this.headerContextMenuCallback&&this.headerContextMenuCallback(t),t.defaultSection().appendItem(d(a.resetColumns),this.resetColumnWeights.bind(this),{jslogContext:"reset-columns"}),void t.show();const h=t.defaultSection().appendSubMenuItem(d(a.headerOptions),!1,"header-options");this.headerContextMenuCallback&&this.headerContextMenuCallback(h),h.defaultSection().appendItem(d(a.resetColumns),this.resetColumnWeights.bind(this),{jslogContext:"reset-columns"});const c=0===e.button,u=c?this.selectedNode:this.dataGridNodeFromNode(o),g=this.selectedNode?.existingElement();if(c&&g){const e=g.getBoundingClientRect();if(e){const i=(e.right+e.left)/2,o=(e.bottom+e.top)/2;t.setX(i),t.setY(o)}}if(!this.refreshCallback||u&&u===this.creationNode||t.defaultSection().appendItem(d(a.refresh),this.refreshCallback.bind(this),{jslogContext:"refresh"}),u&&u.selectable&&!u.isEventWithinDisclosureTriangle(e)){if(this.editCallback)if(u===this.creationNode){const e=this.nextEditableColumn(-1),i=u.element().children[e];t.defaultSection().appendItem(d(a.addNew),this.startEditing.bind(this,i),{jslogContext:"add-new"})}else if(c){const e=this.nextEditableColumn(-1);if(e>-1){const i=this.visibleColumnsArray[e];i&&this.isColumnEditable(i.id)&&t.defaultSection().appendItem(d(a.editS,{PH1:String(i.title)}),this.startEditingColumnOfDataGridNode.bind(this,u,e),{jslogContext:"edit"})}}else{const e=this.columnIdFromNode(o);e&&this.isColumnEditable(e)&&t.defaultSection().appendItem(d(a.editS,{PH1:String(this.columns[e].title)}),this.startEditing.bind(this,o),{jslogContext:"edit"})}this.deleteCallback&&u!==this.creationNode&&t.defaultSection().appendItem(d(a.delete),this.deleteCallback.bind(this,u),{jslogContext:"delete"}),this.rowContextMenuCallback&&this.rowContextMenuCallback(t,u)}t.show()}clickInDataTable(e){const t=this.dataGridNodeFromNode(e.target);t&&t.hasChildren()&&t.isEventWithinDisclosureTriangle(e)&&(t.expanded?e.altKey?t.collapseRecursively():t.collapse():e.altKey?t.expandRecursively():t.expand())}setResizeMethod(e){this.resizeMethod=e}startResizerDragging(e){return this.currentResizer=e.target,!0}endResizerDragging(){this.currentResizer=null,this.saveColumnWeights()}resizerDragging(e){const t=this.currentResizer;if(!t)return;let o=e.clientX-this.element.getBoundingClientRect().left,r=0,s=p.get(t);if(void 0===s)return;let n=s+1;for(let e=0;e<s;e++)r+=this.getPreferredWidth(e);"last"===this.resizeMethod?n=this.resizers.length:"first"===this.resizeMethod&&(r+=this.getPreferredWidth(s)-this.getPreferredWidth(0),s=0);const a=r+this.getPreferredWidth(s)+this.getPreferredWidth(n),l=r+v,d=a-v;if(l>d)return;o=i.NumberUtilities.clamp(o,l,d);const h=o-x;g.set(t,h),t.style.left=h+"px",this.setPreferredWidth(s,o-r),this.setPreferredWidth(n,a-o);const c=this.visibleColumnsArray[s],u=this.visibleColumnsArray[n];if(c.weight&&u.weight){const e=c.weight+u.weight,t=a-r;c.weight=(o-r)*e/t,u.weight=(a-o)*e/t}this.positionResizers(),this.updateWidths(),e.preventDefault()}setPreferredWidth(e,t){const i=this.dataTableColumnGroup.children[e];u.set(i,t),i.style.width=t+"px"}columnOffset(e){if(!this.element.offsetWidth)return 0;for(let t=1;t<this.visibleColumnsArray.length;++t)if(e===this.visibleColumnsArray[t].id&&this.resizers[t-1])return g.get(this.resizers[t-1])||0;return 0}asWidget(e){return this.dataGridWidget||(this.dataGridWidget=new w(this,e)),this.dataGridWidget}topFillerRowElement(){return this.topFillerRow}headerHeightInScroller(){return this.scrollContainer===this.dataContainerInternal?this.headerHeight():0}headerHeight(){return this.dataTableHeadInternal.offsetHeight}revealNode(e){e.scrollIntoViewIfNeeded(!1),e.offsetTop-this.scrollContainer.scrollTop<this.headerHeight()&&(this.scrollContainer.scrollTop=e.offsetTop-this.headerHeight())}}const m=14;var f;!function(e){e.Ascending="sort-ascending",e.Descending="sort-descending"}(f||(f={}));const v=34,x=3;class y{elementInternal=null;expandedInternal=!1;selectedInternal=!1;dirty=!1;inactive=!1;highlighted=!1;depthInternal;revealedInternal;attachedInternal=!1;savedPosition=null;shouldRefreshChildrenInternal=!0;children=[];dataGrid=null;parent=null;previousSibling=null;nextSibling=null;#e=20;selectable=!0;isRoot=!1;nodeAccessibleText="";cellAccessibleTextMap=new Map;isCreationNode=!1;dataInternal;hasChildrenInternal;constructor(e,t){this.dataInternal=e||{},this.hasChildrenInternal=t||!1}element(){if(!this.elementInternal){const e=this.createElement();this.createCells(e)}return this.elementInternal}createElement(){return this.elementInternal=document.createElement("tr"),this.elementInternal.setAttribute("jslog",`${o.tableRow().track({keydown:"ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space"})}`),this.elementInternal.classList.add("data-grid-data-grid-node"),this.dataGrid&&this.dataGrid.elementToDataGridNode.set(this.elementInternal,this),this.hasChildrenInternal&&this.elementInternal.classList.add("parent"),this.expanded&&this.elementInternal.classList.add("expanded"),this.selected&&this.elementInternal.classList.add("selected"),this.revealed&&this.elementInternal.classList.add("revealed"),this.dirty&&this.elementInternal.classList.add("dirty"),this.inactive&&this.elementInternal.classList.add("inactive"),this.highlighted&&this.elementInternal.classList.add("highlighted"),this.isCreationNode&&this.elementInternal.classList.add("creation-node"),this.elementInternal}existingElement(){return this.elementInternal||null}resetElement(){this.elementInternal=null}createCells(e){if(e.removeChildren(),!this.dataGrid||!this.parent)return;const t=this.dataGrid.visibleColumnsArray,i=[];!this.hasChildrenInternal&&this.parent.isRoot||i.push(d(a.levelS,{PH1:this.depth+1}));for(let o=0;o<t.length;++o){const r=t[o],s=e.appendChild(this.createCell(r.id));"Boolean"===r.dataType&&!0===this.data[r.id]&&this.setCellAccessibleName(d(a.checked),s,r.id),i.push(`${r.title}: ${this.cellAccessibleTextMap.get(r.id)||s.textContent}`)}this.nodeAccessibleText=i.join(", ");const o=this.createTDWithClass("corner");r.ARIAUtils.setHidden(o,!0),e.appendChild(o)}get data(){return this.dataInternal}set data(e){this.dataInternal=e||{},this.refresh()}get revealed(){if(void 0!==this.revealedInternal)return this.revealedInternal;let e=this.parent;for(;e&&!e.isRoot;){if(!e.expanded)return this.revealedInternal=!1,!1;e=e.parent}return this.revealed=!0,!0}set revealed(e){if(this.revealedInternal!==e){this.revealedInternal=e,this.elementInternal&&this.elementInternal.classList.toggle("revealed",this.revealedInternal);for(let t=0;t<this.children.length;++t)this.children[t].revealed=e&&this.expanded}}isDirty(){return this.dirty}setDirty(e){this.dirty!==e&&(this.dirty=e,this.elementInternal&&(e?this.elementInternal.classList.add("dirty"):this.elementInternal.classList.remove("dirty")))}setInactive(e){this.inactive!==e&&(this.inactive=e,this.elementInternal&&(e?this.elementInternal.classList.add("inactive"):this.elementInternal.classList.remove("inactive")))}setHighlighted(e){this.highlighted!==e&&(this.highlighted=e,this.elementInternal&&(e?this.elementInternal.classList.add("highlighted"):this.elementInternal.classList.remove("highlighted")))}hasChildren(){return this.hasChildrenInternal}setHasChildren(e){this.hasChildrenInternal!==e&&(this.hasChildrenInternal=e,this.elementInternal&&(this.elementInternal.classList.toggle("parent",this.hasChildrenInternal),this.elementInternal.classList.toggle("expanded",this.hasChildrenInternal&&this.expanded)))}get depth(){return void 0!==this.depthInternal||(this.parent&&!this.parent.isRoot?this.depthInternal=this.parent.depth+1:this.depthInternal=0),this.depthInternal}get leftPadding(){return this.depth*(this.dataGrid?this.dataGrid.indentWidth:1)}get shouldRefreshChildren(){return this.shouldRefreshChildrenInternal}set shouldRefreshChildren(e){this.shouldRefreshChildrenInternal=e,e&&this.expanded&&this.expand()}get selected(){return this.selectedInternal}set selected(e){e?this.select():this.deselect()}get expanded(){return this.expandedInternal}set expanded(e){e?this.expand():this.collapse()}refresh(){this.dataGrid||(this.elementInternal=null),this.elementInternal&&this.createCells(this.elementInternal)}createTDWithClass(e){const t=document.createElement("td");e&&(t.className=e);const i=this.dataGrid?this.dataGrid.cellClass:null;return i&&t.classList.add(i),t}createTD(e){const t=this.createTDWithClass(e+"-column");if(c.set(t,e),this.dataGrid){const r=this.dataGrid.isColumnEditable(e);t.setAttribute("jslog",`${o.tableCell().track({click:!0,keydown:!!r&&"Enter|Space|Escape",dblclick:r,change:r}).context(i.StringUtilities.toKebabCase(e))}`);const s=this.dataGrid.columns[e].align;s&&t.classList.add(s),e===this.dataGrid.disclosureColumnId&&(t.classList.add("disclosure"),this.leftPadding&&t.style.setProperty("padding-left",this.leftPadding+"px")),r&&(t.tabIndex=0,t.ariaHasPopup="true")}return t}createCell(e){const t=this.createTD(e),i=this.data[e];return i instanceof Node?t.appendChild(i):null!==i&&this.dataGrid&&this.dataGrid.setElementContent(t,i),t}setCellAccessibleName(e,t,i){this.cellAccessibleTextMap.set(i,e);for(let e=0;e<t.children.length;e++)r.ARIAUtils.setHidden(t.children[e],!0);r.ARIAUtils.setLabel(t,e)}nodeSelfHeight(){return 20}appendChild(e){this.insertChild(e,this.children.length)}resetNode(e){delete this.depthInternal,delete this.revealedInternal,e||(this.previousSibling&&(this.previousSibling.nextSibling=this.nextSibling),this.nextSibling&&(this.nextSibling.previousSibling=this.previousSibling),this.dataGrid=null,this.parent=null,this.nextSibling=null,this.previousSibling=null,this.attachedInternal=!1)}insertChild(e,t){if(!e)throw new Error("insertChild: Node can't be undefined or null.");if(e.parent===this){const i=this.children.indexOf(e);if(i<0&&console.assert(!1,"Inconsistent DataGrid state"),i===t)return;i<t&&--t}e.remove(),this.children.splice(t,0,e),this.setHasChildren(!0),e.parent=this,e.dataGrid=this.dataGrid,e.recalculateSiblings(t),e.shouldRefreshChildrenInternal=!0;let i=e.children[0];for(;i;)i.resetNode(!0),i.dataGrid=this.dataGrid,i.attachedInternal=!1,i.shouldRefreshChildrenInternal=!0,i=i.traverseNextNode(!1,e,!0);this.expanded&&e.attach(),this.revealed||(e.revealed=!1)}remove(){this.parent&&this.parent.removeChild(this)}removeChild(e){if(!e)throw new Error("removeChild: Node can't be undefined or null.");if(e.parent!==this)throw new Error("removeChild: Node is not a child of this node.");this.dataGrid&&this.dataGrid.updateSelectionBeforeRemoval(e,!1),e.detach(),e.resetNode(),i.ArrayUtilities.removeElement(this.children,e,!0),this.children.length<=0&&this.setHasChildren(!1)}removeChildren(){this.dataGrid&&this.dataGrid.updateSelectionBeforeRemoval(this,!0);for(let e=0;e<this.children.length;++e){const t=this.children[e];t.detach(),t.resetNode()}this.children=[],this.setHasChildren(!1)}recalculateSiblings(e){if(!this.parent)return;const t=this.parent.children[e-1]||null;t&&(t.nextSibling=this),this.previousSibling=t;const i=this.parent.children[e+1]||null;i&&(i.previousSibling=this),this.nextSibling=i}collapse(){if(!this.isRoot){this.elementInternal&&this.elementInternal.classList.remove("expanded"),this.expandedInternal=!1,this.selected&&this.dataGrid&&this.dataGrid.announceSelectedGridNode();for(let e=0;e<this.children.length;++e)this.children[e].revealed=!1}}collapseRecursively(){let e=this;for(;e;)e.expanded&&e.collapse(),e=e.traverseNextNode(!1,this,!0)}populate(){}expand(){if(this.hasChildrenInternal&&!this.expandedInternal&&!this.isRoot){if(this.revealed&&!this.shouldRefreshChildrenInternal)for(let e=0;e<this.children.length;++e)this.children[e].revealed=!0;if(this.shouldRefreshChildrenInternal){for(let e=0;e<this.children.length;++e)this.children[e].detach();if(this.populate(),this.attachedInternal)for(let e=0;e<this.children.length;++e){const t=this.children[e];this.revealed&&(t.revealed=!0),t.attach()}this.shouldRefreshChildrenInternal=!1}this.elementInternal&&this.elementInternal.classList.add("expanded"),this.selected&&this.dataGrid&&this.dataGrid.announceSelectedGridNode(),this.expandedInternal=!0}}expandRecursively(){let e=this;for(;e;)e.expand(),e=e.traverseNextNode(!1,this)}reveal(){if(this.isRoot||!this.dataGrid)return;let e=this.parent;for(;e&&!e.isRoot;)e.expanded||e.expand(),e=e.parent;this.dataGrid.revealNode(this.element())}select(e){this.dataGrid&&this.selectable&&!this.selected&&(this.dataGrid.selectedNode&&this.dataGrid.selectedNode.deselect(),this.selectedInternal=!0,this.dataGrid.selectedNode=this,this.elementInternal&&(this.elementInternal.classList.add("selected"),this.elementInternal.focus(),this.dataGrid.setHasSelection(!0),this.dataGrid.announceSelectedGridNode()),e||this.dataGrid.dispatchEventToListeners("SelectedNode",this))}revealAndSelect(){this.isRoot||(this.reveal(),this.select())}deselect(e){this.dataGrid&&this.dataGrid.selectedNode===this&&this.selected&&(this.selectedInternal=!1,this.dataGrid.selectedNode=null,this.elementInternal&&(this.elementInternal.classList.remove("selected"),this.dataGrid.setHasSelection(!1)),e||this.dataGrid.dispatchEventToListeners("DeselectedNode"))}traverseNextNode(e,t,i,o){!i&&this.hasChildrenInternal&&this.populate(),o&&(o.depthChange=0);let r=!e||this.revealed?this.children[0]:null;if(r&&(!e||this.expanded))return o&&(o.depthChange=1),r;if(this===t)return null;if(r=!e||this.revealed?this.nextSibling:null,r)return r;for(r=this;r&&!r.isRoot&&(e&&!r.revealed||!r.nextSibling)&&r.parent!==t;)o&&(o.depthChange-=1),r=r.parent;return r&&(!e||r.revealed)?r.nextSibling:null}traversePreviousNode(e,t){let i=!e||this.revealed?this.previousSibling:null;for(!t&&i?.hasChildrenInternal&&i.populate();i&&(!e||i.revealed&&i.expanded)&&i.children[i.children.length-1];)!t&&i.hasChildrenInternal&&i.populate(),i=!e||i.revealed&&i.expanded?i.children[i.children.length-1]:null;return i||(!this.parent||this.parent.isRoot?null:this.parent)}isEventWithinDisclosureTriangle(e){if(!this.hasChildrenInternal)return!1;const t=r.UIUtils.enclosingNodeOrSelfWithNodeName(e.target,"td");if(!(t&&t instanceof HTMLElement&&t.classList.contains("disclosure")))return!1;const i=t.getBoundingClientRect().left+this.leftPadding;return e.pageX>=i&&e.pageX<=i+this.#e}attach(){if(!this.dataGrid||this.attachedInternal)return;this.attachedInternal=!0;const e=this.traversePreviousNode(!0,!0),t=e?e.element():this.dataGrid.topFillerRow;if(this.dataGrid.dataTableBody.insertBefore(this.element(),t.nextSibling),this.expandedInternal)for(let e=0;e<this.children.length;++e)this.children[e].attach()}detach(){if(this.attachedInternal){this.attachedInternal=!1,this.elementInternal&&this.elementInternal.remove();for(let e=0;e<this.children.length;++e)this.children[e].detach()}}savePosition(){if(!this.savedPosition){if(!this.parent)throw new Error("savePosition: Node must have a parent.");this.savedPosition={parent:this.parent,index:this.parent.children.indexOf(this)}}}restorePosition(){this.savedPosition&&(this.parent!==this.savedPosition.parent&&this.savedPosition.parent.insertChild(this,this.savedPosition.index),this.savedPosition=null)}}class C extends y{isCreationNode;constructor(e,t){super(e,t),this.isCreationNode=!0}}class w extends r.Widget.VBox{dataGrid;constructor(e,t){super(void 0,void 0,t),this.dataGrid=e,this.element.appendChild(e.element),this.setDefaultFocusedElement(e.element),this.registerRequiredCSS(n)}wasShown(){super.wasShown(),this.dataGrid.wasShown()}willHide(){this.dataGrid.willHide(),super.willHide()}onResize(){super.onResize(),this.dataGrid.onResize()}elementsToRestoreScrollPositionsFor(){return[this.dataGrid.scrollContainer]}}var N=Object.freeze({__proto__:null,CenterResizerOverBorderAdjustment:x,ColumnResizePadding:v,CornerWidth:m,CreationDataGridNode:C,DataGridImpl:b,DataGridNode:y,DataGridWidget:w,get Order(){return f}});let k=0;class S extends(e.ObjectWrapper.eventMixin(b)){onScrollBound;visibleNodes;enableAutoScrollToBottom=!1;keepScrollingToBottom=!1;updateIsFromUser;lastScrollTop;firstVisibleIsStriped;isStriped;filters=[];id=k++;constructor(e){super(e),this.onScrollBound=this.onScroll.bind(this),this.scrollContainer.addEventListener("scroll",this.onScrollBound,!0),this.visibleNodes=[],this.inline=!1,this.updateIsFromUser=!1,this.lastScrollTop=0,this.firstVisibleIsStriped=!1,this.isStriped=!1,this.setRootNode(new I)}setStriped(e){this.isStriped=e;let t=!0;if(this.visibleNodes.length){const e=this.filteredNodes();t=Boolean(e.indexOf(this.visibleNodes[0]))}this.updateStripesClass(t)}setFilters(e){this.filters!==e&&(this.filters=e,this.scheduleUpdate())}updateStripesClass(e){this.element.classList.toggle("striped-data-grid",!e&&this.isStriped),this.element.classList.toggle("striped-data-grid-starts-with-odd",e&&this.isStriped)}setScrollContainer(e){this.scrollContainer.removeEventListener("scroll",this.onScrollBound,!0),this.scrollContainerInternal=e,this.scrollContainer.addEventListener("scroll",this.onScrollBound,!0)}onResize(){this.keepScrollingToBottom&&(this.scrollContainer.scrollTop=this.scrollContainer.scrollHeight-this.scrollContainer.clientHeight),this.scheduleUpdate(),super.onResize()}setEnableAutoScrollToBottom(e){this.keepScrollingToBottom=this.enableAutoScrollToBottom=e}onScroll(e){this.lastScrollTop!==this.scrollContainer.scrollTop&&this.scheduleUpdate(!0)}scheduleUpdateStructure(){this.scheduleUpdate()}scheduleUpdate(e){this.updateIsFromUser=this.updateIsFromUser||Boolean(e),s.write(`ViewportDataGrid.render ${this.id}`,this.update.bind(this))}updateInstantly(){this.update()}renderInline(){this.inline=!0,super.renderInline(),this.update()}getStringifiedCellValues(e,t){return JSON.stringify(Object.entries(e).filter((([e])=>t.has(e))).map((([,e])=>e instanceof Node?e.textContent:String(e)))).toLowerCase()}testNodeWithFilter(e,t){let i=!1;const{key:o,text:r,negative:s,regex:n}=t,a=this.getStringifiedCellValues(e.data,o?new Set(o.split(",")):new Set(this.visibleColumnsArray.map((e=>e.id))));return n?i=n.test(a):r&&(i=a.includes(r.toLowerCase())),s?!i:i}testNodeWithFilters(e){for(const t of this.filters){if(!this.testNodeWithFilter(e,t))return!1}return!0}calculateVisibleNodes(e,t){const i=this.filteredNodes();if(this.inline)return{topPadding:0,bottomPadding:0,contentHeight:0,visibleNodes:i,offset:0};const o=i.length;let r=0,s=0;for(;r<o&&s+i[r].nodeSelfHeight()<t;++r)s+=i[r].nodeSelfHeight();const n=r,a=s;for(;r<o&&s<t+e;++r)s+=i[r].nodeSelfHeight();const l=r;let d=0;for(;r<o;++r)d+=i[r].nodeSelfHeight();return this.enableAutoScrollToBottom&&(this.keepScrollingToBottom=l===i.length),{topPadding:a,bottomPadding:d,contentHeight:s-a,visibleNodes:i.slice(n,l),offset:n}}getNumberOfRows(){return this.filteredNodes().length}contentHeight(){const e=this.filteredNodes();let t=0;for(let i=0,o=e.length;i<o;++i)t+=e[i].nodeSelfHeight();return t}update(){const e=this.scrollContainer.clientHeight-this.headerHeightInScroller(),t=this.contentHeight(),i=this.scrollContainer.scrollTop,o=Math.max(0,t-e);let r=i;!this.updateIsFromUser&&this.keepScrollingToBottom&&(r=o),this.updateIsFromUser=!1,r=Math.min(o,r);const s=this.calculateVisibleNodes(e,r),n=s.visibleNodes,a=new Set(n);for(let e=0;e<this.visibleNodes.length;++e){const t=this.visibleNodes[e];if(!a.has(t)&&t.attached()){const e=t.existingElement();e&&e.remove()}}let l=this.topFillerRowElement();const d=this.dataTableBody;let h=s.offset;if(n.length){const e=this.filteredNodes().indexOf(n[0]);this.updateStripesClass(Boolean(e%2)),this.keepScrollingToBottom&&-1!==e&&Boolean(e%2)!==this.firstVisibleIsStriped&&(h+=1)}this.firstVisibleIsStriped=Boolean(h%2);for(let e=0;e<n.length;++e){const t=n[e],i=t.element();t.setStriped((h+e)%2==0),i!==l.nextSibling&&d.insertBefore(i,l.nextSibling),t.revealed=!0,l=i}this.setVerticalPadding(s.topPadding,s.bottomPadding),this.lastScrollTop=r,r!==i&&(this.scrollContainer.scrollTop=r);const c=s.contentHeight<=e&&s.topPadding+s.bottomPadding===0;c!==this.element.classList.contains("data-grid-fits-viewport")&&(this.element.classList.toggle("data-grid-fits-viewport",c),this.updateWidths()),this.visibleNodes=n,this.dispatchEventToListeners("ViewportCalculated")}revealViewportNode(e){const t=this.filteredNodes(),i=t.indexOf(e);if(-1===i)return;let o=0;for(let e=0;e<i;++e)o+=t[e].nodeSelfHeight();const r=o+e.nodeSelfHeight();let s=this.scrollContainer.scrollTop;const n=this.scrollContainer.offsetHeight-this.headerHeightInScroller();s>o?(s=o,this.keepScrollingToBottom=!1):s+n<r&&(s=r-n),this.scrollContainer.scrollTop=s}filteredNodes(){return this.rootNode().flatChildren().filter(this.testNodeWithFilters.bind(this))}}class I extends y{stale;flatNodes;isStripedInternal;constructor(e,t){super(e,t),this.stale=!1,this.flatNodes=null,this.isStripedInternal=!1}element(){const e=this.existingElement(),t=e||this.createElement();return e&&!this.stale||(this.createCells(t),this.stale=!1),t}nodeSelfHeight(){const e=this.dataGrid?.topFillerRow?.nextElementSibling;return e?.classList.contains("data-grid-data-grid-node")&&e.clientHeight||super.nodeSelfHeight()}setStriped(e){this.isStripedInternal=e,this.element().classList.toggle("odd",e)}isStriped(){return this.isStripedInternal}clearFlatNodes(){this.flatNodes=null;const e=this.parent;e&&e.clearFlatNodes()}flatChildren(){if(this.flatNodes)return this.flatNodes;const e=[],t=[this.children],i=[0];let o=0;for(;o>=0;){if(t[o].length<=i[o]){o--;continue}const r=t[o][i[o]++];e.push(r),r.expanded&&r.children.length&&(o++,t[o]=r.children,i[o]=0)}return this.flatNodes=e,e}insertChild(e,t){if(this.clearFlatNodes(),e.parent===this){const i=this.children.indexOf(e);if(i<0&&console.assert(!1,"Inconsistent DataGrid state"),i===t)return;i<t&&--t}e.remove(),e.parent=this,e.dataGrid=this.dataGrid,this.children.length||this.setHasChildren(!0),this.children.splice(t,0,e),e.recalculateSiblings(t),this.expanded&&this.dataGrid&&this.dataGrid.scheduleUpdateStructure()}removeChild(e){if(this.dataGrid&&this.dataGrid.updateSelectionBeforeRemoval(e,!1),this.clearFlatNodes(),e.previousSibling&&(e.previousSibling.nextSibling=e.nextSibling),e.nextSibling&&(e.nextSibling.previousSibling=e.previousSibling),e.parent!==this)throw new Error("removeChild: Node is not a child of this node.");i.ArrayUtilities.removeElement(this.children,e,!0),e.unlink(),this.children.length||this.setHasChildren(!1),this.expanded&&this.dataGrid&&this.dataGrid.scheduleUpdateStructure()}removeChildren(){this.dataGrid&&this.dataGrid.updateSelectionBeforeRemoval(this,!0),this.clearFlatNodes();for(let e=0;e<this.children.length;++e)this.children[e].unlink();this.children=[],this.expanded&&this.dataGrid&&this.dataGrid.scheduleUpdateStructure()}unlink(){const e=this.existingElement();this.attached()&&e&&e.remove(),this.resetNode()}collapse(){if(!this.expanded)return;this.clearFlatNodes(),this.expandedInternal=!1;const e=this.existingElement();e&&e.classList.remove("expanded"),this.selected&&this.dataGrid.announceSelectedGridNode(),this.dataGrid.scheduleUpdateStructure()}expand(){this.expanded||(this.dataGrid.keepScrollingToBottom=!1,this.clearFlatNodes(),super.expand(),this.dataGrid.scheduleUpdateStructure())}traverseNextNode(e,t,i,o){const r=super.traverseNextNode(e,t,i,o);return r&&e&&!this.dataGrid.testNodeWithFilters(r)?r.traverseNextNode(e,t,i,o):r}traversePreviousNode(e,t){const i=super.traversePreviousNode(e,t);return i&&e&&!this.dataGrid.testNodeWithFilters(i)?i.traversePreviousNode(e,t):i}attached(){const e=this.existingElement();return Boolean(this.dataGrid&&e?.parentElement)}refresh(){this.attached()?(this.stale=!0,this.dataGrid.scheduleUpdate()):this.resetElement()}reveal(){this.dataGrid.revealViewportNode(this)}recalculateSiblings(e){this.clearFlatNodes(),super.recalculateSiblings(e)}}var E=Object.freeze({__proto__:null,ViewportDataGrid:S,ViewportDataGridNode:I});class A extends S{sortingFunction;constructor(e){super(e),this.sortingFunction=A.TrivialComparator,this.setRootNode(new G)}static TrivialComparator(e,t){return 0}static NumericComparator(e,t,i){const o=t.data[e],r=i.data[e],s=Number(o instanceof Node?o.textContent:o),n=Number(r instanceof Node?r.textContent:r);return s<n?-1:s>n?1:0}static StringComparator(e,t,i){const o=t.data[e],r=i.data[e],s=o instanceof Node?o.textContent:String(o),n=r instanceof Node?r.textContent:String(r);return s&&n?s<n?-1:s>n?1:0:0}static Comparator(e,t,i,o){return i.isCreationNode&&!o.isCreationNode?1:!i.isCreationNode&&o.isCreationNode?-1:t?e(o,i):e(i,o)}static create(e,t,i){const o=e.length;if(!o)return null;const r=[];for(let t=0;t<e.length;++t){const i=String(t);r.push({id:i,title:e[t],sortable:!0})}const s=[];for(let i=0;i<t.length/o;++i){const r={};for(let s=0;s<e.length;++s)r[s]=t[o*i+s];const n=new G(r);n.selectable=!1,s.push(n)}const n=new A({displayName:i,columns:r}),a=s.length,l=n.rootNode();for(let e=0;e<a;++e)l.appendChild(s[e]);return n.addEventListener("SortingChanged",(function(){const e=n.rootNode().children,t=n.sortColumnId();if(!t)return;let i=!0;for(let o=0;o<e.length;o++){const r=e[o].data[t];if(isNaN(r instanceof Node?r.textContent:r)){i=!1;break}}const o=i?A.NumericComparator:A.StringComparator;n.sortNodes(o.bind(null,t),!n.isSortOrderAscending())})),n}insertChild(e){this.rootNode().insertChildOrdered(e)}sortNodes(e,t){this.sortingFunction=A.Comparator.bind(null,e,t),this.rootNode().recalculateSiblings(0),this.rootNode().sortChildren(),this.scheduleUpdateStructure()}}class G extends I{constructor(e,t){super(e,t)}insertChildOrdered(e){const t=this.dataGrid;t&&this.insertChild(e,i.ArrayUtilities.upperBound(this.children,e,t.sortingFunction))}sortChildren(){const e=this.dataGrid;if(e){this.children.sort(e.sortingFunction);for(let e=0;e<this.children.length;++e){this.children[e].recalculateSiblings(e)}for(let e=0;e<this.children.length;++e){this.children[e].sortChildren()}}}}var T=Object.freeze({__proto__:null,SortableDataGrid:A,SortableDataGridNode:G});const R={showDBefore:"Show {PH1} before",showDAfter:"Show {PH1} after",showAllD:"Show all {PH1}"},H=t.i18n.registerUIStrings("ui/legacy/components/data_grid/ShowMoreDataGridNode.ts",R),L=t.i18n.getLocalizedString.bind(void 0,H);var z=Object.freeze({__proto__:null,ShowMoreDataGridNode:class extends y{callback;startPosition;endPosition;chunkSize;showNext;showAll;showLast;selectable;hasCells;constructor(e,t,i,o){super({summaryRow:!0},!1),this.callback=e,this.startPosition=t,this.endPosition=i,this.chunkSize=o,this.showNext=r.UIUtils.createTextButton(L(R.showDBefore,{PH1:this.chunkSize})),this.showNext.addEventListener("click",this.showNextChunk.bind(this),!1),this.showAll=r.UIUtils.createTextButton(""),this.showAll.addEventListener("click",this.showAllInternal.bind(this),!1),this.showLast=r.UIUtils.createTextButton(L(R.showDAfter,{PH1:this.chunkSize})),this.showLast.addEventListener("click",this.showLastChunk.bind(this),!1),this.updateLabels(),this.selectable=!1}showNextChunk(){this.callback(this.startPosition,this.startPosition+this.chunkSize)}showAllInternal(){this.callback(this.startPosition,this.endPosition)}showLastChunk(){this.callback(this.endPosition-this.chunkSize,this.endPosition)}updateLabels(){const e=this.endPosition-this.startPosition;e>this.chunkSize?(this.showNext.classList.remove("hidden"),this.showLast.classList.remove("hidden")):(this.showNext.classList.add("hidden"),this.showLast.classList.add("hidden")),this.showAll.textContent=L(R.showAllD,{PH1:e})}createCells(e){this.hasCells=!1,super.createCells(e)}createCell(e){const t=this.createTD(e);return t.classList.add("show-more"),this.hasCells||(this.hasCells=!0,this.depth&&this.dataGrid&&t.style.setProperty("padding-left",this.depth*this.dataGrid.indentWidth+"px"),t.appendChild(this.showNext),t.appendChild(this.showAll),t.appendChild(this.showLast)),t}setStartPosition(e){this.startPosition=e,this.updateLabels()}setEndPosition(e){this.endPosition=e,this.updateLabels()}nodeSelfHeight(){return 40}dispose(){}}}),W={cssText:`*{box-sizing:border-box;min-width:0;min-height:0}:root{height:100%;overflow:hidden;interpolate-size:allow-keywords}body{height:100%;width:100%;position:relative;overflow:hidden;margin:0;cursor:default;font-family:var(--default-font-family);font-size:12px;tab-size:4;user-select:none;color:var(--sys-color-on-surface);background:var(--sys-color-cdt-base-container)}:focus{outline-width:0}.monospace{font-family:var(--monospace-font-family);font-size:var(\n --monospace-font-size\n )!important}.source-code{font-family:var(--source-code-font-family);font-size:var(\n --source-code-font-size\n )!important;white-space:pre-wrap;&:not(input)::selection{color:var(--sys-color-on-surface)}}.source-code.breakpoint{white-space:nowrap}.source-code .devtools-link.text-button{max-width:100%;overflow:hidden;text-overflow:ellipsis}img{-webkit-user-drag:none}iframe,\na img{border:none}.fill{position:absolute;inset:0}iframe.fill{width:100%;height:100%}.widget{position:relative;flex:auto;contain:style}.hbox{display:flex;flex-direction:row!important;position:relative}.vbox{display:flex;flex-direction:column!important;position:relative}.view-container > devtools-toolbar{border-bottom:1px solid var(--sys-color-divider)}.flex-auto{flex:auto}.flex-none{flex:none}.flex-centered{display:flex;align-items:center;justify-content:center}.overflow-auto{overflow:auto;background-color:var(--sys-color-cdt-base-container)}iframe.widget{position:absolute;width:100%;height:100%;inset:0}.hidden{display:none!important}.highlighted-search-result{border-radius:1px;background-color:var(--sys-color-yellow-container);outline:1px solid var(--sys-color-yellow-container)}.link{cursor:pointer;text-decoration:underline;color:var(--sys-color-primary);outline-offset:2px}button,\ninput,\nselect{font-family:inherit;font-size:inherit}select option,\nselect optgroup,\ninput{background-color:var(--sys-color-cdt-base-container)}input{color:inherit;&[type="checkbox"]{position:relative;outline:none;display:flex;align-items:center;justify-content:center;&:hover::after,\n &:active::before{content:"";height:24px;width:24px;border-radius:var(--sys-shape-corner-full);position:absolute}&:not(.-theme-preserve){accent-color:var(--sys-color-primary-bright);color:var(--sys-color-on-primary)}&:not(:disabled):hover::after{background-color:var(--sys-color-state-hover-on-subtle)}&:not(:disabled):active::before{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:not(:disabled):focus-visible::before{content:"";height:15px;width:15px;border-radius:5px;position:absolute;border:2px solid var(--sys-color-state-focus-ring)}&.small:hover::after,\n &.small:active::before{height:12px;width:12px;border-radius:2px}}}input::placeholder{--override-input-placeholder-color:rgb(0 0 0/54%);color:var(--override-input-placeholder-color)}.theme-with-dark-background input::placeholder,\n:host-context(.theme-with-dark-background) input::placeholder{--override-input-placeholder-color:rgb(230 230 230/54%)}.harmony-input:not([type]),\n.harmony-input[type="number"],\n.harmony-input[type="text"]{padding:3px 6px;height:24px;border:1px solid var(--sys-color-neutral-outline);border-radius:4px;&.error-input,\n &:invalid{border-color:var(--sys-color-error)}&:not(.error-input, :invalid):focus{border-color:var(--sys-color-state-focus-ring)}&:not(.error-input, :invalid):hover:not(:focus){background:var(--sys-color-state-hover-on-subtle)}}input[type="radio"]{height:17px;width:17px;min-width:17px;border-radius:8px;vertical-align:sub;margin:0 5px 5px 0;accent-color:var(--sys-color-primary-bright);color:var(--sys-color-on-primary);&:focus{box-shadow:var(--legacy-focus-ring-active-shadow)}}@media (forced-colors: active){input[type="radio"]{--gradient-start:ButtonFace;--gradient-end:ButtonFace;&:checked{--gradient-start:Highlight;--gradient-end:Highlight}}}input[type="range"]{appearance:none;margin:0;padding:0;height:10px;width:88px;outline:none;background:none}input[type="range"]::-webkit-slider-thumb,\n.-theme-preserve{appearance:none;margin:0;padding:0;border:0;width:12px;height:12px;margin-top:-5px;border-radius:50%;background-color:var(--sys-color-primary)}input[type="range"]::-webkit-slider-runnable-track{appearance:none;margin:0;padding:0;width:100%;height:2px;background-color:var(--sys-color-surface-variant)}input[type="range"]:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--sys-color-inverse-primary)}input[type="range"]:disabled::-webkit-slider-thumb{background-color:var(--sys-color-state-disabled)}@media (forced-colors: active){input[type="range"]{forced-color-adjust:none}}.highlighted-search-result.current-search-result{--override-current-search-result-background-color:rgb(255 127 0/80%);border-radius:1px;padding:1px;margin:-1px;background-color:var(--override-current-search-result-background-color)}.dimmed{opacity:60%}.editing{box-shadow:var(--drop-shadow);background-color:var(--sys-color-cdt-base-container);text-overflow:clip!important;padding-left:2px;margin-left:-2px;padding-right:2px;margin-right:-2px;margin-bottom:-1px;padding-bottom:1px;opacity:100%!important}.editing,\n.editing *{color:var(\n --sys-color-on-surface\n )!important;text-decoration:none!important}select{appearance:none;user-select:none;height:var(--sys-size-11);border:var(--sys-size-1) solid var(--sys-color-neutral-outline);border-radius:var(--sys-shape-corner-extra-small);color:var(--sys-color-on-surface);font:inherit;margin:0;outline:none;padding:0 var(--sys-size-9) 0 var(--sys-size-5);background-image:var(--combobox-dropdown-arrow);background-color:transparent;background-position:right center;background-repeat:no-repeat;&:disabled{opacity:100%;border-color:transparent;color:var(--sys-color-state-disabled);background-color:var(--sys-color-state-disabled-container);pointer-events:none}&:enabled{&:hover{background-color:var(--sys-color-state-hover-on-subtle)}&:active{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:hover:active{background:var(--combobox-dropdown-arrow),linear-gradient(var(--sys-color-state-hover-on-subtle),var(--sys-color-state-hover-on-subtle)),linear-gradient(var(--sys-color-state-ripple-neutral-on-subtle),var(--sys-color-state-ripple-neutral-on-subtle));background-position:right center;background-repeat:no-repeat}&:focus{outline:var(--sys-size-2) solid var(--sys-color-state-focus-ring);outline-offset:-1px}}}@media (forced-colors: active) and (prefers-color-scheme: light){:root,\n .theme-with-dark-background,\n :host-context(.theme-with-dark-background){--combobox-dropdown-arrow:var(--image-file-arrow-drop-down-light)}}@media (forced-colors: active) and (prefers-color-scheme: dark){:root,\n .theme-with-dark-background,\n :host-context(.theme-with-dark-background){--combobox-dropdown-arrow:var(--image-file-arrow-drop-down-dark)}}.chrome-select-label{margin:0 var(--sys-size-10);flex:none;p p{margin-top:0;color:var(--sys-color-token-subtle)}.reload-warning{margin-left:var(--sys-size-5)}}.settings-select{margin:0}select optgroup,\nselect option{background-color:var(--sys-color-cdt-base-container);color:var(--sys-color-on-surface)}.gray-info-message{text-align:center;font-style:italic;padding:6px;color:var(--sys-color-token-subtle);white-space:nowrap}.empty-state{margin:var(--sys-size-5);display:flex;flex-grow:1;justify-content:center;align-items:center;flex-direction:column;text-align:center;min-height:fit-content;min-width:fit-content;> *{max-width:var(--sys-size-29)}.empty-state-header{font:var(--sys-typescale-headline5);margin-bottom:var(--sys-size-3)}.empty-state-description{font:var(--sys-typescale-body4-regular);color:var(--sys-color-on-surface-subtle);> x-link{white-space:nowrap;margin-left:var(--sys-size-3)}}> devtools-button{margin-top:var(--sys-size-7)}}dt-icon-label{flex:none}.full-widget-dimmed-banner a{color:inherit}.full-widget-dimmed-banner{color:var(--sys-color-token-subtle);background-color:var(--sys-color-cdt-base-container);display:flex;justify-content:center;align-items:center;text-align:center;padding:20px;position:absolute;inset:0;font-size:13px;overflow:auto;z-index:500}.dot::before{content:var(--image-file-empty);width:6px;height:6px;border-radius:50%;outline:1px solid var(--icon-gap-default);left:9px;position:absolute;top:9px;z-index:1}.green::before{background-color:var(--sys-color-green-bright)}.purple::before{background-color:var(--sys-color-purple-bright)}.expandable-inline-button{background-color:var(--sys-color-cdt-base-container);color:var(--sys-color-on-surface);cursor:pointer;border-radius:3px}.undisplayable-text,\n.expandable-inline-button{border:none;padding:1px 3px;margin:0 2px;font-size:11px;font-family:sans-serif;white-space:nowrap;display:inline-block}.undisplayable-text::after,\n.expandable-inline-button::after{content:attr(data-text)}.undisplayable-text{color:var(--sys-color-state-disabled);font-style:italic}.expandable-inline-button:hover,\n.expandable-inline-button:focus-visible{background-color:var(--sys-color-state-hover-on-subtle)}.expandable-inline-button:focus-visible{background-color:var(--sys-color-state-focus-highlight)}::selection{background-color:var(--sys-color-state-text-highlight);color:var(--sys-color-state-on-text-highlight)}button.link{border:none;background:none;padding:3px}button.link:focus-visible{outline:2px solid var(--sys-color-state-focus-ring);outline-offset:2px;border-radius:var(--sys-shape-corner-full)}.data-grid-data-grid-node button.link:focus-visible{border-radius:var(--sys-shape-corner-extra-small);padding:0;margin-top:3px}@media (forced-colors: active){.dimmed,\n select:disabled{opacity:100%}.harmony-input:not([type]),\n .harmony-input[type="number"],\n .harmony-input[type="text"]{border:1px solid ButtonText}.harmony-input:not([type]):focus,\n .harmony-input[type="number"]:focus,\n .harmony-input[type="text"]:focus{border:1px solid Highlight}}input.custom-search-input::-webkit-search-cancel-button{appearance:none;width:16px;height:15px;margin-right:0;opacity:70%;mask-image:var(--image-file-cross-circle-filled);mask-position:center;mask-repeat:no-repeat;mask-size:99%;background-color:var(--icon-default)}input.custom-search-input::-webkit-search-cancel-button:hover{opacity:99%}.spinner::before{display:block;width:var(--dimension,24px);height:var(--dimension,24px);border:var(--override-spinner-size,3px) solid var(--override-spinner-color,var(--sys-color-token-subtle));border-radius:12px;clip:rect(0,var(--clip-size,15px),var(--clip-size,15px),0);content:"";position:absolute;animation:spinner-animation 1s linear infinite;box-sizing:border-box}@keyframes spinner-animation{from{transform:rotate(0)}to{transform:rotate(360deg)}}.adorner-container{display:inline-flex;vertical-align:middle}.adorner-container.hidden{display:none}.adorner-container devtools-adorner{margin-left:3px}:host-context(.theme-with-dark-background) devtools-adorner{--override-adorner-border-color:var(--sys-color-tonal-outline);--override-adorner-active-background-color:var(\n --sys-color-state-riple-neutral-on-subtle\n )}.panel{display:flex;overflow:hidden;position:absolute;inset:0;z-index:0;background-color:var(--sys-color-cdt-base-container)}.panel-sidebar{overflow-x:hidden;background-color:var(--sys-color-cdt-base-container)}iframe.extension{flex:auto;width:100%;height:100%}iframe.panel.extension{display:block;height:100%}@media (forced-colors: active){:root{--legacy-accent-color:Highlight;--legacy-focus-ring-inactive-shadow-color:ButtonText}}devtools-toolbar{& > *{position:relative;display:flex;background-color:transparent;flex:none;align-items:center;justify-content:center;height:var(--toolbar-height);border:none;white-space:pre;overflow:hidden;max-width:100%;color:var(--icon-default);cursor:default;& .devtools-link{color:var(--icon-default)}}.status-buttons{padding:0 var(--sys-size-2);gap:var(--sys-size-2)}& > :not(select){padding:0}& > devtools-issue-counter{margin-top:-4px;padding:0 1px}devtools-adorner.fix-perf-icon{--override-adorner-text-color:transparent;--override-adorner-border-color:transparent;--override-adorner-background-color:transparent}devtools-issue-counter.main-toolbar{margin-left:1px;margin-right:1px}.toolbar-dropdown-arrow{pointer-events:none;flex:none;top:2px}.toolbar-button.dark-text .toolbar-dropdown-arrow{color:var(--sys-color-on-surface)}.toolbar-button{white-space:nowrap;overflow:hidden;min-width:28px;background:transparent;border-radius:0;&[aria-haspopup="true"][aria-expanded="true"]{pointer-events:none}}.toolbar-item-search{min-width:5.2em;max-width:300px;flex:1 1 auto;justify-content:start;overflow:revert}.toolbar-text{margin:0 5px;flex:none;color:var(--ui-text)}.toolbar-text:empty{margin:0}.toolbar-has-dropdown{justify-content:space-between;height:var(--sys-size-9);padding:0 var(--sys-size-2) 0 var(--sys-size-4);margin:0 var(--sys-size-2);gap:var(--sys-size-2);border-radius:var(--sys-shape-corner-extra-small);&:hover::after,\n &:active::before{content:"";height:100%;width:100%;border-radius:inherit;position:absolute;top:0;left:0}&:hover::after{background-color:var(--sys-color-state-hover-on-subtle)}&:active::before{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:focus-visible{outline:var(--sys-size-2) solid var(--sys-color-state-focus-ring)}&[disabled]{pointer-events:none;background-color:var(--sys-color-state-disabled-container);color:var(--sys-color-state-disabled)}}.toolbar-has-dropdown-shrinkable{flex-shrink:1}.toolbar-has-dropdown .toolbar-text{margin:0;text-overflow:ellipsis;flex:auto;overflow:hidden;text-align:right}.toolbar-button:not(.toolbar-has-dropdown):focus-visible::before{position:absolute;inset:2px;background-color:var(--sys-color-state-focus-highlight);border-radius:2px;content:"";z-index:-1}.toolbar-glyph{flex:none}.toolbar-button:disabled{opacity:50%}.toolbar-button.copied-to-clipboard::after{content:attr(data-content);position:fixed;margin-top:calc(2 * var(--toolbar-height));padding:3px 5px;color:var(--sys-color-token-subtle);background:var(--sys-color-cdt-base-container);animation:2s fade-out;font-weight:normal;border:1px solid var(--sys-color-divider);border-radius:3px}.toolbar-button.toolbar-state-on .toolbar-glyph{color:var(--icon-toggled)}.toolbar-state-on.toolbar-toggle-with-dot .toolbar-text::after{content:"";position:absolute;bottom:2px;background-color:var(--sys-color-primary-bright);width:4.5px;height:4.5px;border:2px solid var(--override-toolbar-background-color,--sys-color-cdt-base-container);border-radius:50%;right:0}.toolbar-button.toolbar-state-on.toolbar-toggle-with-red-color .toolbar-glyph,\n .toolbar-button.toolbar-state-off.toolbar-default-with-red-color\n .toolbar-glyph{color:var(\n --icon-error\n )!important}.toolbar-button:not(\n .toolbar-has-glyph,\n .toolbar-has-dropdown,\n .largeicon-menu,\n .toolbar-button-secondary\n ){font-weight:bold}.toolbar-button.dark-text .toolbar-text{color:var(\n --sys-color-on-surface\n )!important}.toolbar-button.toolbar-state-on .toolbar-text{color:var(--sys-color-primary)}.toolbar-button.toolbar-state-on:enabled:active .toolbar-text{color:var(--sys-color-primary-bright)}.toolbar-button:enabled:hover:not(:active) .toolbar-glyph{color:var(--sys-color-on-surface)}.toolbar-button:enabled:hover:not(:active) .toolbar-text{color:var(--sys-color-on-surface)}.toolbar-button.toolbar-state-on:enabled:hover:not(:active) .toolbar-glyph{color:var(--sys-color-primary)}.toolbar-button.toolbar-state-on:enabled:hover:not(:active) .toolbar-text{color:var(--sys-color-primary)}& > dt-checkbox{padding:0 5px 0 0}& > select{height:var(--sys-size-9);min-width:var(--sys-size-14)}.toolbar-input{box-shadow:inset 0 0 0 2px transparent;box-sizing:border-box;width:120px;height:var(--sys-size-9);padding:0 var(--sys-size-2) 0 var(--sys-size-5);margin:1px 3px;border-radius:100px;min-width:35px;position:relative;&.focused{box-shadow:inset 0 0 0 2px var(--sys-color-state-focus-ring)}&:not(:has(devtools-button:hover), .disabled):hover{background-color:var(--sys-color-state-hover-on-subtle)}&::before{content:"";box-sizing:inherit;height:100%;width:100%;position:absolute;left:0;background:var(--sys-color-cdt-base);z-index:-1}& > devtools-icon{color:var(--sys-color-on-surface-subtle);width:var(--sys-size-8);height:var(--sys-size-8);margin-right:var(--sys-size-3)}&.disabled > devtools-icon{color:var(--sys-color-state-disabled)}}.toolbar-filter .toolbar-input-clear-button{margin-right:var(--sys-size-4)}.toolbar-input-empty .toolbar-input-clear-button{display:none}.toolbar-prompt-proxy{flex:1}.toolbar-input-prompt{flex:1;overflow:hidden;white-space:nowrap;cursor:text;color:var(--sys-color-on-surface)}.toolbar-divider{background-color:var(--sys-color-divider);width:1px;margin:5px 4px;height:16px}.toolbar-spacer{flex:auto}.toolbar-button.emulate-active{background-color:var(--sys-color-surface-variant)}&:not([floating]) > :last-child:not(:first-child, select){flex-shrink:1;justify-content:left}&:not([floating]) > .toolbar-button:last-child:not(:first-child, select){justify-content:left;margin-right:2px}& > .highlight::before{content:"";position:absolute;inset:2px;border-radius:2px;background:var(--sys-color-neutral-container);z-index:-1}& > .highlight:focus-visible{background:var(--sys-color-tonal-container);& > .title{color:var(--sys-color-on-tonal-container)}}devtools-icon.leading-issue-icon{margin:0 7px}@media (forced-colors: active){.toolbar-button:disabled{opacity:100%;color:Graytext}devtools-toolbar > *,\n .toolbar-text{color:ButtonText}.toolbar-button:disabled .toolbar-text{color:Graytext}devtools-toolbar > select:disabled{opacity:100%;color:Graytext}.toolbar-button.toolbar-state-on .toolbar-glyph{forced-color-adjust:none;color:Highlight}.toolbar-button.toolbar-state-on .toolbar-text{forced-color-adjust:none;color:Highlight}.toolbar-button:enabled:hover:not(:active) .toolbar-text,\n .toolbar-button:enabled:focus:not(:active) .toolbar-text{color:HighlightText}.toolbar-button:disabled devtools-icon{color:GrayText}.toolbar-button:disabled .toolbar-glyph{color:GrayText}.toolbar-button:enabled.hover:not(:active) .toolbar-glyph{forced-color-adjust:none;color:Highlight}.toolbar-button:enabled:hover .toolbar-glyph,\n .toolbar-button:enabled:focus .toolbar-glyph,\n .toolbar-button:enabled:hover:not(:active) .toolbar-glyph,\n .toolbar-button:enabled:hover devtools-icon,\n .toolbar-button:enabled:focus devtools-icon{color:HighlightText}.toolbar-input{forced-color-adjust:none;background:canvas;box-shadow:var(--legacy-focus-ring-inactive-shadow)}.toolbar-input.focused,\n .toolbar-input:not(.toolbar-input-empty){forced-color-adjust:none;background:canvas;box-shadow:var(--legacy-focus-ring-active-shadow)}.toolbar-input:hover{box-shadow:var(--legacy-focus-ring-active-shadow)}devtools-toolbar .devtools-link{color:linktext}.toolbar-has-dropdown{forced-color-adjust:none;background:ButtonFace;color:ButtonText}}}@keyframes fade-out{from{opacity:100%}to{opacity:0%}}.webkit-css-property{color:var(--webkit-css-property-color,var(--sys-color-token-property-special))}.webkit-html-comment{color:var(--sys-color-token-comment)}.webkit-html-tag{color:var(--sys-color-token-tag)}.webkit-html-tag-name,\n.webkit-html-close-tag-name{color:var(--sys-color-token-tag)}.webkit-html-pseudo-element{color:var(--sys-color-token-pseudo-element)}.webkit-html-js-node,\n.webkit-html-css-node{color:var(--text-primary);white-space:pre-wrap}.webkit-html-text-node{color:var(--text-primary);unicode-bidi:-webkit-isolate}.webkit-html-entity-value{background-color:rgb(0 0 0/15%);unicode-bidi:-webkit-isolate}.webkit-html-doctype{color:var(--text-secondary)}.webkit-html-attribute-name{color:var(--sys-color-token-attribute);unicode-bidi:-webkit-isolate}.webkit-html-attribute-value{color:var(--sys-color-token-attribute-value);unicode-bidi:-webkit-isolate;word-break:break-all}.devtools-link{color:var(--text-link);text-decoration:underline;outline-offset:2px;.elements-disclosure &{color:var(--text-link)}devtools-icon{vertical-align:baseline;color:var(--sys-color-primary)}:focus .selected & devtools-icon{color:var(--sys-color-tonal-container)}&:focus-visible{outline-width:unset}&.invalid-link{color:var(--text-disabled);text-decoration:none}&:not(.devtools-link-prevent-click, .invalid-link){cursor:pointer}@media (forced-colors: active){&:not(.devtools-link-prevent-click){forced-color-adjust:none;color:linktext}&:focus-visible{background:Highlight;color:HighlightText}}}\n/*# sourceURL=${import.meta.resolve("./inspectorCommon.css")} */\n`};class D extends HTMLElement{static observedAttributes=["striped","name","inline"];#t=A.create(["dummy"],[],"");#i=new MutationObserver(this.#o.bind(this));#r=new ResizeObserver((()=>{this.inline||this.#t.onResize()}));#s;#n=[];#a=new Set;#l=new Set;#d=null;constructor(){super(),this.style.display="flex",this.#t.element.style.flex="auto",this.#s=this.attachShadow({mode:"open",delegatesFocus:!0}),this.#s.createChild("style").textContent=n.cssText,this.#s.createChild("style").textContent=W.cssText,this.#s.appendChild(this.#t.element),this.#t.addEventListener("SelectedNode",(e=>this.dispatchEvent(new CustomEvent("select",{detail:e.data.configElement})))),this.#t.addEventListener("DeselectedNode",(()=>this.dispatchEvent(new CustomEvent("select",{detail:null})))),this.#t.addEventListener("SortingChanged",(()=>this.dispatchEvent(new CustomEvent("sort",{detail:{columnId:this.#t.sortColumnId(),ascending:this.#t.isSortOrderAscending()}})))),this.#t.setRowContextMenuCallback(((e,t)=>{this.dispatchEvent(new CustomEvent("contextmenu",{detail:{menu:e,element:t.configElement}}))})),this.#t.setHeaderContextMenuCallback((e=>{for(const t of this.#n)this.#a.has(t.id)&&e.defaultSection().appendCheckboxItem(this.#t.columns[t.id].title,(()=>{this.#l.has(t.id)?this.#l.delete(t.id):this.#l.add(t.id),this.#t.setColumnsVisibility(new Set(this.#n.map((({id:e})=>e)).filter((e=>!this.#l.has(e)))))}),{checked:!this.#l.has(t.id)})})),this.#i.observe(this,{childList:!0,attributes:!0,subtree:!0,characterData:!0}),this.#r.observe(this),this.#h(),this.#c(this.querySelectorAll("tr"))}attributeChangedCallback(e,t,i){if(t!==i)switch(e){case"striped":this.#t.setStriped("true"!==i);break;case"name":this.#t.displayName=i??"";break;case"inline":this.#t.renderInline()}}set striped(e){this.toggleAttribute("striped",e)}get striped(){return B(this,"striped")}set inline(e){this.toggleAttribute("inline",e)}get inline(){return B(this,"inline")}set displayName(e){this.setAttribute("name",e)}get displayName(){return this.getAttribute("name")}set filters(e){this.#t.setFilters(e),this.#t.element.setAttribute("aria-rowcount",String(this.#t.getNumberOfRows()))}get columns(){return this.#n}#h(){for(const e of Object.keys(this.#t.columns))this.#t.removeColumn(e);this.#a.clear(),this.#n=[];let e=!1;for(const t of this.querySelectorAll("th[id]")||[]){const i=t.id;let o=t.textContent?.trim()||"";const r=t.firstElementChild?document.createDocumentFragment():void 0;if(r){o="";for(const e of t.children)r.appendChild(e.cloneNode(!0)),o+=e.shadowRoot?e.shadowRoot.textContent:e.textContent}const s=B(t,"sortable"),n=t.getAttribute("width")??void 0,a=t.hasAttribute("fixed");let l=t.getAttribute("align")??void 0;"center"!==l&&"right"!==l&&(l=void 0);const d="boolean"===t.getAttribute("type")?"Boolean":"String",h=parseFloat(t.getAttribute("weight")||"")??void 0,c=t.hasAttribute("editable");c&&(e=!0);const u={id:i,title:o,titleDOMFragment:r,sortable:s,fixedWidth:a,width:n,align:l,weight:h,editable:c,dataType:d};this.#t.addColumn(u),this.#n.push(u),B(t,"hideable")&&this.#a.add(i)}const t=new Set(this.#n.map((({id:e})=>e)).filter((e=>!this.#l.has(e))));t.size&&this.#t.setColumnsVisibility(t),this.#t.setEditCallback(e?this.#u.bind(this):void 0,U),this.#t.deleteCallback=e?this.#g.bind(this):void 0}#p(e){for(const t of e){for(const e of[...t.removedNodes,...t.addedNodes])if(e instanceof HTMLElement&&("TH"===e.nodeName||e.querySelector("th")))return!0;if(t.target instanceof HTMLElement&&t.target.closest("th"))return!0}return!1}#b(e){return[...e].flatMap((e=>e instanceof HTMLTableRowElement?[e]:e instanceof HTMLElement?[...e.querySelectorAll("tr")]:[])).filter((e=>e.querySelector("td")&&!B(e,"placeholder")))}#m(e){for(let t=e.nextElementSibling;t;t=t.nextElementSibling){const e=P.get(t);if(e)return e}return null}#c(e){for(const t of this.#b(e)){const e=this.#t.rootNode(),i=this.#m(t),o=i?e.children.indexOf(i):e.children.length,r=new P(t,this);e.insertChild(r,o),B(t,"selected")&&r.select(),B(t,"dirty")&&r.setDirty(!0),B(t,"inactive")&&r.setInactive(!0),B(t,"highlighted")&&r.setHighlighted(!0)}}#f(e){for(const t of this.#b(e)){const e=P.get(t);e&&e.remove()}}#v(e,t){for(;e?.parentNode&&!(e instanceof HTMLElement);)e=e.parentNode;const i=e instanceof HTMLElement?e.closest("tr"):null,o=i?P.get(i):null;o&&i&&("selected"===t?B(i,"selected")?o.select():o.deselect():"dirty"===t?o.setDirty(B(i,"dirty")):"inactive"===t?o.setInactive(B(i,"inactive")):"highlighted"===t?o.setHighlighted(B(i,"highlighted")):o.refresh())}#x(){this.#d&&(P.remove(this.#d),this.#d=null,this.#t.creationNode=void 0);const e=this.querySelector("tr[placeholder]");if(e){if(!P.get(e)){this.#t.creationNode?.remove();const t=new P(e,this);this.#t.creationNode=t,this.#t.rootNode().appendChild(t)}}else this.#t.creationNode?.remove(),this.#t.creationNode=void 0}#o(e){this.#p(e)&&this.#h(),this.#x();for(const t of e)this.#f(t.removedNodes),this.#c(t.addedNodes),this.#v(t.target,t.attributeName)}#u(e,t,i,o,r){if(e.isCreationNode){this.#d=e;let i=!1;if(r){const e=this.#n.findIndex((({id:e})=>e===t));i=("forward"===r?this.#n.slice(e+1):this.#n.slice(0,e)).some((({editable:e})=>e))}i||e.deselect()}else this.dispatchEvent(new CustomEvent("edit",{detail:{node:e.configElement,columnId:t,valueBeforeEditing:i,newText:o}}))}#g(e){this.dispatchEvent(new CustomEvent("delete",{detail:e.configElement}))}addEventListener(...e){super.addEventListener(...e),"refresh"===e[0]&&(this.#t.refreshCallback=this.#y.bind(this))}#y(){this.dispatchEvent(new CustomEvent("refresh"))}}class P extends G{static#C=new WeakMap;#w;#N;#k=new Set;constructor(e,t){super(),this.#w=e,P.#C.set(e,this),this.#N=t,this.#S(),this.isCreationNode=B(this.#w,"placeholder")}static get(e){return e&&P.#C.get(e)}get configElement(){return this.#w}#S(){const e=this.#w.querySelectorAll("td");for(let t=0;t<e.length;++t){const i=e[t],o=this.#N.columns[t];"Boolean"===o.dataType?this.data[o.id]=B(i,"data-value"):this.data[o.id]=i.dataset.value??i.textContent??""}}createElement(){const e=super.createElement();e.addEventListener("click",this.#I.bind(this)),e.addEventListener("mouseenter",this.#I.bind(this)),e.addEventListener("mouseleave",this.#I.bind(this)),this.#w.hasAttribute("style")&&e.setAttribute("style",this.#w.getAttribute("style")||"");for(const t of this.#w.classList)e.classList.add(t);return e}refresh(){this.#S(),super.refresh();const e=this.existingElement();if(e){this.#w.hasAttribute("style")&&e.setAttribute("style",this.#w.getAttribute("style")||"");for(const t of this.#k)e.classList.remove(t);for(const t of this.#w.classList)e.classList.add(t)}}#I(e){let t=e.target;const i=[];for(;t?.parentElement&&t!==e.currentTarget;)i.push([...t.parentElement.children].indexOf(t)),t=t.parentElement;if(!t)throw new Error("Cell click event target not found in the data grid");let o=this.#w;for(const e of i.reverse())o=o.children[e];o instanceof HTMLElement&&o?.dispatchEvent(new MouseEvent(e.type,{bubbles:!0,composed:!0}))}createCell(e){const t=this.#N.columns.findIndex((({id:t})=>t===e));if("Boolean"===this.#N.columns[t].dataType)return super.createCell(e);const i=this.createTD(e);if(this.isCreationNode)return i;const o=this.#w.querySelectorAll("td")[t];if(!o)throw new Error(`Column ${e} not found in the data grid`);for(const e of o.childNodes)i.appendChild(e.cloneNode(!0));for(const e of o.classList)i.classList.add(e);return i.title=o.title,o.hasAttribute("aria-label")&&this.setCellAccessibleName(o.getAttribute("aria-label")||"",i,e),i}static remove(e){P.#C.delete(e.#w),e.remove()}deselect(){super.deselect(),this.isCreationNode&&this.#N.dispatchEvent(new CustomEvent("create",{detail:this.data}))}}function B(e,t){return e.hasAttribute(t)&&"false"!==e.getAttribute(t)}customElements.define("devtools-data-grid",D);const U={token:"DataGridInternalToken"};export{N as DataGrid,z as ShowMoreDataGridNode,T as SortableDataGrid,E as ViewportDataGrid};
@@ -0,0 +1,58 @@
1
+ import*as e from"../../legacy.js";import*as t from"../../../../third_party/codemirror.next/codemirror.next.js";import*as i from"../../../../core/platform/platform.js";import*as n from"../../../visual_logging/visual_logging.js";import*as s from"../../../../core/common/common.js";import*as o from"../../../lit/lit.js";import{render as r,html as a}from"../../../lit/lit.js";import*as l from"../../../../core/i18n/i18n.js";import*as d from"../color_picker/color_picker.js";import*as h from"../../../../core/sdk/sdk.js";import*as c from"../../../components/icon_button/icon_button.js";import*as u from"../../../../panels/css_overview/css_overview.js";import*as p from"../../../components/buttons/buttons.js";const m=t.css.cssLanguage.parser,g=new Intl.NumberFormat("en",{maximumFractionDigits:2});function v(e,t){for(let i=t;i<e.length;i++)if(!isNaN(e[i].input))return i;return-1}function x(e,t){const i=[];for(;","!==e.type.name&&")"!==e.type.name;){const n=t.substring(e.from,e.to);if("NumberLiteral"!==e.type.name)return null;i.push(n),e.next(!1)}if(i.length>3)return null;const n=i.filter((e=>e.includes("%")));if(n.length>2)return null;const s=i.filter((e=>!e.includes("%")));return 1!==s.length?null:{number:Number(s[0]),lengthA:n[0]?Number(n[0].substring(0,n[0].length-1)):void 0,lengthB:n[1]?Number(n[1].substring(0,n[1].length-1)):void 0}}const b={linear:"linear(0 0%, 1 100%)"};class f{#e;constructor(e){this.#e=e}static parse(e){if(b[e])return f.parse(b[e]);const t=function(e){const t=`*{--a: ${e}}`,i=m.parse(t).cursorAt(t.indexOf(":")+1);for(;"ArgList"!==i.name&&i.next(!0);)if("Callee"===i.name&&"linear"!==t.substring(i.from,i.to))return null;if("ArgList"!==i.name)return null;i.firstChild();const n=[];for(;")"!==i.type.name&&i.next(!1);){const e=x(i,t);if(!e)return null;n.push(e)}return n}(e);if(!t||t.length<2)return null;let i=-1/0;const n=[];for(let e=0;e<t.length;e++){const s=t[e],o={input:NaN,output:s.number};if(n.push(o),void 0!==s.lengthA){if(o.input=Math.max(s.lengthA,i),i=o.input,void 0!==s.lengthB){const e={input:NaN,output:o.output};n.push(e),e.input=Math.max(s.lengthB,i),i=e.input}}else 0===e?(o.input=0,i=0):e===t.length-1&&(o.input=Math.max(100,i))}let s=0;for(let e=1;e<n.length;e++)isNaN(n[e].input)&&(e>s&&(s=v(n,e)),n[e].input=n[e-1].input+(n[s].input-n[e-1].input)/(s-(e-1)));return new f(n)}addPoint(e,t){void 0===t?this.#e.push(e):this.#e.splice(t,0,e)}removePoint(e){this.#e.splice(e,1)}setPoint(e,t){this.#e[e]=t}points(){return this.#e}asCSSText(){const e=`linear(${this.#e.map((e=>`${g.format(e.output)} ${g.format(e.input)}%`)).join(", ")})`;for(const[t,i]of Object.entries(b))if(i===e)return t;return e}}var w=Object.freeze({__proto__:null,CSSLinearEasingModel:f});class y{static parse(t){const i=f.parse(t);return i||(e.Geometry.CubicBezier.parse(t)||null)}}const S=e.Geometry.LINEAR_BEZIER;var C=Object.freeze({__proto__:null,AnimationTimingModel:y,LINEAR_BEZIER:S});class I{width;height;marginTop;radius;shouldDrawLine;constructor({width:e,height:t,marginTop:i,controlPointRadius:n,shouldDrawLine:s}){this.width=e,this.height=t,this.marginTop=i,this.radius=n,this.shouldDrawLine=s}static drawVelocityChart(e,t,i){const n=k;let s=["M",0,n];const o=1/40;let r=e.evaluateAt(0);for(let t=o;t<1.025;t+=o){const o=e.evaluateAt(t);let a=(o.y-r.y)/(o.x-r.x);const l=r.x*(1-t)+o.x*t;a=Math.tanh(a/1.5),s=s.concat(["L",(l*i).toFixed(2),(n-a*n).toFixed(2)]),r=o}s=s.concat(["L",i.toFixed(2),n,"Z"]),t.setAttribute("d",s.join(" "))}curveWidth(){return this.width-2*this.radius}curveHeight(){return this.height-2*this.radius-2*this.marginTop}drawLine(t,i,n,s,o,r){const a=e.UIUtils.createSVGChild(t,"line",i);a.setAttribute("x1",String(n+this.radius)),a.setAttribute("y1",String(s+this.radius+this.marginTop)),a.setAttribute("x2",String(o+this.radius)),a.setAttribute("y2",String(r+this.radius+this.marginTop))}drawControlPoints(t,i,s,o,r){this.drawLine(t,"bezier-control-line",i,s,o,r);const a=e.UIUtils.createSVGChild(t,"circle","bezier-control-circle");a.setAttribute("jslog",`${n.controlPoint("bezier.control-circle").track({drag:!0})}`),a.setAttribute("cx",String(o+this.radius)),a.setAttribute("cy",String(r+this.radius+this.marginTop)),a.setAttribute("r",String(this.radius))}drawCurve(t,i){if(!t)return;const n=this.curveWidth(),s=this.curveHeight();i.setAttribute("width",String(this.width)),i.setAttribute("height",String(this.height)),i.removeChildren();const o=e.UIUtils.createSVGChild(i,"g");this.shouldDrawLine&&this.drawLine(o,"linear-line",0,s,n,0);const r=e.UIUtils.createSVGChild(o,"path","bezier-path"),a=[new e.Geometry.Point(t.controlPoints[0].x*n+this.radius,(1-t.controlPoints[0].y)*s+this.radius+this.marginTop),new e.Geometry.Point(t.controlPoints[1].x*n+this.radius,(1-t.controlPoints[1].y)*s+this.radius+this.marginTop),new e.Geometry.Point(n+this.radius,this.marginTop+this.radius)];r.setAttribute("d","M"+this.radius+","+(s+this.radius+this.marginTop)+" C"+a.join(" ")),this.drawControlPoints(o,0,s,t.controlPoints[0].x*n,(1-t.controlPoints[0].y)*s),this.drawControlPoints(o,n,0,t.controlPoints[1].x*n,(1-t.controlPoints[1].y)*s)}}const k=26;var E=Object.freeze({__proto__:null,BezierUI:I,Height:k});class P{#t;#i;#n;#s;#o;#r;#a;constructor({bezier:t,container:i,onBezierChange:n}){this.#i=t,this.#t=new I({width:150,height:250,marginTop:50,controlPointRadius:7,shouldDrawLine:!0}),this.#n=e.UIUtils.createSVGChild(i,"svg","bezier-curve"),this.#a=n,e.UIUtils.installDragHandle(this.#n,this.dragStart.bind(this),this.dragMove.bind(this),this.dragEnd.bind(this),"default")}dragStart(t){this.#s=new e.Geometry.Point(t.x,t.y);const n=this.#t;this.#o=new e.Geometry.Point(i.NumberUtilities.clamp((t.offsetX-n.radius)/n.curveWidth(),0,1),(n.curveHeight()+n.marginTop+n.radius-t.offsetY)/n.curveHeight());const s=this.#o.distanceTo(this.#i.controlPoints[0])<this.#o.distanceTo(this.#i.controlPoints[1]);return this.#r=s?0:1,this.#i.controlPoints[this.#r]=this.#o,this.#a(this.#i),t.consume(!0),!0}updateControlPosition(t,n){if(void 0===this.#s||void 0===this.#o||void 0===this.#r)return;const s=(t-this.#s.x)/this.#t.curveWidth(),o=(n-this.#s.y)/this.#t.curveHeight(),r=new e.Geometry.Point(i.NumberUtilities.clamp(this.#o.x+s,0,1),this.#o.y-o);this.#i.controlPoints[this.#r]=r}dragMove(e){this.updateControlPosition(e.x,e.y),this.#a(this.#i)}dragEnd(e){this.updateControlPosition(e.x,e.y),this.#a(this.#i)}setBezier(e){this.#i=e,this.draw()}draw(){this.#t.drawCurve(this.#i,this.#n)}}class T{params;renderedPositions;constructor(e){this.params=e}#l(){return this.params.width-2*this.params.pointRadius}#d(){return this.params.height-2*this.params.pointRadius-2*this.params.marginTop}#h(t,i,s,o){const r=e.UIUtils.createSVGChild(t,"circle","bezier-control-circle");r.setAttribute("jslog",`${n.controlPoint("bezier.linear-control-circle").track({drag:!0,dblclick:!0})}`),r.setAttribute("data-point-index",String(o)),r.setAttribute("cx",String(i)),r.setAttribute("cy",String(s)),r.setAttribute("r",String(this.params.pointRadius))}timingPointToPosition(e){return{x:e.input/100*this.#l()+this.params.pointRadius,y:(1-e.output)*this.#d()+this.params.pointRadius}}positionToTimingPoint(e){return{input:(e.x-this.params.pointRadius)/this.#l()*100,output:1-(e.y-this.params.pointRadius)/this.#d()}}draw(t,i){i.setAttribute("width",String(this.#l())),i.setAttribute("height",String(this.#d())),i.removeChildren();const n=e.UIUtils.createSVGChild(i,"g"),s=t.points().map((e=>this.timingPointToPosition(e)));this.renderedPositions=s;let o=s[0];for(let t=1;t<s.length;t++){const i=s[t],r=e.UIUtils.createSVGChild(n,"path","bezier-path linear-path");r.setAttribute("d",`M ${o.x} ${o.y} L ${i.x} ${i.y}`),r.setAttribute("data-line-index",String(t)),o=i}for(let e=0;e<s.length;e++){const t=s[e];this.#h(n,t.x,t.y,e)}}}class z{#c;#u;#p;#m;#g;#v;#s;#x;constructor({model:t,container:i,onChange:n}){this.#c=t,this.#u=n,this.#p=new T({width:150,height:250,pointRadius:7,marginTop:50}),this.#x=e.UIUtils.createSVGChild(i,"svg","bezier-curve linear"),e.UIUtils.installDragHandle(this.#x,this.#b.bind(this),this.#f.bind(this),this.#w.bind(this),"default")}#y(e,t){const i=this.#p.positionToTimingPoint({x:e.offsetX,y:e.offsetY});this.#c.addPoint(i,t),this.#m=void 0,this.#s=void 0}#S(e,t){if(this.#m=t,this.#s={x:e.x,y:e.y},clearTimeout(this.#g),this.#v===this.#m)return this.#c.removePoint(this.#m),this.#v=void 0,this.#m=void 0,void(this.#s=void 0);this.#v=this.#m,this.#g=window.setTimeout((()=>{this.#v=void 0}),500)}#b(e){return e.target instanceof SVGElement&&(void 0!==e.target.dataset.lineIndex?(this.#y(e,Number(e.target.dataset.lineIndex)),e.consume(!0),!0):void 0!==e.target.dataset.pointIndex&&(this.#S(e,Number(e.target.dataset.pointIndex)),e.consume(!0),!0))}#C(e,t){if(void 0===this.#m||void 0===this.#s)return;const i=this.#p.renderedPositions?.[this.#m];if(!i)return;const n=e-this.#s.x,s=t-this.#s.y;this.#s={x:e,y:t};const o={x:i.x+n,y:i.y+s};this.#c.setPoint(this.#m,this.#p.positionToTimingPoint(o))}#f(e){this.#C(e.x,e.y),this.#u(this.#c)}#w(e){this.#C(e.x,e.y),this.#u(this.#c)}setCSSLinearEasingModel(e){this.#c=e,this.draw()}draw(){this.#p.draw(this.#c,this.#x)}}class M{#I;#k;constructor(){this.#I=new T({width:40,height:40,marginTop:0,pointRadius:2}),this.#k=new I({width:40,height:40,marginTop:0,controlPointRadius:2,shouldDrawLine:!1})}draw(t,i){t instanceof f?this.#I.draw(t,i):t instanceof e.Geometry.CubicBezier&&this.#k.drawCurve(t,i)}}class A{#E;#P;#T;#c;#u;#z;#M;constructor({model:t,onChange:i}){this.#E=document.createElement("div"),this.#E.className="animation-timing-ui",this.#E.style.width="150px",this.#E.style.height="250px",this.#P=document.createElement("div"),this.#P.classList.add("bezier-ui-container"),this.#T=document.createElement("div"),this.#T.classList.add("linear-easing-ui-container"),this.#E.appendChild(this.#P),this.#E.appendChild(this.#T),this.#c=t,this.#u=i,this.#c instanceof e.Geometry.CubicBezier?this.#z=new P({bezier:this.#c,container:this.#P,onBezierChange:this.#u}):this.#c instanceof f&&(this.#M=new z({model:this.#c,container:this.#T,onChange:this.#u}))}element(){return this.#E}setModel(t){this.#c=t,this.#c instanceof e.Geometry.CubicBezier?this.#z?this.#z.setBezier(this.#c):this.#z=new P({bezier:this.#c,container:this.#P,onBezierChange:this.#u}):this.#c instanceof f&&(this.#M?this.#M.setCSSLinearEasingModel(this.#c):this.#M=new z({model:this.#c,container:this.#T,onChange:this.#u})),this.draw()}draw(){this.#T.classList.toggle("hidden",!(this.#c instanceof f)),this.#P.classList.toggle("hidden",!(this.#c instanceof e.Geometry.CubicBezier)),this.#z&&this.#z.draw(),this.#M&&this.#M.draw()}}var U=Object.freeze({__proto__:null,AnimationTimingUI:A,PresetUI:M}),L={cssText:`:host{width:270px;height:350px;user-select:none;padding:16px;overflow:hidden}.bezier-preset-selected > svg{background-color:var(--sys-color-tonal-container)}.bezier-container{--override-bezier-control-color:var(--sys-color-purple-bright);display:flex;margin-top:38px;flex-shrink:0;z-index:2;background-image:radial-gradient(circle,var(--sys-color-surface-variant) 1px,var(--color-background-inverted-opacity-0) 1px);background-size:17px 17px;background-position:-5px -10px}.bezier-preset{width:50px;height:50px;padding:5px;margin:auto;background-color:var(--sys-color-surface1);border-radius:3px}.bezier-preset line.bezier-control-line{stroke:var(--sys-color-token-subtle);stroke-width:1;stroke-linecap:round;fill:none}.bezier-preset circle.bezier-control-circle{fill:var(--sys-color-token-subtle)}.bezier-preset path.bezier-path{stroke:var(--sys-color-inverse-surface);stroke-width:2;stroke-linecap:round;fill:none}.bezier-preset-selected path.bezier-path,\n.bezier-preset-selected line.bezier-control-line{stroke:var(--sys-color-on-tonal-container)}.bezier-preset-selected circle.bezier-control-circle{fill:var(--sys-color-on-tonal-container)}.bezier-curve line.linear-line{stroke:var(--sys-color-neutral-outline);stroke-width:2;stroke-linecap:round;fill:none}.bezier-curve line.bezier-control-line{stroke:var(--override-bezier-control-color);stroke-width:2;stroke-linecap:round;fill:none;opacity:60%}.bezier-curve circle.bezier-control-circle{fill:var(--override-bezier-control-color);cursor:pointer}.bezier-curve path.bezier-path{stroke:var(--sys-color-inverse-surface);stroke-width:3;stroke-linecap:round;fill:none}.bezier-curve path.bezier-path.linear-path{cursor:pointer}.bezier-preview-container{position:relative;background-color:var(--sys-color-cdt-base-container);overflow:hidden;border-radius:20px;width:200%;height:20px;z-index:2;flex-shrink:0;opacity:0%}.bezier-preview-animation{background-color:var(--sys-color-purple-bright);width:20px;height:20px;border-radius:20px;position:absolute}.bezier-preview-onion{margin-top:-20px;position:relative;z-index:1}.bezier-preview-onion > .bezier-preview-animation{opacity:10%}svg.bezier-preset-modify{background-color:var(--sys-color-cdt-base-container);border-radius:35px;display:inline-block;visibility:hidden;transition:transform 100ms cubic-bezier(0.4,0,0.2,1);cursor:pointer;position:absolute}svg.bezier-preset-modify:hover,\n.bezier-preset:hover{background-color:var(--sys-color-state-hover-on-subtle)}.bezier-preset-selected .bezier-preset:hover{background-color:var(--sys-color-tonal-container)}.bezier-preset-modify path{stroke-width:2;stroke:var(--sys-color-on-surface-subtle);fill:none}.bezier-presets{display:flex;flex-direction:column;justify-content:space-between}.bezier-preset-selected .bezier-preset-modify{opacity:100%}.bezier-preset-category{width:50px;cursor:pointer;transition:transform 100ms cubic-bezier(0.4,0,0.2,1)}span.bezier-display-value{width:100%;user-select:text;display:block;text-align:center;line-height:20px;min-height:20px;cursor:text}svg.bezier-curve{margin-left:32px;margin-top:-8px}svg.bezier-curve.linear{margin-top:42px;overflow:visible}svg.bezier-preset-modify.bezier-preset-plus{right:0}.bezier-header{margin-top:16px;z-index:1}svg.bezier-preset-modify:active{transform:scale(1.1);background-color:var(--sys-color-state-ripple-neutral-on-subtle)}.bezier-preset-category:active{transform:scale(1.05)}.bezier-header-active > svg.bezier-preset-modify{visibility:visible}.bezier-preset-modify:active path{stroke:var(--sys-color-on-surface-subtle)}\n/*# sourceURL=${import.meta.resolve("./bezierEditor.css")} */\n`};class F extends(s.ObjectWrapper.eventMixin(e.Widget.VBox)){model;previewElement;previewOnion;outerContainer;selectedCategory;presetsContainer;presetUI;presetCategories;animationTimingUI;header;label;previewAnimation;debouncedStartPreviewAnimation;constructor(e){super(!0),this.registerRequiredCSS(L),this.model=e,this.contentElement.tabIndex=0,this.contentElement.setAttribute("jslog",`${n.dialog("bezierEditor").parent("mapped").track({keydown:"Enter|Escape"})}`),this.setDefaultFocusedElement(this.contentElement),this.element.style.overflowY="auto",this.previewElement=this.contentElement.createChild("div","bezier-preview-container"),this.previewElement.setAttribute("jslog",`${n.preview().track({click:!0})}`),this.previewElement.createChild("div","bezier-preview-animation"),this.previewElement.addEventListener("click",this.startPreviewAnimation.bind(this)),this.previewOnion=this.contentElement.createChild("div","bezier-preview-onion"),this.previewOnion.setAttribute("jslog",`${n.preview().track({click:!0})}`),this.previewOnion.addEventListener("click",this.startPreviewAnimation.bind(this)),this.outerContainer=this.contentElement.createChild("div","bezier-container"),this.selectedCategory=null,this.presetsContainer=this.outerContainer.createChild("div","bezier-presets"),this.presetUI=new M,this.presetCategories=[];for(let e=0;e<B.length;e++){const t=this.createCategory(B[e]);t&&(this.presetCategories[e]=t,this.presetsContainer.appendChild(this.presetCategories[e].icon))}this.debouncedStartPreviewAnimation=s.Debouncer.debounce(this.startPreviewAnimation.bind(this),300),this.animationTimingUI=new A({model:this.model,onChange:e=>{this.setModel(e),this.onchange(),this.unselectPresets(),this.debouncedStartPreviewAnimation()}}),this.animationTimingUI.element().setAttribute("jslog",`${n.bezierCurveEditor().track({click:!0,drag:!0})}`),this.outerContainer.appendChild(this.animationTimingUI.element()),this.header=this.contentElement.createChild("div","bezier-header");const t=this.createPresetModifyIcon(this.header,"bezier-preset-minus","M 12 6 L 8 10 L 12 14");t.addEventListener("click",this.presetModifyClicked.bind(this,!1)),t.setAttribute("jslog",`${n.action("bezier.prev-preset").track({click:!0})}`);const i=this.createPresetModifyIcon(this.header,"bezier-preset-plus","M 8 6 L 12 10 L 8 14");i.addEventListener("click",this.presetModifyClicked.bind(this,!0)),i.setAttribute("jslog",`${n.action("bezier.next-preset").track({click:!0})}`),this.label=this.header.createChild("span","source-code bezier-display-value")}setModel(e){this.model=e,this.animationTimingUI?.setModel(this.model),this.updateUI()}wasShown(){this.unselectPresets();for(const e of this.presetCategories)for(let t=0;t<e.presets.length;t++)this.model.asCSSText()===e.presets[t].value&&(e.presetIndex=t,this.presetCategorySelected(e));this.updateUI(),this.startPreviewAnimation()}onchange(){this.updateUI(),this.dispatchEventToListeners("BezierChanged",this.model.asCSSText())}updateUI(){const e=this.selectedCategory?this.selectedCategory.presets[this.selectedCategory.presetIndex].name:this.model.asCSSText().replace(/\s(-\d\.\d)/g,"$1");this.label.textContent=e,this.animationTimingUI?.draw()}createCategory(t){const i=y.parse(t[0].value);if(!i)return null;const s=document.createElement("div");s.classList.add("bezier-preset-category"),s.setAttribute("jslog",`${n.bezierPresetCategory().track({click:!0}).context(t[0].name)}`);const o=e.UIUtils.createSVGChild(s,"svg","bezier-preset monospace"),r={presets:t,presetIndex:0,icon:s};return this.presetUI.draw(i,o),o.addEventListener("click",this.presetCategorySelected.bind(this,r)),r}createPresetModifyIcon(t,i,n){const s=e.UIUtils.createSVGChild(t,"svg","bezier-preset-modify "+i);s.setAttribute("width","20"),s.setAttribute("height","20");return e.UIUtils.createSVGChild(s,"path").setAttribute("d",n),s}unselectPresets(){for(const e of this.presetCategories)e.icon.classList.remove("bezier-preset-selected");this.selectedCategory=null,this.header.classList.remove("bezier-header-active")}presetCategorySelected(e,t){if(this.selectedCategory===e)return;this.unselectPresets(),this.header.classList.add("bezier-header-active"),this.selectedCategory=e,this.selectedCategory.icon.classList.add("bezier-preset-selected");const i=y.parse(e.presets[e.presetIndex].value);i&&(this.setModel(i),this.onchange(),this.startPreviewAnimation()),t&&t.consume(!0)}presetModifyClicked(e,t){if(null===this.selectedCategory)return;const i=this.selectedCategory.presets.length;this.selectedCategory.presetIndex=(this.selectedCategory.presetIndex+(e?1:-1)+i)%i;const n=this.selectedCategory.presets[this.selectedCategory.presetIndex].value,s=y.parse(n);s&&(this.setModel(s),this.onchange(),this.startPreviewAnimation())}startPreviewAnimation(){this.previewOnion.removeChildren(),this.previewAnimation&&this.previewAnimation.cancel();const e=1600;this.previewAnimation=this.previewElement.animate([{offset:0,transform:"translateX(0px)",opacity:1},{offset:1,transform:"translateX(218px)",opacity:1}],{easing:this.model.asCSSText(),duration:e}),this.previewOnion.removeChildren();for(let t=0;t<=20;t++){const i=this.previewOnion.createChild("div","bezier-preview-animation").animate([{transform:"translateX(0px)",easing:this.model.asCSSText()},{transform:"translateX(218px)"}],{duration:e,fill:"forwards"});i.pause(),i.currentTime=e*t/20}}}const B=[[{name:"linear",value:"linear"},{name:"elastic",value:"linear(0 0%, 0.22 2.1%, 0.86 6.5%, 1.11 8.6%, 1.3 10.7%, 1.35 11.8%, 1.37 12.9%, 1.37 13.7%, 1.36 14.5%, 1.32 16.2%, 1.03 21.8%, 0.94 24%, 0.89 25.9%, 0.88 26.85%, 0.87 27.8%, 0.87 29.25%, 0.88 30.7%, 0.91 32.4%, 0.98 36.4%, 1.01 38.3%, 1.04 40.5%, 1.05 42.7%, 1.05 44.1%, 1.04 45.7%, 1 53.3%, 0.99 55.4%, 0.98 57.5%, 0.99 60.7%, 1 68.1%, 1.01 72.2%, 1 86.7%, 1 100%)"},{name:"bounce",value:"linear(0 0%, 0 2.27%, 0.02 4.53%, 0.04 6.8%, 0.06 9.07%, 0.1 11.33%, 0.14 13.6%, 0.25 18.15%, 0.39 22.7%, 0.56 27.25%, 0.77 31.8%, 1 36.35%, 0.89 40.9%, 0.85 43.18%, 0.81 45.45%, 0.79 47.72%, 0.77 50%, 0.75 52.27%, 0.75 54.55%, 0.75 56.82%, 0.77 59.1%, 0.79 61.38%, 0.81 63.65%, 0.85 65.93%, 0.89 68.2%, 1 72.7%, 0.97 74.98%, 0.95 77.25%, 0.94 79.53%, 0.94 81.8%, 0.94 84.08%, 0.95 86.35%, 0.97 88.63%, 1 90.9%, 0.99 93.18%, 0.98 95.45%, 0.99 97.73%, 1 100%)"},{name:"emphasized",value:"linear(0 0%, 0 1.8%, 0.01 3.6%, 0.03 6.35%, 0.07 9.1%, 0.13 11.4%, 0.19 13.4%, 0.27 15%, 0.34 16.1%, 0.54 18.35%, 0.66 20.6%, 0.72 22.4%, 0.77 24.6%, 0.81 27.3%, 0.85 30.4%, 0.88 35.1%, 0.92 40.6%, 0.94 47.2%, 0.96 55%, 0.98 64%, 0.99 74.4%, 1 86.4%, 1 100%)"}],[{name:"ease-in-out",value:"ease-in-out"},{name:"In Out · Sine",value:"cubic-bezier(0.45, 0.05, 0.55, 0.95)"},{name:"In Out · Quadratic",value:"cubic-bezier(0.46, 0.03, 0.52, 0.96)"},{name:"In Out · Cubic",value:"cubic-bezier(0.65, 0.05, 0.36, 1)"},{name:"Fast Out, Slow In",value:"cubic-bezier(0.4, 0, 0.2, 1)"},{name:"In Out · Back",value:"cubic-bezier(0.68, -0.55, 0.27, 1.55)"}],[{name:"Fast Out, Linear In",value:"cubic-bezier(0.4, 0, 1, 1)"},{name:"ease-in",value:"ease-in"},{name:"In · Sine",value:"cubic-bezier(0.47, 0, 0.75, 0.72)"},{name:"In · Quadratic",value:"cubic-bezier(0.55, 0.09, 0.68, 0.53)"},{name:"In · Cubic",value:"cubic-bezier(0.55, 0.06, 0.68, 0.19)"},{name:"In · Back",value:"cubic-bezier(0.6, -0.28, 0.74, 0.05)"}],[{name:"ease-out",value:"ease-out"},{name:"Out · Sine",value:"cubic-bezier(0.39, 0.58, 0.57, 1)"},{name:"Out · Quadratic",value:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},{name:"Out · Cubic",value:"cubic-bezier(0.22, 0.61, 0.36, 1)"},{name:"Linear Out, Slow In",value:"cubic-bezier(0, 0, 0.2, 1)"},{name:"Out · Back",value:"cubic-bezier(0.18, 0.89, 0.32, 1.28)"}]];var R=Object.freeze({__proto__:null,BezierEditor:F,Presets:B}),O={cssText:`.swatch-icon{display:inline-grid;inline-size:15px;grid:[stack] 1fr/[stack] 1fr;margin-left:1px;margin-right:1px;vertical-align:-1px;color:var(--color)}.swatch{aspect-ratio:1/1;display:inline-block;width:10px;border-radius:1e5px;background:linear-gradient(var(--color),var(--color)),var(--image-file-checker);box-shadow:inset 0 0 0 0.5px rgb(128 128 128/60%);grid-area:stack}.swatch-right{justify-self:end}.swatch-mix{box-shadow:none;justify-self:end;mask:radial-gradient(circle at 0% center,rgb(0 0 0) 50%,rgb(0 0 0/0%) calc(50% + 0.5px))}\n/*# sourceURL=${import.meta.resolve("./colorMixSwatch.css")} */\n`};const $=new CSSStyleSheet;$.replaceSync(O.cssText);const{html:D,render:N,Directives:{ref:_}}=o;class j extends Event{static eventName="colormixchanged";data;constructor(e){super(j.eventName,{}),this.data={text:e}}}class H extends HTMLElement{shadow=this.attachShadow({mode:"open"});colorMixText="";firstColorText="";secondColorText="";#A=null;constructor(){super(),this.shadow.adoptedStyleSheets=[$]}mixedColor(){const e=this.#A?.computedStyleMap().get("color")?.toString()??null;return e?s.Color.parse(e):null}setFirstColor(e){this.firstColorText&&(this.colorMixText=this.colorMixText.replace(this.firstColorText,e)),this.firstColorText=e,this.dispatchEvent(new j(this.colorMixText)),this.#U()}setSecondColor(e){this.secondColorText&&(this.colorMixText=i.StringUtilities.replaceLast(this.colorMixText,this.secondColorText,e)),this.secondColorText=e,this.dispatchEvent(new j(this.colorMixText)),this.#U()}setColorMixText(e){this.colorMixText=e,this.dispatchEvent(new j(this.colorMixText)),this.#U()}getText(){return this.colorMixText}#U(){this.colorMixText&&this.firstColorText&&this.secondColorText?N(D`<div class="swatch-icon"
2
+ ${_((e=>{this.#A=e}))}
3
+ jslog=${n.cssColorMix()}
4
+ style="--color: ${this.colorMixText}">
5
+ <span class="swatch swatch-left" id="swatch-1" style="--color: ${this.firstColorText}"></span>
6
+ <span class="swatch swatch-right" id="swatch-2" style="--color: ${this.secondColorText}"></span>
7
+ <span class="swatch swatch-mix" id="mix-result" style="--color: ${this.colorMixText}"></span></div>`,this.shadow,{host:this}):N(this.colorMixText,this.shadow,{host:this})}}customElements.define("devtools-color-mix-swatch",H);var V=Object.freeze({__proto__:null,ColorMixChangedEvent:j,ColorMixSwatch:H}),G={cssText:`:host{white-space:nowrap}.color-swatch{position:relative;margin-left:1px;margin-right:2px;width:12px;height:12px;transform:scale(0.8);vertical-align:-2px;display:inline-block;user-select:none;background-image:var(--image-file-checker);line-height:10px}.color-swatch-inner{width:100%;height:100%;display:inline-block;border:1px solid var(--sys-color-neutral-outline);box-sizing:border-box;cursor:pointer}.color-swatch.readonly .color-swatch-inner{cursor:unset}.color-swatch:not(.readonly) .color-swatch-inner:hover{border:1px solid var(--sys-color-outline)}@media (forced-colors: active){.color-swatch{forced-color-adjust:none}}\n/*# sourceURL=${import.meta.resolve("./colorSwatch.css")} */\n`};const K=new CSSStyleSheet;K.replaceSync(G.cssText);const{html:W}=o,X={shiftclickToChangeColorFormat:"Shift-click to change color format"},Y=l.i18n.registerUIStrings("ui/legacy/components/inline_editor/ColorSwatch.ts",X),q=l.i18n.getLocalizedString.bind(void 0,Y);class Z extends Event{static eventName="colorchanged";data;constructor(e){super(Z.eventName,{}),this.data={color:e}}}class Q extends Event{static eventName="swatchclick";constructor(){super(Q.eventName,{})}}class J extends HTMLElement{shadow=this.attachShadow({mode:"open"});tooltip=q(X.shiftclickToChangeColorFormat);color=null;readonly=!1;constructor(e){super(),this.shadow.adoptedStyleSheets=[K],e&&(this.tooltip=e)}static isColorSwatch(e){return"devtools-color-swatch"===e.localName}setReadonly(e){this.readonly!==e&&(this.readonly=e,this.color&&this.renderColor(this.color))}getColor(){return this.color}get anchorBox(){const e=this.shadow.querySelector(".color-swatch");return e?e.boxInWindow():null}getText(){return this.color?.getAuthoredText()??this.color?.asString()}renderColor(e){this.color=e;const t=o.Directives.classMap({"color-swatch":!0,readonly:this.readonly});o.render(W`<span class=${t} title=${this.tooltip}><span class="color-swatch-inner"
8
+ style="background-color: ${e.asString()};"
9
+ jslog=${n.showStyleEditor("color").track({click:!0})}
10
+ @click=${this.onClick}
11
+ @mousedown=${this.consume}
12
+ @dblclick=${this.consume}></span></span><slot><span>${this.getText()}</span></slot>`,this.shadow,{host:this})}onClick(e){if(!this.readonly)return e.shiftKey?(e.stopPropagation(),void this.showFormatPicker(e)):void this.dispatchEvent(new Q)}consume(e){e.stopPropagation()}setColor(e){this.renderColor(e),this.dispatchEvent(new Z(e))}setColorText(e){this.firstElementChild?.remove(),this.renderColor(e);this.appendChild(document.createElement("span")).appendChild(document.createTextNode(e.getAuthoredText()??e.asString())),this.dispatchEvent(new Z(e))}showFormatPicker(e){if(!this.color)return;new d.FormatPickerContextMenu.FormatPickerContextMenu(this.color).show(e,(e=>{this.setColorText(e)}))}}customElements.define("devtools-color-swatch",J);var ee=Object.freeze({__proto__:null,ClickEvent:Q,ColorChangedEvent:Z,ColorSwatch:J}),te={cssText:`.editor.interacting::before{content:"";position:fixed;inset:0}.clock,\n.pointer,\n.center,\n.hand,\n.dial{position:absolute}.clock{top:6px;width:6em;height:6em;background-color:var(--sys-color-cdt-base-container);border:0.5em solid var(--sys-color-neutral-outline);border-radius:9em;box-shadow:var(--drop-shadow),inset 0 0 15px var(--box-shadow-outline-color);transform:translateX(-3em)}.center,\n.hand{box-shadow:0 0 2px var(--box-shadow-outline-color)}.pointer{margin:auto;top:0;left:-0.4em;right:0;width:0;height:0;border-style:solid;border-width:0 0.9em 0.9em;border-color:transparent transparent var(--sys-color-neutral-outline) transparent}.center,\n.hand,\n.dial{margin:auto;inset:0}.center{width:0.7em;height:0.7em;border-radius:10px}.dial{width:2px;height:var(--clock-dial-length);background-color:var(--override-dial-color);border-radius:1px}.hand{height:50%;width:0.3em;background:var(--sys-color-tonal-container)}.hand::before{content:"";display:inline-block;position:absolute;top:-0.6em;left:-0.35em;width:1em;height:1em;border-radius:50%;cursor:pointer;box-shadow:0 0 5px var(--box-shadow-outline-color)}.hand::before,\n.center{background-color:var(--sys-color-tonal-container)}:host-context(.theme-with-dark-background) .hand::before{box-shadow:0 0 5px hsl(0deg 0% 0%/80%)}:host-context(.theme-with-dark-background) .center,\n:host-context(.theme-with-dark-background) .hand{box-shadow:0 0 2px hsl(0deg 0% 0%/60%)}:host-context(.theme-with-dark-background) .clock{background-color:hsl(225deg 5% 27%)}\n/*# sourceURL=${import.meta.resolve("./cssAngleEditor.css")} */\n`};const ie=/(?<value>[+-]?\d*\.?\d+)(?<unit>deg|grad|rad|turn)/,ne=e=>{const t=e.match(ie);return t?.groups?{value:Number(t.groups.value),unit:t.groups.unit}:null},se=(t,i)=>{let n=t;switch(i){case"grad":n=e.Geometry.radiansToGradians(t);break;case"deg":n=e.Geometry.radiansToDegrees(t);break;case"turn":n=e.Geometry.radiansToTurns(t)}return{value:n,unit:i}},oe=t=>{switch(t.unit){case"deg":return e.Geometry.degreesToRadians(t.value);case"grad":return e.Geometry.gradiansToRadians(t.value);case"turn":return e.Geometry.turnsToRadians(t.value)}return t.value},re=(e,t)=>{const i=oe(e);return{translateX:Math.sin(i)*t,translateY:-Math.cos(i)*t}},ae=e=>{let t=e.value;switch(e.unit){case"deg":case"grad":t=Math.round(e.value);break;case"rad":t=Math.round(1e4*e.value)/1e4;break;case"turn":t=Math.round(100*e.value)/100;break;default:i.assertNever(e.unit,`Unknown angle unit: ${e.unit}`)}return{value:t,unit:e.unit}},le=e=>{switch(e){case"deg":return"grad";case"grad":return"rad";case"rad":return"turn";default:return"deg"}},de=(e,t)=>{if(e.unit===t)return e;const i=oe(e);return se(i,t)},he=(t,i)=>{const n=e.UIUtils.getValueModificationDirection(i);if(null===n)return;let s="Up"===n?Math.PI/180:-Math.PI/180;i.shiftKey&&(s*=10);const o=oe(t);return se(o+s,t.unit)};var ce=Object.freeze({__proto__:null,CSSAngleRegex:ie,convertAngleUnit:de,get2DTranslationsForAngle:re,getAngleFromRadians:se,getNewAngleFromEvent:he,getNextUnit:le,getRadiansFromAngle:oe,parseText:ne,roundAngleByUnit:ae});const ue=new CSSStyleSheet;ue.replaceSync(te.cssText);const{render:pe,html:me}=o,ge=o.Directives.styleMap;class ve extends HTMLElement{shadow=this.attachShadow({mode:"open"});angle={value:0,unit:"rad"};onAngleUpdate;background="";clockRadius=38.5;dialTemplates;mousemoveThrottler=new s.Throttler.Throttler(16.67);mousemoveListener=this.onMousemove.bind(this);connectedCallback(){this.shadow.adoptedStyleSheets=[ue],this.style.setProperty("--clock-dial-length","6px")}set data(e){this.angle=e.angle,this.onAngleUpdate=e.onAngleUpdate,this.background=e.background,this.render()}updateAngleFromMousePosition(e,t,i){const n=this.shadow.querySelector(".clock");if(!n||!this.onAngleUpdate)return;const{top:s,right:o,bottom:r,left:a}=n.getBoundingClientRect();this.clockRadius=(o-a)/2;const l=(a+o)/2,d=(r+s)/2,h=-Math.atan2(e-l,t-d)+Math.PI;if(i){const e=oe({value:15,unit:"deg"}),t=Math.round(h/e)*e;this.onAngleUpdate(se(t,this.angle.unit))}else this.onAngleUpdate(se(h,this.angle.unit))}onEditorMousedown(e){e.stopPropagation(),this.updateAngleFromMousePosition(e.pageX,e.pageY,e.shiftKey);const t=e.target instanceof Node&&e.target.ownerDocument,i=this.shadow.querySelector(".editor");t&&i&&(t.addEventListener("mousemove",this.mousemoveListener,{capture:!0}),i.classList.add("interacting"),t.addEventListener("mouseup",(()=>{t.removeEventListener("mousemove",this.mousemoveListener,{capture:!0}),i.classList.remove("interacting")}),{once:!0}))}onMousemove(e){1===e.buttons&&(e.preventDefault(),this.mousemoveThrottler.schedule((()=>(this.updateAngleFromMousePosition(e.pageX,e.pageY,e.shiftKey),Promise.resolve()))))}onEditorWheel(e){if(!this.onAngleUpdate)return;const t=he(this.angle,e);t&&this.onAngleUpdate(t),e.preventDefault()}render(){const e={background:this.background},{translateX:t,translateY:i}=re(this.angle,this.clockRadius/2),s={transform:`translate(${t}px, ${i}px) rotate(${this.angle.value}${this.angle.unit})`};pe(me`
13
+ <div class="editor" jslog=${n.dialog("cssAngleEditor").track({click:!0,drag:!0,resize:!0,keydown:"Enter|Escape"})}>
14
+ <span class="pointer"></span>
15
+ <div
16
+ class="clock"
17
+ style=${ge(e)}
18
+ @mousedown=${this.onEditorMousedown}
19
+ @wheel=${this.onEditorWheel}>
20
+ ${this.renderDials()}
21
+ <div class="hand" style=${ge(s)}></div>
22
+ <span class="center"></span>
23
+ </div>
24
+ </div>
25
+ `,this.shadow,{host:this})}renderDials(){return this.dialTemplates||(this.dialTemplates=[0,45,90,135,180,225,270,315].map((e=>{const t=this.clockRadius-6-3,{translateX:i,translateY:n}=re({value:e,unit:"deg"},t);return me`<span class="dial" style=${ge({transform:`translate(${i}px, ${n}px) rotate(${e}deg)`})}></span>`}))),this.dialTemplates}}customElements.define("devtools-css-angle-editor",ve);var xe={cssText:`.swatch{position:relative;display:inline-block;margin-bottom:-2px;width:1em;height:1em;border:1px solid var(--sys-color-neutral-outline);border-radius:50%;overflow:hidden;cursor:pointer;background-color:var(--sys-color-neutral-container)}.mini-hand{position:absolute;margin:auto;inset:0;height:55%;width:2px;background-color:var(--sys-color-tonal-container);border-radius:5px}\n/*# sourceURL=${import.meta.resolve("./cssAngleSwatch.css")} */\n`};const be=new CSSStyleSheet;be.replaceSync(xe.cssText);const{render:fe,html:we}=o,ye=o.Directives.styleMap;class Se extends HTMLElement{shadow=this.attachShadow({mode:"open"});angle={value:0,unit:"rad"};connectedCallback(){this.shadow.adoptedStyleSheets=[be]}set data(e){this.angle=e.angle,this.render()}render(){const{translateX:e,translateY:t}=re(this.angle,2.75),i={transform:`translate(${e}px, ${t}px) rotate(${this.angle.value}${this.angle.unit})`};fe(we`
26
+ <div class="swatch">
27
+ <span class="mini-hand" style=${ye(i)}></span>
28
+ </div>
29
+ `,this.shadow,{host:this})}}customElements.define("devtools-css-angle-swatch",Se);var Ce={cssText:`.css-angle{display:inline-block;position:relative;outline:none}devtools-css-angle-swatch{display:inline-block;margin-right:2px;user-select:none}devtools-css-angle-editor{--override-dial-color:var(--sys-color-neutral-outline);position:fixed;z-index:2}.preview{display:inline-block}\n/*# sourceURL=${import.meta.resolve("./cssAngle.css")} */\n`};class Ie extends Event{static eventName="valuechanged";data;constructor(e){super(Ie.eventName,{}),this.data={value:e}}}var ke=Object.freeze({__proto__:null,ValueChangedEvent:Ie});const Ee=new CSSStyleSheet;Ee.replaceSync(Ce.cssText);const{render:Pe,html:Te}=o,ze=o.Directives.styleMap;class Me extends Event{static eventName="popovertoggled";data;constructor(e){super(Me.eventName,{}),this.data={open:e}}}class Ae extends Event{static eventName="unitchanged";data;constructor(e){super(Ae.eventName,{}),this.data={value:e}}}const Ue={value:0,unit:"rad"};class Le extends HTMLElement{shadow=this.attachShadow({mode:"open"});angle=Ue;displayedAngle=Ue;propertyValue="";containingPane;angleElement=null;swatchElement=null;popoverOpen=!1;popoverStyleTop="";popoverStyleLeft="";onMinifyingAction=this.minify.bind(this);connectedCallback(){this.shadow.adoptedStyleSheets=[Ee]}set data(e){const t=ne(e.angleText);t&&(this.angle=t,this.displayedAngle={...t},this.containingPane=e.containingPane,this.render())}disconnectedCallback(){this.unbindMinifyingAction()}popOver(){if(!this.containingPane)return;if(this.angleElement||(this.angleElement=this.shadow.querySelector(".css-angle")),this.swatchElement||(this.swatchElement=this.shadow.querySelector("devtools-css-angle-swatch")),!this.angleElement||!this.swatchElement)return;this.dispatchEvent(new Me(!0)),this.bindMinifyingAction();const e=this.swatchElement.getBoundingClientRect().bottom,t=this.swatchElement.getBoundingClientRect().left;if(e&&t){const i=this.containingPane.getBoundingClientRect().top,n=this.containingPane.getBoundingClientRect().left;this.popoverStyleTop=e-i+"px",this.popoverStyleLeft=t-n+"px"}this.popoverOpen=!0,this.render(),this.angleElement.focus()}addEventListener(e,t,i){super.addEventListener(e,t,i)}minify(){!1!==this.popoverOpen&&(this.popoverOpen=!1,this.dispatchEvent(new Me(!1)),this.unbindMinifyingAction(),this.render())}updateProperty(e){this.propertyValue=e,this.render()}updateAngle(e){this.displayedAngle=ae(de(e,this.displayedAngle.unit)),this.angle=this.displayedAngle,this.dispatchEvent(new Ie(`${this.angle.value}${this.angle.unit}`)),this.render()}displayNextUnit(){const e=le(this.displayedAngle.unit);this.displayedAngle=ae(de(this.angle,e)),this.dispatchEvent(new Ae(`${this.displayedAngle.value}${this.displayedAngle.unit}`))}bindMinifyingAction(){document.addEventListener("mousedown",this.onMinifyingAction),this.containingPane&&this.containingPane.addEventListener("scroll",this.onMinifyingAction)}unbindMinifyingAction(){document.removeEventListener("mousedown",this.onMinifyingAction),this.containingPane&&this.containingPane.removeEventListener("scroll",this.onMinifyingAction)}onMiniIconClick(e){e.stopPropagation(),!e.shiftKey||this.popoverOpen?this.popoverOpen?this.minify():this.popOver():this.displayNextUnit()}consume(e){e.stopPropagation()}onKeydown(e){if(this.popoverOpen)switch(e.key){case"Escape":e.stopPropagation(),this.minify(),this.blur();break;case"ArrowUp":case"ArrowDown":{const t=he(this.angle,e);t&&this.updateAngle(t),e.preventDefault();break}}}render(){Pe(Te`
30
+ <div class="css-angle" @focusout=${this.minify} @keydown=${this.onKeydown} tabindex="-1">
31
+ <div class="preview">
32
+ <devtools-css-angle-swatch
33
+ @click=${this.onMiniIconClick}
34
+ @mousedown=${this.consume}
35
+ @dblclick=${this.consume}
36
+ .data=${{angle:this.angle}}>
37
+ </devtools-css-angle-swatch><slot></slot></div>
38
+ ${this.popoverOpen?this.renderPopover():null}
39
+ </div>
40
+ `,this.shadow,{host:this})}renderPopover(){let e="";return this.propertyValue&&!this.propertyValue.match(/url\(.*\)/i)&&(e=this.propertyValue),Te`
41
+ <devtools-css-angle-editor
42
+ class="popover popover-css-angle"
43
+ style=${ze({top:this.popoverStyleTop,left:this.popoverStyleLeft})}
44
+ .data=${{angle:this.angle,onAngleUpdate:e=>{this.updateAngle(e)},background:e}}
45
+ ></devtools-css-angle-editor>
46
+ `}}customElements.define("devtools-css-angle",Le);var Fe=Object.freeze({__proto__:null,CSSAngle:Le,PopoverToggledEvent:Me,UnitChangedEvent:Ae}),Be={cssText:`:host{user-select:none;border:1px solid transparent}.shadow-editor-field{height:24px;margin-top:8px;font-size:12px;flex-shrink:0}.shadow-editor-field:last-of-type{margin-bottom:8px}.shadow-editor-flex-field{display:flex;align-items:center;flex-direction:row}.shadow-editor-field.shadow-editor-blur-field{margin-top:40px}.shadow-editor-2D-slider{position:absolute;height:88px;width:88px;border:1px solid var(--divider-line);border-radius:2px}.shadow-editor-label{display:inline-block;width:52px;height:24px;line-height:24px;margin-right:8px;text-align:right}.shadow-editor-button-left,\n.shadow-editor-button-right{width:74px;height:24px;padding:3px 7px;line-height:16px;border:1px solid var(--divider-line);color:var(--sys-color-on-surface);background-color:var(--sys-color-cdt-base-container);text-align:center;font-weight:500}.shadow-editor-button-left{border-radius:2px 0 0 2px}.shadow-editor-button-right{border-radius:0 2px 2px 0;border-left-width:0}.shadow-editor-button-left:hover,\n.shadow-editor-button-right:hover{box-shadow:0 1px 1px var(--color-background-elevation-1)}.shadow-editor-button-left:focus,\n.shadow-editor-button-right:focus{background-color:var(--color-background-elevation-1)}.shadow-editor-button-left.enabled,\n.shadow-editor-button-right.enabled{--override-button-text-color:#fff;background-color:var(--color-primary-old);color:var(--override-button-text-color)}.shadow-editor-button-left.enabled:focus,\n.shadow-editor-button-right.enabled:focus{background-color:var(--color-primary-variant)}.shadow-editor-text-input{width:52px;margin-right:8px;text-align:right;box-shadow:var(--legacy-focus-ring-inactive-shadow)}@media (forced-colors: active){.shadow-editor-button-left:hover,\n .shadow-editor-button-left.enabled:focus,\n .shadow-editor-button-right:hover .shadow-editor-button-left.enabled,\n .shadow-editor-button-right.enabled,\n .shadow-editor-button-right.enabled:focus{forced-color-adjust:none;background-color:Highlight;color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./cssShadowEditor.css")} */\n`};const Re={type:"Type",xOffset:"X offset",yOffset:"Y offset",blur:"Blur",spread:"Spread"},Oe=l.i18n.registerUIStrings("ui/legacy/components/inline_editor/CSSShadowEditor.ts",Re),$e=l.i18n.getLocalizedString.bind(void 0,Oe),De=20,Ne="px",_e=new RegExp("([+-]?(?:[0-9]*[.])?[0-9]+(?:[eE][+-]?[0-9]+)?)(ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw)|[+-]?(?:0*[.])?0+(?:[eE][+-]?[0-9]+)?","gi").source;class je{amount;unit;constructor(e,t){this.amount=e,this.unit=t}static parse(e){const t=new RegExp("^(?:"+_e+")$","i"),i=e.match(t);return i?i.length>2&&i[2]?new je(parseFloat(i[1]),i[2]):je.zero():null}static zero(){return new je(0,"")}asCSSText(){return this.amount+this.unit}}class He extends(s.ObjectWrapper.eventMixin(e.Widget.VBox)){typeField;outsetButton;insetButton;xInput;yInput;xySlider;halfCanvasSize;innerCanvasSize;blurInput;blurSlider;spreadField;spreadInput;spreadSlider;model;canvasOrigin;changedElement;constructor(){super(!0),this.registerRequiredCSS(Be),this.contentElement.tabIndex=0,this.contentElement.setAttribute("jslog",`${n.dialog("cssShadowEditor").parent("mapped").track({keydown:"Enter|Escape"})}`),this.setDefaultFocusedElement(this.contentElement),this.typeField=this.contentElement.createChild("div","shadow-editor-field shadow-editor-flex-field"),this.typeField.createChild("label","shadow-editor-label").textContent=$e(Re.type),this.outsetButton=this.typeField.createChild("button","shadow-editor-button-left"),this.outsetButton.textContent=l.i18n.lockedString("Outset"),this.outsetButton.addEventListener("click",this.onButtonClick.bind(this),!1),this.insetButton=this.typeField.createChild("button","shadow-editor-button-right"),this.insetButton.textContent=l.i18n.lockedString("Inset"),this.insetButton.addEventListener("click",this.onButtonClick.bind(this),!1);const t=this.contentElement.createChild("div","shadow-editor-field");this.xInput=this.createTextInput(t,$e(Re.xOffset),"x-offset");const i=this.contentElement.createChild("div","shadow-editor-field");this.yInput=this.createTextInput(i,$e(Re.yOffset),"y-offset"),this.xySlider=t.createChild("canvas","shadow-editor-2D-slider"),this.xySlider.setAttribute("jslog",`${n.slider("xy").track({click:!0,drag:!0,keydown:"ArrowUp|ArrowDown|ArrowLeft|ArrowRight"})}`),this.xySlider.width=88,this.xySlider.height=88,this.xySlider.tabIndex=-1,this.halfCanvasSize=44,this.innerCanvasSize=this.halfCanvasSize-6,e.UIUtils.installDragHandle(this.xySlider,this.dragStart.bind(this),this.dragMove.bind(this),null,"default"),this.xySlider.addEventListener("keydown",this.onCanvasArrowKey.bind(this),!1),this.xySlider.addEventListener("blur",this.onCanvasBlur.bind(this),!1);const s=this.contentElement.createChild("div","shadow-editor-field shadow-editor-flex-field shadow-editor-blur-field");this.blurInput=this.createTextInput(s,$e(Re.blur),"blur"),this.blurSlider=this.createSlider(s,"blur"),this.spreadField=this.contentElement.createChild("div","shadow-editor-field shadow-editor-flex-field"),this.spreadInput=this.createTextInput(this.spreadField,$e(Re.spread),"spread"),this.spreadSlider=this.createSlider(this.spreadField,"spread")}createTextInput(t,i,s){const o=t.createChild("label","shadow-editor-label");o.textContent=i,o.setAttribute("for",i);const r=e.UIUtils.createInput("shadow-editor-text-input","text");return t.appendChild(r),r.id=i,r.addEventListener("keydown",this.handleValueModification.bind(this),!1),r.addEventListener("wheel",this.handleValueModification.bind(this),!1),r.addEventListener("input",this.onTextInput.bind(this),!1),r.addEventListener("blur",this.onTextBlur.bind(this),!1),r.setAttribute("jslog",`${n.value().track({change:!0,keydown:"ArrowUp|ArrowDown"}).context(s)}`),r}createSlider(t,i){const s=e.UIUtils.createSlider(0,De,-1);return s.addEventListener("input",this.onSliderInput.bind(this),!1),s.setAttribute("jslog",`${n.slider().track({click:!0,drag:!0}).context(i)}`),t.appendChild(s),s}wasShown(){super.wasShown(),this.updateUI()}setModel(e){this.model=e,this.typeField.classList.toggle("hidden",!e.isBoxShadow()),this.spreadField.classList.toggle("hidden",!e.isBoxShadow()),this.updateUI()}updateUI(){this.updateButtons(),this.xInput.value=this.model.offsetX().asCSSText(),this.yInput.value=this.model.offsetY().asCSSText(),this.blurInput.value=this.model.blurRadius().asCSSText(),this.spreadInput.value=this.model.spreadRadius().asCSSText(),this.blurSlider.value=this.model.blurRadius().amount.toString(),this.spreadSlider.value=this.model.spreadRadius().amount.toString(),this.updateCanvas(!1)}updateButtons(){this.insetButton.classList.toggle("enabled",this.model.inset()),this.outsetButton.classList.toggle("enabled",!this.model.inset())}updateCanvas(e){const t=this.xySlider.getContext("2d");if(!t)throw new Error("Unable to obtain canvas context");t.clearRect(0,0,this.xySlider.width,this.xySlider.height),t.save(),t.setLineDash([1,1]),t.strokeStyle="rgba(210, 210, 210, 0.8)",t.beginPath(),t.moveTo(this.halfCanvasSize,0),t.lineTo(this.halfCanvasSize,88),t.moveTo(0,this.halfCanvasSize),t.lineTo(88,this.halfCanvasSize),t.stroke(),t.restore();const i=this.sliderThumbPosition();t.save(),t.translate(this.halfCanvasSize,this.halfCanvasSize),t.lineWidth=2,t.strokeStyle="rgba(130, 130, 130, 0.75)",t.beginPath(),t.moveTo(0,0),t.lineTo(i.x,i.y),t.stroke(),e&&(t.beginPath(),t.fillStyle="rgba(66, 133, 244, 0.4)",t.arc(i.x,i.y,8,0,2*Math.PI),t.fill()),t.beginPath(),t.fillStyle="#4285F4",t.arc(i.x,i.y,6,0,2*Math.PI),t.fill(),t.restore()}onButtonClick(e){const t=e.currentTarget===this.insetButton;t&&this.model.inset()||!t&&!this.model.inset()||(this.model.setInset(t),this.updateButtons(),this.dispatchEventToListeners("ShadowChanged",this.model))}handleValueModification(t){const i=t.currentTarget,n=e.UIUtils.createReplacementString(i.value,t,(function(e,t,i){i.length||(i=Ne);return e+t+i}));if(!n)return;const s=je.parse(n);s&&(t.currentTarget===this.blurInput&&s.amount<0&&(s.amount=0),i.value=s.asCSSText(),i.selectionStart=0,i.selectionEnd=i.value.length,this.onTextInput(t),t.consume(!0))}onTextInput(e){const t=e.currentTarget;this.changedElement=t,this.changedElement.classList.remove("invalid");const i=je.parse(t.value);!i||t===this.blurInput&&i.amount<0||(t===this.xInput?(this.model.setOffsetX(i),this.updateCanvas(!1)):t===this.yInput?(this.model.setOffsetY(i),this.updateCanvas(!1)):t===this.blurInput?(this.model.setBlurRadius(i),this.blurSlider.value=i.amount.toString()):t===this.spreadInput&&(this.model.setSpreadRadius(i),this.spreadSlider.value=i.amount.toString()),this.dispatchEventToListeners("ShadowChanged",this.model))}onTextBlur(){if(!this.changedElement)return;let e=this.changedElement.value.trim()?je.parse(this.changedElement.value):je.zero();if(e||(e=je.parse(this.changedElement.value+Ne)),!e)return this.changedElement.classList.add("invalid"),void(this.changedElement=null);this.changedElement===this.xInput?(this.model.setOffsetX(e),this.xInput.value=e.asCSSText(),this.updateCanvas(!1)):this.changedElement===this.yInput?(this.model.setOffsetY(e),this.yInput.value=e.asCSSText(),this.updateCanvas(!1)):this.changedElement===this.blurInput?(e.amount<0&&(e=je.zero()),this.model.setBlurRadius(e),this.blurInput.value=e.asCSSText(),this.blurSlider.value=e.amount.toString()):this.changedElement===this.spreadInput&&(this.model.setSpreadRadius(e),this.spreadInput.value=e.asCSSText(),this.spreadSlider.value=e.amount.toString()),this.changedElement=null,this.dispatchEventToListeners("ShadowChanged",this.model)}onSliderInput(e){e.currentTarget===this.blurSlider?(this.model.setBlurRadius(new je(Number(this.blurSlider.value),this.model.blurRadius().unit||Ne)),this.blurInput.value=this.model.blurRadius().asCSSText(),this.blurInput.classList.remove("invalid")):e.currentTarget===this.spreadSlider&&(this.model.setSpreadRadius(new je(Number(this.spreadSlider.value),this.model.spreadRadius().unit||Ne)),this.spreadInput.value=this.model.spreadRadius().asCSSText(),this.spreadInput.classList.remove("invalid")),this.dispatchEventToListeners("ShadowChanged",this.model)}dragStart(t){this.xySlider.focus(),this.updateCanvas(!0),this.canvasOrigin=new e.Geometry.Point(this.xySlider.getBoundingClientRect().left+this.halfCanvasSize,this.xySlider.getBoundingClientRect().top+this.halfCanvasSize);const i=new e.Geometry.Point(t.x-this.canvasOrigin.x,t.y-this.canvasOrigin.y),n=this.sliderThumbPosition();return i.distanceTo(n)>=6&&this.dragMove(t),!0}dragMove(t){let i=new e.Geometry.Point(t.x-this.canvasOrigin.x,t.y-this.canvasOrigin.y);t.shiftKey&&(i=this.snapToClosestDirection(i));const n=this.constrainPoint(i,this.innerCanvasSize),s=Math.round(n.x/this.innerCanvasSize*De),o=Math.round(n.y/this.innerCanvasSize*De);t.shiftKey?(this.model.setOffsetX(new je(s,this.model.offsetX().unit||Ne)),this.model.setOffsetY(new je(o,this.model.offsetY().unit||Ne))):(t.altKey||this.model.setOffsetX(new je(s,this.model.offsetX().unit||Ne)),e.KeyboardShortcut.KeyboardShortcut.eventHasCtrlEquivalentKey(t)||this.model.setOffsetY(new je(o,this.model.offsetY().unit||Ne))),this.xInput.value=this.model.offsetX().asCSSText(),this.yInput.value=this.model.offsetY().asCSSText(),this.xInput.classList.remove("invalid"),this.yInput.classList.remove("invalid"),this.updateCanvas(!0),this.dispatchEventToListeners("ShadowChanged",this.model)}onCanvasBlur(){this.updateCanvas(!1)}onCanvasArrowKey(e){const t=e;let n=0,s=0;if("ArrowRight"===t.key?n=1:"ArrowLeft"===t.key?n=-1:"ArrowUp"===t.key?s=-1:"ArrowDown"===t.key&&(s=1),n||s){if(e.consume(!0),n){const e=this.model.offsetX(),t=i.NumberUtilities.clamp(e.amount+n,-20,De);if(t===e.amount)return;this.model.setOffsetX(new je(t,e.unit||Ne)),this.xInput.value=this.model.offsetX().asCSSText(),this.xInput.classList.remove("invalid")}if(s){const e=this.model.offsetY(),t=i.NumberUtilities.clamp(e.amount+s,-20,De);if(t===e.amount)return;this.model.setOffsetY(new je(t,e.unit||Ne)),this.yInput.value=this.model.offsetY().asCSSText(),this.yInput.classList.remove("invalid")}this.updateCanvas(!0),this.dispatchEventToListeners("ShadowChanged",this.model)}}constrainPoint(t,i){return Math.abs(t.x)<=i&&Math.abs(t.y)<=i?new e.Geometry.Point(t.x,t.y):t.scale(i/Math.max(Math.abs(t.x),Math.abs(t.y)))}snapToClosestDirection(t){let i=Number.MAX_VALUE,n=t;const s=[new e.Geometry.Point(0,-1),new e.Geometry.Point(1,-1),new e.Geometry.Point(1,0),new e.Geometry.Point(1,1)];for(const e of s){const s=t.projectOn(e),o=t.distanceTo(s);o<i&&(i=o,n=s)}return n}sliderThumbPosition(){const t=this.model.offsetX().amount/De*this.innerCanvasSize,i=this.model.offsetY().amount/De*this.innerCanvasSize;return this.constrainPoint(new e.Geometry.Point(t,i),this.innerCanvasSize)}}var Ve=Object.freeze({__proto__:null,CSSLength:je,CSSShadowEditor:He}),Ge={cssText:`:host{user-select:none;padding:4px 12px 12px}.error-input{box-shadow:0 0 0 1px var(--sys-color-error)}.error-text{color:var(--sys-color-error);padding:6px 0}.warning-input{--override-warning-input-color:#ffdd9e;box-shadow:0 0 0 1px var(--override-warning-input-color)}.theme-with-dark-background .warning-input,\n:host-context(.theme-with-dark-background) .warning-input{--override-warning-input-color:rgb(97 63 0)}.hide-warning{display:none}.font-section-header{font-weight:normal;font-size:17px;text-align:left}.font-section-subheader{font-size:12px;text-align:left;font-weight:bold}.font-selector-section{overflow-y:auto;padding-bottom:10px}.font-selector-input{width:204px;text-align-last:center}.font-reset-button{width:100%;margin-top:10px}.font-section{border-top:1px solid var(--sys-color-divider)}select.font-editor-select{min-width:50px;min-height:27px}input::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button{display:none;margin:0}.preview-text{max-width:300px;word-break:normal;overflow-wrap:anywhere;display:block}.rendered-font-list-label{font-weight:bold;font-size:12px}.rendered-font-list{padding:5px 0}.shadow-editor-field{height:24px;margin-top:8px;font-size:12px;flex-shrink:0}.shadow-editor-field:last-of-type{margin-bottom:8px}.shadow-editor-flex-field{display:flex;align-items:center;flex-direction:row}.shadow-editor-field.shadow-editor-blur-field{margin-top:40px}.shadow-editor-2D-slider{position:absolute;height:88px;width:88px;border:1px solid var(--divider-line);border-radius:2px}.shadow-editor-label{display:inline-block;width:70px;height:24px;line-height:24px;margin-right:8px;text-align:left}.shadow-editor-button-left,\n.shadow-editor-button-right{width:74px;height:24px;padding:3px 7px;line-height:16px;border:1px solid var(--divider-line);color:var(--sys-color-on-surface);background-color:var(--sys-color-cdt-base-container);text-align:center;font-weight:500}.shadow-editor-button-left{border-radius:2px 0 0 2px}.shadow-editor-button-right{border-radius:0 2px 2px 0;border-left-width:0}.shadow-editor-button-left:hover,\n.shadow-editor-button-right:hover{box-shadow:0 1px 1px var(--divider-line)}.shadow-editor-button-left:focus,\n.shadow-editor-button-right:focus{background-color:var(--sys-color-state-focus-highlight)}.shadow-editor-text-input{width:50px;margin:8px;text-align:center;box-shadow:var(--legacy-focus-ring-inactive-shadow)}.spectrum-switcher{border-radius:2px;height:20px;width:20px;padding:2px;margin-left:5px}.spectrum-switcher:hover{background-color:var(--sys-color-state-hover-on-subtle)}.spectrum-switcher:focus-visible{background-color:var(--sys-color-state-focus-highlight)}\n/*# sourceURL=${import.meta.resolve("./fontEditor.css")} */\n`};async function Ke(t){const i=e.Context.Context.instance().flavor(h.DOMModel.DOMNode);let n;if(i?.parentNode&&"HTML"!==i.nodeName()){const[e]=h.TargetManager.TargetManager.instance().models(u.CSSOverviewModel.CSSOverviewModel),s=t?i.parentNode.id:i.id,o=(await e.getComputedStyleForNode(s).then(We)).replace(/[a-z]/g,"");n=parseFloat(o)}else n=16;return n}function We(e){const t=e.computedStyle;let i=6;if(t[i].name&&"font-size"!==t[i].name)for(let e=0;e<t.length;e++)if("font-size"===t[e].name){i=e;break}return t[i].value}const Xe={expression:"window.innerWidth",includeCommandLineAPI:!1,silent:!0,returnByValue:!1,generatePreview:!1,userGesture:!1,awaitPromise:!0,throwOnSideEffect:!1,disableBreaks:!0,replMode:!1,allowUnsafeEvalBlockedByCSP:!1},Ye={expression:"window.innerHeight",includeCommandLineAPI:!1,silent:!0,returnByValue:!1,generatePreview:!1,userGesture:!1,awaitPromise:!0,throwOnSideEffect:!1,disableBreaks:!0,replMode:!1,allowUnsafeEvalBlockedByCSP:!1};async function qe(){const t=e.Context.Context.instance().flavor(h.RuntimeModel.ExecutionContext);let i,n;if(t){const e=await t.evaluate(Xe,!1,!1),s=await t.evaluate(Ye,!1,!1);if("error"in e||"error"in s)return null;e.object&&(i=e.object.value),s.object&&(n=s.object.value)}if(void 0===i||void 0===n){const t=e.Context.Context.instance().flavor(h.DOMModel.DOMNode);if(!t)return null;const s=await t.domModel().target().pageAgent().invoke_getLayoutMetrics(),o=s.visualViewport.zoom?s.visualViewport.zoom:1;n=s.visualViewport.clientHeight/o,i=s.visualViewport.clientWidth/o}return{width:i,height:n}}const Ze=new Map;async function Qe(e,t,i){let n,s;""===e&&(e="em"),""===t&&(t="em");const o=Ze.get(e),r=Ze.get(t);return o&&r?(n="em"===e||"%"===e?await o(i):await o(),s="em"===t||"%"===t?await r(i):await r(),n/s):1}Ze.set("px",(function(){return 1})),Ze.set("em",Ke),Ze.set("rem",(async function(){const t=function(e){let t=e;for(;t&&"HTML"!==t.nodeName()&&t.parentNode;)t=t.parentNode;return t}(e.Context.Context.instance().flavor(h.DOMModel.DOMNode));if(!t||!t.id)return 16;const[i]=h.TargetManager.TargetManager.instance().models(u.CSSOverviewModel.CSSOverviewModel),n=(await i.getComputedStyleForNode(t.id).then(We)).replace(/[a-z]/g,"");return parseFloat(n)})),Ze.set("%",(async function(e){return await Ke(e)/100})),Ze.set("vh",(async function(){const e=await qe();return e?e.height/100:1})),Ze.set("vw",(async function(){const e=await qe();return e?e.width/100:1})),Ze.set("vmin",(async function(){const e=await qe();if(!e)return 1;const t=e.width,i=e.height;return Math.min(t,i)/100})),Ze.set("vmax",(async function(){const e=await qe();if(!e)return 1;const t=e.width,i=e.height;return Math.max(t,i)/100})),Ze.set("cm",(function(){return 37.795})),Ze.set("mm",(function(){return 3.7795})),Ze.set("in",(function(){return 96})),Ze.set("pt",(function(){return 4/3})),Ze.set("pc",(function(){return 16}));var Je=Object.freeze({__proto__:null,getUnitConversionMultiplier:Qe});const et=new Set(["px","em","rem","%","vh","vw"]),tt=new Set(["","px","em","%"]),it=new Set(["em","rem","px"]),nt=["","xx-small","x-small","smaller","small","medium","large","larger","x-large","xx-large"],st=["","normal"],ot=["","lighter","normal","bold","bolder"],rt=["","normal"],at=["inherit","initial","unset"];nt.push(...at),st.push(...at),ot.push(...at),rt.push(...at);const lt=new Set(nt),dt=new Set(st),ht=new Set(ot),ct=new Set(rt),ut=new Map([["px",{min:0,max:72,step:1}],["em",{min:0,max:4.5,step:.1}],["rem",{min:0,max:4.5,step:.1}],["%",{min:0,max:450,step:1}],["vh",{min:0,max:10,step:.1}],["vw",{min:0,max:10,step:.1}],["vmin",{min:0,max:10,step:.1}],["vmax",{min:0,max:10,step:.1}],["cm",{min:0,max:2,step:.1}],["mm",{min:0,max:20,step:.1}],["in",{min:0,max:1,step:.01}],["pt",{min:0,max:54,step:1}],["pc",{min:0,max:4.5,step:.1}]]),pt=new Map([["",{min:0,max:2,step:.1}],["em",{min:0,max:2,step:.1}],["%",{min:0,max:200,step:1}],["px",{min:0,max:32,step:1}],["rem",{min:0,max:2,step:.1}],["vh",{min:0,max:4.5,step:.1}],["vw",{min:0,max:4.5,step:.1}],["vmin",{min:0,max:4.5,step:.1}],["vmax",{min:0,max:4.5,step:.1}],["cm",{min:0,max:1,step:.1}],["mm",{min:0,max:8.5,step:.1}],["in",{min:0,max:.5,step:.1}],["pt",{min:0,max:24,step:1}],["pc",{min:0,max:2,step:.1}]]),mt=new Map([["",{min:100,max:700,step:100}]]),gt=new Map([["px",{min:-10,max:10,step:.01}],["em",{min:-.625,max:.625,step:.001}],["rem",{min:-.625,max:.625,step:.001}],["%",{min:-62.5,max:62.5,step:.1}],["vh",{min:-1.5,max:1.5,step:.01}],["vw",{min:-1.5,max:1.5,step:.01}],["vmin",{min:-1.5,max:1.5,step:.01}],["vmax",{min:-1.5,max:1.5,step:.01}],["cm",{min:-.25,max:.025,step:.001}],["mm",{min:-2.5,max:2.5,step:.01}],["in",{min:-.1,max:.1,step:.001}],["pt",{min:-7.5,max:7.5,step:.01}],["pc",{min:-.625,max:.625,step:.001}]]),vt={regex:/(^[\+\d\.]+)([a-zA-Z%]+)/,units:et,keyValues:lt,rangeMap:ut,defaultUnit:"px"},xt={regex:/(^[\+\d\.]+)([a-zA-Z%]*)/,units:tt,keyValues:dt,rangeMap:pt,defaultUnit:""},bt={regex:/(^[\+\d\.]+)/,units:null,keyValues:ht,rangeMap:mt,defaultUnit:null},ft={regex:/([\+-0-9\.]+)([a-zA-Z%]+)/,units:it,keyValues:ct,rangeMap:gt,defaultUnit:"em"},wt=["Arial","Bookman","Candara","Comic Sans MS","Courier New","Garamond","Georgia","Helvetica","Impact","Palatino","Roboto","Times New Roman","Verdana"],yt=["serif","sans-serif","monspace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"];async function St(){const e=h.TargetManager.TargetManager.instance().models(u.CSSOverviewModel.CSSOverviewModel);if(e){const t=e[0];if(t){const{fontInfo:e}=await t.getNodeStyleStats();return Array.from(e.keys())}}return[]}function Ct(e){switch(e){case 1:default:return 0;case.1:return 1;case.01:return 2;case.001:return 3}}var It=Object.freeze({__proto__:null,FontSizeStaticParams:vt,FontWeightStaticParams:bt,GenericFonts:yt,GlobalValues:at,LetterSpacingStaticParams:ft,LineHeightStaticParams:xt,SystemFonts:wt,generateComputedFontArray:St,getRoundingPrecision:Ct});const kt={fontFamily:"Font Family",cssProperties:"CSS Properties",fontSize:"Font Size",lineHeight:"Line Height",fontWeight:"Font Weight",spacing:"Spacing",fallbackS:"Fallback {PH1}",thereIsNoValueToDeleteAtIndexS:"There is no value to delete at index: {PH1}",fontSelectorDeletedAtIndexS:"Font Selector deleted at index: {PH1}",deleteS:"Delete {PH1}",PleaseEnterAValidValueForSText:"* Please enter a valid value for {PH1} text input",thisPropertyIsSetToContainUnits:"This property is set to contain units but does not have a defined corresponding unitsArray: {PH1}",sSliderInput:"{PH1} Slider Input",sTextInput:"{PH1} Text Input",units:"Units",sUnitInput:"{PH1} Unit Input",sKeyValueSelector:"{PH1} Key Value Selector",sToggleInputType:"{PH1} toggle input type",selectorInputMode:"Selector Input Mode",sliderInputMode:"Slider Input Mode"},Et=l.i18n.registerUIStrings("ui/legacy/components/inline_editor/FontEditor.ts",kt),Pt=l.i18n.getLocalizedString.bind(void 0,Et);class Tt extends(s.ObjectWrapper.eventMixin(e.Widget.VBox)){selectedNode;propertyMap;fontSelectorSection;fontSelectors;fontsList;constructor(t){super(!0),this.registerRequiredCSS(Ge),this.selectedNode=e.Context.Context.instance().flavor(h.DOMModel.DOMNode),this.propertyMap=t,this.contentElement.tabIndex=0,this.contentElement.setAttribute("jslog",`${n.dialog("font-editor").parent("mapped").track({keydown:"Enter|Escape"})}`),this.setDefaultFocusedElement(this.contentElement),this.fontSelectorSection=this.contentElement.createChild("div","font-selector-section"),this.fontSelectorSection.createChild("h2","font-section-header").textContent=Pt(kt.fontFamily),this.fontSelectors=[],this.fontsList=null;const i=this.propertyMap.get("font-family");this.createFontSelectorSection(i);const s=this.contentElement.createChild("div","font-section");s.createChild("h2","font-section-header").textContent=Pt(kt.cssProperties);const o=this.getPropertyInfo("font-size",vt.regex),r=this.getPropertyInfo("line-height",xt.regex),a=this.getPropertyInfo("font-weight",bt.regex),l=this.getPropertyInfo("letter-spacing",ft.regex);new zt("font-size",Pt(kt.fontSize),s,o,vt,this.updatePropertyValue.bind(this),this.resizePopout.bind(this),!0),new zt("line-height",Pt(kt.lineHeight),s,r,xt,this.updatePropertyValue.bind(this),this.resizePopout.bind(this),!0),new zt("font-weight",Pt(kt.fontWeight),s,a,bt,this.updatePropertyValue.bind(this),this.resizePopout.bind(this),!1),new zt("letter-spacing",Pt(kt.spacing),s,l,ft,this.updatePropertyValue.bind(this),this.resizePopout.bind(this),!0)}async createFontSelectorSection(e){if(e){const t=e.split(",");if(await this.createFontSelector(t[0],!0),!at.includes(t[0]))for(let e=1;e<t.length+1;e++)this.createFontSelector(t[e])}else this.createFontSelector("",!0);this.resizePopout()}async createFontsList(){const e=await St(),t=new Map,i=this.splitComputedFontArray(e);t.set("Computed Fonts",i);const n=new Map;n.set("System Fonts",wt),n.set("Generic Families",yt);const s=[];return s.push(t),s.push(n),s}splitComputedFontArray(e){const t=[];for(const i of e)if(i.includes(",")){i.split(",").forEach((e=>{-1===t.findIndex((t=>t.toLowerCase()===e.trim().toLowerCase().replace(/"/g,"'")))&&t.push(e.trim().replace(/"/g,""))}))}else-1===t.findIndex((e=>e.toLowerCase()===i.toLowerCase().replace('"',"'")))&&t.push(i.replace(/"/g,""));return t}async createFontSelector(e,t){if(e=e?e.trim():""){const t=e.charAt(0);"'"===t?e=e.replace(/'/g,""):'"'===t&&(e=e.replace(/"/g,""))}const i=this.fontSelectorSection.createChild("div","shadow-editor-field shadow-editor-flex-field");let n;if(this.fontsList||(this.fontsList=await this.createFontsList()),t){n=Pt(kt.fontFamily);const t=new Map([["Global Values",at]]),s=[...this.fontsList];s.push(t),this.createSelector(i,n,s,e.trim(),"primary-font-family")}else n=Pt(kt.fallbackS,{PH1:this.fontSelectors.length}),this.createSelector(i,n,this.fontsList,e.trim(),"fallback-font-family")}deleteFontSelector(t,i){let n=this.fontSelectors[t];const s=0===t;if(""===n.input.value&&!i)return void e.ARIAUtils.alert(Pt(kt.thereIsNoValueToDeleteAtIndexS,{PH1:t}));if(s){const e=this.fontSelectors[1];let i="";e&&(i=e.input.value,n=e);this.fontSelectors[0].input.value=i,t=1}if(n.input.parentNode){const i=this.fontSelectors.length>1;if(!s||i){const e=n.input.parentElement;e&&(e.remove(),this.fontSelectors.splice(t,1),this.updateFontSelectorList())}e.ARIAUtils.alert(Pt(kt.fontSelectorDeletedAtIndexS,{PH1:t}))}this.onFontSelectorChanged(),this.resizePopout();const o=s?0:t-1;this.fontSelectors[o].input.focus()}updateFontSelectorList(){for(let t=0;t<this.fontSelectors.length;t++){const i=this.fontSelectors[t];let n;n=0===t?Pt(kt.fontFamily):Pt(kt.fallbackS,{PH1:t}),i.label.textContent=n,e.ARIAUtils.setLabel(i.input,n),i.deleteButton.setTitle(Pt(kt.deleteS,{PH1:n})),i.index=t}}getPropertyInfo(e,t){const i=this.propertyMap.get(e);if(i){const e=i,n=e.match(t);if(n){return{value:"+"===n[1].charAt(0)?n[1].substr(1):n[1],units:n[2]?n[2]:""}}return{value:e,units:null}}return{value:null,units:null}}createSelector(t,s,o,r,a){const l=this.fontSelectors.length,d=e.UIUtils.createSelect(s,o);d.value=r,d.setAttribute("jslog",`${n.dropDown(a).track({click:!0,change:!0})}`);const h=e.UIUtils.createLabel(s,"shadow-editor-label",d);d.addEventListener("input",this.onFontSelectorChanged.bind(this),!1),d.addEventListener("keydown",(e=>{"Enter"===e.key&&e.consume()}),!1),t.appendChild(h),t.appendChild(d);const c=t.createChild("devtools-toolbar"),u=new e.Toolbar.ToolbarButton(Pt(kt.deleteS,{PH1:s}),"bin",void 0,"delete");c.appendToolbarItem(u);const p={label:h,input:d,deleteButton:u,index:l};u.addEventListener("Click",(()=>{this.deleteFontSelector(p.index)})),u.element.addEventListener("keydown",(e=>{i.KeyboardUtilities.isEnterOrSpaceKey(e)&&(this.deleteFontSelector(p.index),e.consume())}),!1),this.fontSelectors.push(p)}onFontSelectorChanged(){let e="";const t=at.includes(this.fontSelectors[0].input.value);if(t)for(let e=1;e<this.fontSelectors.length;e++)this.deleteFontSelector(e,!0);for(const t of this.fontSelectors){const i=t.input;""!==i.value&&(""===e?e=this.fontSelectors[0].input.value:e+=", "+i.value)}""!==this.fontSelectors[this.fontSelectors.length-1].input.value&&!t&&this.fontSelectors.length<10&&(this.createFontSelector(""),this.resizePopout()),this.updatePropertyValue("font-family",e)}updatePropertyValue(e,t){this.dispatchEventToListeners("FontChanged",{propertyName:e,value:t})}resizePopout(){this.dispatchEventToListeners("FontEditorResized")}}class zt{showSliderMode;errorText;propertyInfo;propertyName;staticParams;hasUnits;units;addedUnit;initialRange;boundUpdateCallback;boundResizeCallback;selectedNode;sliderInput;textBoxInput;unitInput;selectorInput;applyNextInput;constructor(t,i,n,s,o,r,a,l){this.showSliderMode=!0;const d=n.createChild("div","shadow-editor-field shadow-editor-flex-field");if(this.errorText=n.createChild("div","error-text"),this.errorText.textContent=Pt(kt.PleaseEnterAValidValueForSText,{PH1:t}),this.errorText.hidden=!0,e.ARIAUtils.markAsAlert(this.errorText),this.propertyInfo=s,this.propertyName=t,this.staticParams=o,this.hasUnits=l,this.hasUnits&&this.staticParams.units&&null!==this.staticParams.defaultUnit){const e=this.staticParams.defaultUnit;this.units=null!==s.units?s.units:e,this.addedUnit=!this.staticParams.units.has(this.units)}else{if(this.hasUnits)throw new Error(Pt(kt.thisPropertyIsSetToContainUnits,{PH1:t}));this.units=""}this.initialRange=this.getUnitRange(),this.boundUpdateCallback=r,this.boundResizeCallback=a,this.selectedNode=e.Context.Context.instance().flavor(h.DOMModel.DOMNode);const c=e.UIUtils.createLabel(i,"shadow-editor-label");d.append(c),this.sliderInput=this.createSliderInput(d,t),this.textBoxInput=this.createTextBoxInput(d,t),e.ARIAUtils.bindLabelToControl(c,this.textBoxInput),this.unitInput=this.createUnitInput(d,`${t}-unit`),this.selectorInput=this.createSelectorInput(d,t),this.createTypeToggle(d,`${t}-value-type`),this.checkSelectorValueAndToggle(),this.applyNextInput=!1}setInvalidTextBoxInput(e){e?this.errorText.hidden&&(this.errorText.hidden=!1,this.textBoxInput.classList.add("error-input"),this.boundResizeCallback()):this.errorText.hidden||(this.errorText.hidden=!0,this.textBoxInput.classList.remove("error-input"),this.boundResizeCallback())}checkSelectorValueAndToggle(){return!(!this.staticParams.keyValues||null===this.propertyInfo.value||!this.staticParams.keyValues.has(this.propertyInfo.value))&&(this.toggleInputType(),!0)}getUnitRange(){let e=0,t=100,i=1;if(null!==this.propertyInfo.value&&/\d/.test(this.propertyInfo.value))if(this.staticParams.rangeMap.get(this.units)){const n=this.staticParams.rangeMap.get(this.units);n&&(e=Math.min(n.min,parseFloat(this.propertyInfo.value)),t=Math.max(n.max,parseFloat(this.propertyInfo.value)),i=n.step)}else{const n=this.staticParams.rangeMap.get("px");n&&(e=Math.min(n.min,parseFloat(this.propertyInfo.value)),t=Math.max(n.max,parseFloat(this.propertyInfo.value)),i=n.step)}else{const n=this.staticParams.rangeMap.get(this.units);n&&(e=n.min,t=n.max,i=n.step)}return{min:e,max:t,step:i}}createSliderInput(t,i){const s=this.initialRange.min,o=this.initialRange.max,r=this.initialRange.step,a=e.UIUtils.createSlider(s,o,-1);if(a.step=r.toString(),a.tabIndex=0,this.propertyInfo.value)a.value=this.propertyInfo.value;else{const e=(s+o)/2;a.value=e.toString()}return a.addEventListener("input",(e=>{this.onSliderInput(e,!1)})),a.addEventListener("mouseup",(e=>{this.onSliderInput(e,!0)})),a.addEventListener("keydown",(e=>{"ArrowUp"!==e.key&&"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key||(this.applyNextInput=!0)})),t.appendChild(a),e.ARIAUtils.setLabel(a,Pt(kt.sSliderInput,{PH1:this.propertyName})),a.setAttribute("jslog",`${n.slider(i).track({change:!0})}`),a}createTextBoxInput(t,i){const n=e.UIUtils.createInput("shadow-editor-text-input","number",i);return n.step=this.initialRange.step.toString(),n.classList.add("font-editor-text-input"),null!==this.propertyInfo.value&&("+"===this.propertyInfo.value.charAt(0)&&(this.propertyInfo.value=this.propertyInfo.value.substr(1)),n.value=this.propertyInfo.value),n.step="any",n.addEventListener("input",this.onTextBoxInput.bind(this),!1),t.appendChild(n),e.ARIAUtils.setLabel(n,Pt(kt.sTextInput,{PH1:this.propertyName})),n}createUnitInput(t,i){let s;if(this.hasUnits&&this.staticParams.units){const t=this.propertyInfo.units,i=this.staticParams.units;s=e.UIUtils.createSelect(Pt(kt.units),i),s.classList.add("font-editor-select"),this.addedUnit&&t&&s.add(new Option(t,t)),t&&(s.value=t),s.addEventListener("change",this.onUnitInput.bind(this),!1)}else s=e.UIUtils.createSelect(Pt(kt.units),[]),s.classList.add("font-editor-select"),s.disabled=!0;return s.setAttribute("jslog",`${n.dropDown(i).track({click:!0,change:!0})}`),s.addEventListener("keydown",(e=>{"Enter"===e.key&&e.consume()}),!1),t.appendChild(s),e.ARIAUtils.setLabel(s,Pt(kt.sUnitInput,{PH1:this.propertyName})),s}createSelectorInput(t,i){const s=e.UIUtils.createSelect(Pt(kt.sKeyValueSelector,{PH1:this.propertyName}),this.staticParams.keyValues);return s.classList.add("font-selector-input"),this.propertyInfo.value&&(s.value=this.propertyInfo.value),s.addEventListener("input",this.onSelectorInput.bind(this),!1),s.addEventListener("keydown",(e=>{"Enter"===e.key&&e.consume()}),!1),t.appendChild(s),s.hidden=!0,s.setAttribute("jslog",`${n.dropDown(i).track({click:!0,change:!0})}`),s}onSelectorInput(e){if(e.currentTarget){const t=e.currentTarget.value;this.textBoxInput.value="";const i=(parseFloat(this.sliderInput.min)+parseFloat(this.sliderInput.max))/2;this.sliderInput.value=i.toString(),this.setInvalidTextBoxInput(!1),this.boundUpdateCallback(this.propertyName,t)}}onSliderInput(e,t){const i=e.currentTarget;if(i){const e=i.value;this.textBoxInput.value=e,this.selectorInput.value="";const n=this.hasUnits?e+this.unitInput.value:e.toString();this.setInvalidTextBoxInput(!1),(t||this.applyNextInput)&&(this.boundUpdateCallback(this.propertyName,n),this.applyNextInput=!1)}}onTextBoxInput(e){const t=e.currentTarget;if(t){const e=t.value,i=e+(""===e?"":this.unitInput.value);this.staticParams.regex.test(i)||""===e&&!t.validationMessage.length?(parseFloat(e)>parseFloat(this.sliderInput.max)?this.sliderInput.max=e:parseFloat(e)<parseFloat(this.sliderInput.min)&&(this.sliderInput.min=e),this.sliderInput.value=e,this.selectorInput.value="",this.setInvalidTextBoxInput(!1),this.boundUpdateCallback(this.propertyName,i)):this.setInvalidTextBoxInput(!0)}}async onUnitInput(e){const t=e.currentTarget,i=t.hasFocus(),n=t.value;t.disabled=!0;const s=this.units,o=await Qe(s,n,"font-size"===this.propertyName);this.setInputUnits(o,n),this.textBoxInput.value&&this.boundUpdateCallback(this.propertyName,this.textBoxInput.value+n),this.units=n,t.disabled=!1,i&&t.focus()}createTypeToggle(t,i){const s=t.createChild("div","spectrum-switcher"),o=new c.Icon.Icon;o.data={iconName:"fold-more",color:"var(--icon-default)",width:"16px",height:"16px"},s.appendChild(o),e.UIUtils.setTitle(s,Pt(kt.sToggleInputType,{PH1:this.propertyName})),s.tabIndex=0,self.onInvokeElement(s,this.toggleInputType.bind(this)),e.ARIAUtils.markAsButton(s),s.setAttribute("jslog",`${n.toggle(i).track({click:!0})}`)}toggleInputType(t){t&&"Enter"===t.key&&t.consume(),this.showSliderMode?(this.sliderInput.hidden=!0,this.textBoxInput.hidden=!0,this.unitInput.hidden=!0,this.selectorInput.hidden=!1,this.showSliderMode=!1,e.ARIAUtils.alert(Pt(kt.selectorInputMode))):(this.sliderInput.hidden=!1,this.textBoxInput.hidden=!1,this.unitInput.hidden=!1,this.selectorInput.hidden=!0,this.showSliderMode=!0,e.ARIAUtils.alert(Pt(kt.sliderInputMode)))}setInputUnits(e,t){const i=this.staticParams.rangeMap.get(t);let n,s,o;i?(n=i.min,s=i.max,o=i.step):(n=0,s=100,o=1);let r=!1;const a=Ct(o);let l=(n+s)/2;this.textBoxInput.value&&(r=!0,l=parseFloat((parseFloat(this.textBoxInput.value)*e).toFixed(a))),this.sliderInput.min=Math.min(l,n).toString(),this.sliderInput.max=Math.max(l,s).toString(),this.sliderInput.step=o.toString(),this.textBoxInput.step=o.toString(),r&&(this.textBoxInput.value=l.toString()),this.sliderInput.value=l.toString()}}var Mt=Object.freeze({__proto__:null,FontEditor:Tt}),At=`.link-swatch-link{display:inline}.link-swatch-link:not(.undefined){cursor:pointer;text-underline-offset:2px;color:var(--text-link)}.link-swatch-link:hover:not(.undefined){text-decoration:underline}.link-swatch-link:focus:not(:focus-visible){outline:none}.link-swatch-link.undefined{opacity:100%;color:var(--text-disabled)}\n/*# sourceURL=${import.meta.resolve("./linkSwatch.css")} */\n`;const{render:Ut,html:Lt,nothing:Ft,Directives:{ref:Bt,ifDefined:Rt,classMap:Ot}}=o;class $t extends HTMLElement{onLinkActivate=()=>{};#L;connectedCallback(){}set data(e){this.onLinkActivate=(t,n)=>{n instanceof MouseEvent&&0!==n.button||n instanceof KeyboardEvent&&n.key!==i.KeyboardUtilities.ENTER_KEY&&" "!==n.key||(e.onLinkActivate(t),n.consume(!0))},this.render(e)}get linkElement(){return this.#L}render(e){const{isDefined:t,text:i,jslogContext:s,tooltip:o}=e,r=Ot({"link-style":!0,"text-button":!0,"link-swatch-link":!0,undefined:!t}),a=t?this.onLinkActivate.bind(this,i.trim()):null,l=o&&"title"in o&&o.title||void 0,d=o&&"tooltipId"in o&&o.tooltipId||void 0;Ut(Lt`<style>${p.textButtonStyles.cssText}</style><style>${At}</style><button
47
+ .disabled=${!t}
48
+ jslog=${s?n.link().track({click:!0}).context(s):Ft}
49
+ class=${r}
50
+ type="button"
51
+ title=${Rt(l)}
52
+ aria-details=${Rt(d)}
53
+ @click=${a}
54
+ @keydown=${a}
55
+ role="link"
56
+ tabindex=${Rt(t?-1:void 0)}
57
+ ${Bt((e=>{this.#L=e}))}
58
+ >${i}</button>`,this)}}customElements.define("devtools-link-swatch",$t);var Dt=Object.freeze({__proto__:null,LinkSwatch:$t}),Nt={cssText:`:host{white-space:nowrap}devtools-icon{position:relative;transform:scale(0.7);margin:-5px -2px -3px -4px;user-select:none;color:var(--icon-css);cursor:default;&:hover{color:var(--icon-css-hover)}}\n/*# sourceURL=${import.meta.resolve("./bezierSwatch.css")} */\n`},_t={cssText:`:host{white-space:nowrap}devtools-icon.shadow-swatch-icon{color:var(--icon-css);transform:scale(0.7);position:relative;margin:-5px -2px -5px -4px;user-select:none;vertical-align:baseline;cursor:pointer;&:hover{color:var(--icon-css-hover)}}\n/*# sourceURL=${import.meta.resolve("./cssShadowSwatch.css")} */\n`};const jt=new CSSStyleSheet;jt.replaceSync(_t.cssText);class Ht extends HTMLElement{#A;#F;constructor(){super();const t=e.UIUtils.createShadowRootWithCoreStyles(this,{cssFile:Nt});this.#A=c.Icon.create("bezier-curve-filled","bezier-swatch-icon"),this.#A.setAttribute("jslog",`${n.showStyleEditor("bezier")}`),t.appendChild(this.#A),this.#F=document.createElement("span"),t.createChild("slot")}static create(){return document.createElement("devtools-bezier-swatch")}bezierText(){return this.#F.textContent||""}setBezierText(e){this.#F.parentElement||this.append(this.#F),this.#F.textContent=e}hideText(e){this.#F.hidden=e}iconElement(){return this.#A}}customElements.define("devtools-bezier-swatch",Ht);class Vt extends HTMLElement{#B=this.attachShadow({mode:"open"});#A;#c;constructor(e){super(),this.#c=e,this.#B.adoptedStyleSheets=[jt],r(a`<devtools-icon name="shadow" class="shadow-swatch-icon"></devtools-icon><slot></slot>`,this.#B,{host:this}),this.#A=this.#B.querySelector("devtools-icon")}model(){return this.#c}iconElement(){return this.#A}}customElements.define("css-shadow-swatch",Vt);var Gt=Object.freeze({__proto__:null,BezierSwatch:Ht,CSSShadowSwatch:Vt}),Kt={cssText:`.widget{display:flex;overflow:auto;user-select:text;font:var(--sys-typescale-body4-regular);line-height:11px;box-shadow:var(--sys-elevation-level2);background-color:var(--sys-color-base-container-elevated);border-radius:var(--sys-shape-corner-extra-small)}.with-padding{padding:var(--sys-size-4);border-radius:var(--sys-shape-corner-small)}\n/*# sourceURL=${import.meta.resolve("./swatchPopover.css")} */\n`};class Wt extends s.ObjectWrapper.ObjectWrapper{popover;hideProxy;boundOnKeyDown;boundFocusOut;isHidden;anchorElement;view;hiddenCallback;focusRestorer;constructor(){super(),this.popover=new e.GlassPane.GlassPane,this.popover.setSizeBehavior("MeasureContent"),this.popover.setMarginBehavior("DefaultMargin"),this.popover.element.addEventListener("mousedown",(e=>e.consume()),!1),this.hideProxy=this.hide.bind(this,!0),this.boundOnKeyDown=this.onKeyDown.bind(this),this.boundFocusOut=this.onFocusOut.bind(this),this.isHidden=!0,this.anchorElement=null}onFocusOut(e){const t=e.relatedTarget;!this.isHidden&&t&&this.view&&!t.isSelfOrDescendant(this.view.contentElement)&&this.hideProxy()}setAnchorElement(e){this.anchorElement=e}isShowing(e){return this.popover.isShowing()&&(e&&this.view===e||!e)}show(e,t,i){if(this.popover.isShowing()){if(this.anchorElement===t)return;this.hide(!0)}n.setMappedParent(e.contentElement,t),this.popover.registerRequiredCSS(Kt),this.dispatchEventToListeners("WillShowPopover"),this.isHidden=!1,this.anchorElement=t,this.view=e,this.hiddenCallback=i,this.reposition(),e.focus();const s=this.popover.element.ownerDocument;s.addEventListener("mousedown",this.hideProxy,!1),s.defaultView&&s.defaultView.addEventListener("resize",this.hideProxy,!1),this.view.contentElement.addEventListener("keydown",this.boundOnKeyDown,!1)}reposition(){if(!this.isHidden&&this.view){if(this.view.contentElement.removeEventListener("focusout",this.boundFocusOut,!1),this.view.show(this.popover.contentElement),this.anchorElement){let e=this.anchorElement.boxInWindow();if(J.isColorSwatch(this.anchorElement)){const t=this.anchorElement;if(!t.anchorBox)return;e=t.anchorBox}this.popover.setContentAnchorBox(e),this.popover.show(this.anchorElement.ownerDocument)}this.view.contentElement.addEventListener("focusout",this.boundFocusOut,!1),this.focusRestorer||(this.focusRestorer=new e.Widget.WidgetFocusRestorer(this.view))}}hide(e){if(this.isHidden)return;const t=this.popover.element.ownerDocument;this.isHidden=!0,this.popover.hide(),t.removeEventListener("mousedown",this.hideProxy,!1),t.defaultView&&t.defaultView.removeEventListener("resize",this.hideProxy,!1),this.hiddenCallback&&this.hiddenCallback.call(null,Boolean(e)),this.focusRestorer&&this.focusRestorer.restore(),this.anchorElement=null,this.view&&(this.view.detach(),this.view.contentElement.removeEventListener("keydown",this.boundOnKeyDown,!1),this.view.contentElement.removeEventListener("focusout",this.boundFocusOut,!1),delete this.view)}onKeyDown(e){if("Enter"===e.key)return this.hide(!0),void e.consume(!0);e.key===i.KeyboardUtilities.ESCAPE_KEY&&(this.hide(!1),e.consume(!0))}}var Xt=Object.freeze({__proto__:null,SwatchPopoverHelper:Wt});export{C as AnimationTimingModel,U as AnimationTimingUI,R as BezierEditor,E as BezierUI,Fe as CSSAngle,ce as CSSAngleUtils,w as CSSLinearEasingModel,Ve as CSSShadowEditor,V as ColorMixSwatch,ee as ColorSwatch,Mt as FontEditor,Je as FontEditorUnitConverter,It as FontEditorUtils,ke as InlineEditorUtils,Dt as LinkSwatch,Xt as SwatchPopoverHelper,Gt as Swatches};
@@ -0,0 +1 @@
1
+ import*as e from"../../../../core/sdk/sdk.js";import*as t from"../../legacy.js";let r;t.UIUtils.registerRenderer({contextTypes:()=>[e.RemoteObject.RemoteObject],loadRenderer:async()=>(await async function(){return r||(r=await import("./object_ui.js")),r}()).ObjectPropertiesSection.Renderer.instance()});