ember-inspector 4.13.1 → 4.15.0

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 (564) hide show
  1. package/.ember-cli +1 -9
  2. package/.github/workflows/build.yml +33 -112
  3. package/.github/workflows/plan-release.yml +26 -48
  4. package/.github/workflows/publish.yml +129 -31
  5. package/.prettierignore +2 -13
  6. package/.prettierrc.js +10 -4
  7. package/.release-plan.json +13 -4
  8. package/.stylelintignore +8 -0
  9. package/.stylelintrc.js +10 -1
  10. package/.template-lintrc.js +2 -1
  11. package/.tool-versions +2 -2
  12. package/.watchmanconfig +1 -1
  13. package/CHANGELOG.md +137 -0
  14. package/DEVELOPMENT.md +50 -0
  15. package/PRIVACY.md +3 -0
  16. package/README.md +14 -50
  17. package/RELEASE.md +15 -50
  18. package/app/components/app-picker.hbs +2 -2
  19. package/app/components/component-tree-item.hbs +14 -14
  20. package/app/components/component-tree-toolbar.hbs +17 -3
  21. package/app/components/{date-property-field.js → date-property-field.ts} +6 -5
  22. package/app/components/deprecation-item-source.hbs +1 -1
  23. package/app/components/deprecation-item.hbs +1 -1
  24. package/app/components/deprecations-toolbar.hbs +1 -1
  25. package/app/components/item-types.hbs +7 -7
  26. package/app/components/list-cell.hbs +3 -3
  27. package/app/components/list-content.hbs +4 -3
  28. package/app/components/list-content.ts +96 -0
  29. package/app/components/list.hbs +3 -3
  30. package/app/components/list.js +7 -7
  31. package/app/components/model-types-toolbar.hbs +3 -3
  32. package/app/components/object-inspector/component-parents.hbs +33 -0
  33. package/app/components/object-inspector/component-parents.js +43 -0
  34. package/app/components/object-inspector/dependent-keys.hbs +4 -4
  35. package/app/components/object-inspector/errors.hbs +4 -4
  36. package/app/components/object-inspector/properties-all.hbs +1 -1
  37. package/app/components/object-inspector/properties-base.js +2 -0
  38. package/app/components/object-inspector/properties-grouped.hbs +5 -5
  39. package/app/components/object-inspector/property.hbs +36 -34
  40. package/app/components/object-inspector/property.ts +34 -17
  41. package/app/components/object-inspector/sort-properties.js +12 -4
  42. package/app/components/object-inspector/toggle.hbs +9 -0
  43. package/app/components/object-inspector/toggle.js +6 -0
  44. package/app/components/object-inspector.hbs +11 -9
  45. package/app/components/object-inspector.js +1 -1
  46. package/app/components/promise-item.hbs +11 -11
  47. package/app/components/promise-item.js +8 -6
  48. package/app/components/promise-tree-toolbar.hbs +5 -5
  49. package/app/components/records-toolbar.hbs +2 -2
  50. package/app/components/render-item.hbs +4 -4
  51. package/app/components/render-item.ts +12 -9
  52. package/app/components/render-tree-toolbar.hbs +1 -1
  53. package/app/components/route-cell-name.hbs +1 -1
  54. package/app/components/route-cell-name.js +3 -2
  55. package/app/components/route-tree-toolbar.hbs +2 -2
  56. package/app/components/scroll-container.js +2 -0
  57. package/app/components/side-nav.hbs +5 -5
  58. package/app/components/side-nav.js +1 -1
  59. package/{lib/ui/addon/components → app/components/ui}/drag-handle.hbs +4 -4
  60. package/{lib/ui/addon/components → app/components/ui}/drag-handle.js +3 -1
  61. package/{lib/ui/addon/components → app/components/ui}/empty-message.hbs +1 -1
  62. package/{lib/ui/addon/components → app/components/ui}/error-page.hbs +3 -3
  63. package/{lib/ui/addon/components → app/components/ui}/resizable-column.js +1 -1
  64. package/{lib/ui/addon/components → app/components/ui}/toolbar-clear-button.hbs +1 -1
  65. package/{lib/ui/addon/components → app/components/ui}/toolbar-reload-button.hbs +1 -1
  66. package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.hbs +2 -2
  67. package/app/computed/{debounce.js → debounce.ts} +7 -5
  68. package/app/config/environment.d.ts +5 -2
  69. package/app/controllers/app-config.js +1 -0
  70. package/app/controllers/application.js +36 -71
  71. package/app/controllers/component-tree.js +26 -7
  72. package/app/controllers/container-type.js +2 -1
  73. package/app/controllers/container-types/{index.js → index.ts} +5 -2
  74. package/app/controllers/container-types.js +3 -6
  75. package/app/controllers/deprecations.js +16 -11
  76. package/app/controllers/libraries.js +1 -0
  77. package/app/controllers/model-types.js +7 -13
  78. package/app/controllers/promise-tree.ts +149 -0
  79. package/app/controllers/records.js +18 -26
  80. package/app/controllers/{render-tree.js → render-tree.ts} +54 -45
  81. package/app/controllers/route-tree.js +7 -5
  82. package/app/helpers/build-style.js +1 -1
  83. package/app/index.html +1 -19
  84. package/app/initializers/setup.js +1 -1
  85. package/app/libs/promise-assembler.ts +249 -0
  86. package/app/libs/resizable-columns.js +10 -10
  87. package/app/models/{promise.js → promise.ts} +72 -69
  88. package/app/{router.js → router.ts} +1 -1
  89. package/app/routes/app-detected.js +3 -5
  90. package/app/routes/application.js +9 -13
  91. package/app/routes/deprecations.js +7 -16
  92. package/app/routes/launch.js +2 -1
  93. package/app/routes/libraries.js +2 -1
  94. package/app/routes/model-type.js +2 -3
  95. package/app/routes/model-types.ts +57 -0
  96. package/app/routes/promise-tree.ts +63 -0
  97. package/app/routes/records.ts +78 -0
  98. package/app/routes/render-tree.ts +93 -0
  99. package/app/routes/route-tree.js +0 -1
  100. package/app/routes/{tab.js → tab.ts} +9 -2
  101. package/app/routes/whats-new.js +6 -4
  102. package/app/services/adapters/{basic.js → basic.ts} +36 -30
  103. package/app/services/adapters/{bookmarklet.js → bookmarklet.ts} +17 -24
  104. package/app/services/adapters/{chrome.js → chrome.ts} +1 -2
  105. package/app/services/adapters/{web-extension.js → web-extension.ts} +46 -46
  106. package/app/services/adapters/websocket.ts +40 -0
  107. package/app/services/layout.ts +124 -0
  108. package/app/services/port.ts +195 -0
  109. package/app/services/storage/{local.js → local.ts} +7 -20
  110. package/app/services/storage/{memory.js → memory.ts} +6 -21
  111. package/app/services/{storage.js → storage.ts} +25 -23
  112. package/app/styles/app.scss +1 -0
  113. package/app/styles/base.scss +6 -2
  114. package/app/styles/colors.scss +33 -31
  115. package/app/styles/component_tree.scss +56 -51
  116. package/app/styles/dropdown.scss +2 -2
  117. package/app/styles/ember-table.scss +3 -3
  118. package/app/styles/mixin.scss +26 -26
  119. package/app/styles/object_inspector.scss +30 -21
  120. package/{lib/ui/addon/styles → app/styles/ui}/_disclosure-triangle.scss +3 -1
  121. package/{lib/ui/addon/styles → app/styles/ui}/_drag-handle.scss +7 -7
  122. package/{lib/ui/addon/styles → app/styles/ui}/_empty-message.scss +1 -1
  123. package/{lib/ui/addon/styles → app/styles/ui}/_error-page.scss +8 -7
  124. package/{lib/ui/addon/styles → app/styles/ui}/_list.scss +46 -45
  125. package/{lib/ui/addon/styles → app/styles/ui}/_nav.scss +29 -27
  126. package/app/styles/ui/_object-inspector-toggle.scss +4 -0
  127. package/{lib/ui/addon/styles → app/styles/ui}/_pill.scss +4 -4
  128. package/{lib/ui/addon/styles → app/styles/ui}/_send-to-console.scss +1 -1
  129. package/{lib/ui/addon/styles → app/styles/ui}/_split.scss +26 -20
  130. package/app/styles/ui/_ui.scss +13 -0
  131. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_checkbox.scss +5 -5
  132. package/app/styles/ui/toolbar/_icon-button.scss +80 -0
  133. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_index.scss +6 -5
  134. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_radio.scss +10 -10
  135. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_search.scss +5 -3
  136. package/app/styles/utils.scss +408 -122
  137. package/app/templates/application.hbs +22 -19
  138. package/app/templates/component-tree.hbs +4 -1
  139. package/app/templates/deprecations.hbs +2 -3
  140. package/app/templates/info.hbs +10 -10
  141. package/app/templates/promise-tree.hbs +1 -1
  142. package/app/templates/render-tree.hbs +1 -1
  143. package/app/templates/route-tree.hbs +1 -1
  144. package/app/utils/escape-reg-exp.ts +3 -2
  145. package/app/utils/nullish.ts +7 -0
  146. package/app/utils/parse-text.ts +4 -5
  147. package/app/utils/truncate.js +0 -1
  148. package/config/ember-cli-update.json +5 -3
  149. package/config/ember-try.js +117 -72
  150. package/config/environment.js +1 -1
  151. package/config/optional-features.json +2 -1
  152. package/dist/bookmarklet/load_inspector.js +31 -11
  153. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  154. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  155. package/dist/bookmarklet/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  156. package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  157. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +997 -156
  158. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +560 -613
  159. package/dist/bookmarklet/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  160. package/dist/bookmarklet/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  161. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  162. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  163. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  164. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  165. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  166. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  167. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  168. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  169. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  170. package/dist/bookmarklet/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  171. package/dist/bookmarklet/panes-3-16-0/assets/vendor.css +4 -841
  172. package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +4277 -5152
  173. package/dist/bookmarklet/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  174. package/dist/bookmarklet/panes-3-16-0/basic-B1dkgN3d.js +149 -0
  175. package/dist/bookmarklet/panes-3-16-0/basic-debug.js +10 -0
  176. package/dist/bookmarklet/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  177. package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +10 -0
  178. package/dist/bookmarklet/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  179. package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +10 -0
  180. package/dist/bookmarklet/panes-3-16-0/ember.js +166 -0
  181. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +7 -11018
  182. package/dist/bookmarklet/panes-3-16-0/evented-BCTya3yE.js +62 -0
  183. package/dist/bookmarklet/panes-3-16-0/firefox-8F84zphP.js +30 -0
  184. package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +10 -0
  185. package/dist/bookmarklet/panes-3-16-0/index.html +4 -23
  186. package/dist/bookmarklet/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  187. package/dist/bookmarklet/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  188. package/dist/bookmarklet/panes-3-16-0/main.js +7669 -0
  189. package/dist/bookmarklet/panes-3-16-0/port.js +108 -0
  190. package/dist/bookmarklet/panes-3-16-0/profile-node.js +60 -0
  191. package/dist/bookmarklet/panes-3-16-0/promise-assembler.js +218 -0
  192. package/dist/bookmarklet/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
  193. package/dist/bookmarklet/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
  194. package/dist/bookmarklet/panes-3-16-0/type-check.js +119 -0
  195. package/dist/bookmarklet/panes-3-16-0/version.js +90 -0
  196. package/dist/bookmarklet/panes-3-16-0/versions.js +4 -0
  197. package/dist/bookmarklet/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
  198. package/dist/bookmarklet/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  199. package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +10 -0
  200. package/dist/chrome/background.js +26 -21
  201. package/dist/chrome/boot.js +1 -1
  202. package/dist/chrome/content-script.js +12 -11
  203. package/dist/chrome/devtools.js +12 -3
  204. package/dist/chrome/manifest.json +4 -2
  205. package/dist/chrome/options.js +17 -12
  206. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  207. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  208. package/dist/chrome/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  209. package/dist/chrome/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  210. package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +997 -156
  211. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +560 -613
  212. package/dist/chrome/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  213. package/dist/chrome/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  214. package/dist/chrome/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  215. package/dist/chrome/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  216. package/dist/chrome/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  217. package/dist/chrome/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  218. package/dist/chrome/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  219. package/dist/chrome/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  220. package/dist/chrome/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  221. package/dist/chrome/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  222. package/dist/chrome/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  223. package/dist/chrome/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  224. package/dist/chrome/panes-3-16-0/assets/vendor.css +4 -841
  225. package/dist/chrome/panes-3-16-0/assets/vendor.js +4277 -5152
  226. package/dist/chrome/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  227. package/dist/chrome/panes-3-16-0/basic-B1dkgN3d.js +149 -0
  228. package/dist/chrome/panes-3-16-0/basic-debug.js +10 -0
  229. package/dist/chrome/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  230. package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +10 -0
  231. package/dist/chrome/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  232. package/dist/chrome/panes-3-16-0/chrome-debug.js +10 -0
  233. package/dist/chrome/panes-3-16-0/ember.js +166 -0
  234. package/dist/chrome/panes-3-16-0/ember_debug.js +7 -11018
  235. package/dist/chrome/panes-3-16-0/evented-BCTya3yE.js +62 -0
  236. package/dist/chrome/panes-3-16-0/firefox-8F84zphP.js +30 -0
  237. package/dist/chrome/panes-3-16-0/firefox-debug.js +10 -0
  238. package/dist/chrome/panes-3-16-0/index.html +4 -23
  239. package/dist/chrome/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  240. package/dist/chrome/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  241. package/dist/chrome/panes-3-16-0/main.js +7669 -0
  242. package/dist/chrome/panes-3-16-0/port.js +108 -0
  243. package/dist/chrome/panes-3-16-0/profile-node.js +60 -0
  244. package/dist/chrome/panes-3-16-0/promise-assembler.js +218 -0
  245. package/dist/chrome/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
  246. package/dist/chrome/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
  247. package/dist/chrome/panes-3-16-0/type-check.js +119 -0
  248. package/dist/chrome/panes-3-16-0/version.js +90 -0
  249. package/dist/chrome/panes-3-16-0/versions.js +4 -0
  250. package/dist/chrome/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
  251. package/dist/chrome/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  252. package/dist/chrome/panes-3-16-0/websocket-debug.js +10 -0
  253. package/dist/chrome/scripts/in-page-script.js +19 -13
  254. package/dist/firefox/background.js +26 -21
  255. package/dist/firefox/boot.js +1 -1
  256. package/dist/firefox/content-script.js +12 -11
  257. package/dist/firefox/devtools.js +12 -3
  258. package/dist/firefox/manifest.json +4 -2
  259. package/dist/firefox/options.js +17 -12
  260. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  261. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  262. package/dist/firefox/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  263. package/dist/firefox/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  264. package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +997 -156
  265. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +560 -613
  266. package/dist/firefox/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  267. package/dist/firefox/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  268. package/dist/firefox/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  269. package/dist/firefox/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  270. package/dist/firefox/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  271. package/dist/firefox/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  272. package/dist/firefox/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  273. package/dist/firefox/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  274. package/dist/firefox/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  275. package/dist/firefox/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  276. package/dist/firefox/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  277. package/dist/firefox/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  278. package/dist/firefox/panes-3-16-0/assets/vendor.css +4 -841
  279. package/dist/firefox/panes-3-16-0/assets/vendor.js +4277 -5152
  280. package/dist/firefox/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  281. package/dist/firefox/panes-3-16-0/basic-B1dkgN3d.js +149 -0
  282. package/dist/firefox/panes-3-16-0/basic-debug.js +10 -0
  283. package/dist/firefox/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  284. package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +10 -0
  285. package/dist/firefox/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  286. package/dist/firefox/panes-3-16-0/chrome-debug.js +10 -0
  287. package/dist/firefox/panes-3-16-0/ember.js +166 -0
  288. package/dist/firefox/panes-3-16-0/ember_debug.js +7 -11018
  289. package/dist/firefox/panes-3-16-0/evented-BCTya3yE.js +62 -0
  290. package/dist/firefox/panes-3-16-0/firefox-8F84zphP.js +30 -0
  291. package/dist/firefox/panes-3-16-0/firefox-debug.js +10 -0
  292. package/dist/firefox/panes-3-16-0/index.html +4 -23
  293. package/dist/firefox/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  294. package/dist/firefox/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  295. package/dist/firefox/panes-3-16-0/main.js +7669 -0
  296. package/dist/firefox/panes-3-16-0/port.js +108 -0
  297. package/dist/firefox/panes-3-16-0/profile-node.js +60 -0
  298. package/dist/firefox/panes-3-16-0/promise-assembler.js +218 -0
  299. package/dist/firefox/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
  300. package/dist/firefox/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
  301. package/dist/firefox/panes-3-16-0/type-check.js +119 -0
  302. package/dist/firefox/panes-3-16-0/version.js +90 -0
  303. package/dist/firefox/panes-3-16-0/versions.js +4 -0
  304. package/dist/firefox/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
  305. package/dist/firefox/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  306. package/dist/firefox/panes-3-16-0/websocket-debug.js +10 -0
  307. package/dist/firefox/scripts/in-page-script.js +19 -13
  308. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  309. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  310. package/dist/websocket/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  311. package/dist/websocket/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  312. package/dist/websocket/assets/ember-inspector.css +997 -156
  313. package/dist/websocket/assets/ember-inspector.js +560 -613
  314. package/dist/websocket/assets/svg/ellipsis.svg +3 -3
  315. package/dist/websocket/assets/svg/focus-point-round.svg +9 -0
  316. package/dist/websocket/assets/svg/nav-bug.svg +1 -1
  317. package/dist/websocket/assets/svg/nav-components.svg +2 -2
  318. package/dist/websocket/assets/svg/nav-container.svg +1 -1
  319. package/dist/websocket/assets/svg/nav-data.svg +1 -1
  320. package/dist/websocket/assets/svg/nav-deprecations.svg +3 -3
  321. package/dist/websocket/assets/svg/nav-info.svg +3 -3
  322. package/dist/websocket/assets/svg/nav-promises.svg +2 -2
  323. package/dist/websocket/assets/svg/nav-render-performance.svg +2 -2
  324. package/dist/websocket/assets/svg/nav-route-tree.svg +7 -7
  325. package/dist/websocket/assets/svg/sidebar-toggle-trailing.svg +9 -0
  326. package/dist/websocket/assets/vendor.css +4 -841
  327. package/dist/websocket/assets/vendor.js +4277 -5152
  328. package/dist/websocket/base-object-HAEdWjmg.js +59 -0
  329. package/dist/websocket/basic-B1dkgN3d.js +149 -0
  330. package/dist/websocket/basic-debug.js +10 -0
  331. package/dist/websocket/bookmarklet-BZWtwuX-.js +32 -0
  332. package/dist/websocket/bookmarklet-debug.js +10 -0
  333. package/dist/websocket/chrome-P6FSEUf1.js +10 -0
  334. package/dist/websocket/chrome-debug.js +10 -0
  335. package/dist/websocket/ember.js +166 -0
  336. package/dist/websocket/ember_debug.js +7 -11018
  337. package/dist/websocket/evented-BCTya3yE.js +62 -0
  338. package/dist/websocket/firefox-8F84zphP.js +30 -0
  339. package/dist/websocket/firefox-debug.js +10 -0
  340. package/dist/websocket/index.html +4 -23
  341. package/dist/websocket/internals-CRmXMEzb.js +12 -0
  342. package/dist/websocket/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  343. package/dist/websocket/main.js +7669 -0
  344. package/dist/websocket/port.js +108 -0
  345. package/dist/websocket/profile-node.js +60 -0
  346. package/dist/websocket/promise-assembler.js +218 -0
  347. package/dist/websocket/runloop-6_0lpzTA.js +1138 -0
  348. package/dist/websocket/start-inspector-BIYQArZn.js +334 -0
  349. package/dist/websocket/type-check.js +119 -0
  350. package/dist/websocket/version.js +90 -0
  351. package/dist/websocket/versions.js +4 -0
  352. package/dist/websocket/web-extension-OWnXJ_XK.js +144 -0
  353. package/dist/websocket/websocket-BSUvUqER.js +58 -0
  354. package/dist/websocket/websocket-debug.js +10 -0
  355. package/ember-cli-build.js +31 -140
  356. package/ember_debug/adapters/basic.js +10 -29
  357. package/ember_debug/adapters/bookmarklet.js +1 -0
  358. package/ember_debug/adapters/firefox.js +3 -3
  359. package/ember_debug/adapters/web-extension.js +6 -5
  360. package/ember_debug/adapters/websocket.js +2 -2
  361. package/ember_debug/babel.config.cjs +11 -0
  362. package/ember_debug/container-debug.js +1 -1
  363. package/ember_debug/data-debug.js +7 -8
  364. package/ember_debug/debug-port.js +1 -1
  365. package/ember_debug/deprecation-debug.js +14 -14
  366. package/ember_debug/entrypoints/basic-debug.js +10 -0
  367. package/ember_debug/entrypoints/bookmarklet-debug.js +10 -0
  368. package/ember_debug/entrypoints/chrome-debug.js +10 -0
  369. package/ember_debug/entrypoints/firefox-debug.js +10 -0
  370. package/ember_debug/entrypoints/websocket-debug.js +10 -0
  371. package/ember_debug/general-debug.js +4 -4
  372. package/ember_debug/lib/boot-ember-inspector.js +9 -0
  373. package/ember_debug/lib/get-applications.js +28 -0
  374. package/ember_debug/lib/load-ember-debug-in-webpage.js +32 -0
  375. package/ember_debug/lib/send-apps.js +14 -0
  376. package/ember_debug/lib/send-version-miss.js +38 -0
  377. package/ember_debug/lib/setup-instance-initializer.js +17 -0
  378. package/ember_debug/lib/start-inspector.js +195 -0
  379. package/ember_debug/lib/version-test.js +73 -0
  380. package/ember_debug/lib/versions.js +3 -0
  381. package/ember_debug/libs/capture-render-tree.js +1 -2
  382. package/ember_debug/libs/promise-assembler.js +5 -4
  383. package/ember_debug/libs/render-tree.js +37 -44
  384. package/ember_debug/libs/source-map.js +7 -6
  385. package/ember_debug/libs/view-inspection.js +25 -17
  386. package/ember_debug/main.js +18 -21
  387. package/ember_debug/models/profile-manager.js +6 -6
  388. package/ember_debug/models/profile-node.js +1 -1
  389. package/ember_debug/models/promise.js +2 -2
  390. package/ember_debug/object-inspector.js +74 -65
  391. package/ember_debug/package.json +27 -0
  392. package/ember_debug/port.js +5 -4
  393. package/ember_debug/promise-debug.js +5 -5
  394. package/ember_debug/render-debug.js +5 -5
  395. package/ember_debug/rollup.config.js +24 -0
  396. package/ember_debug/route-debug.js +10 -9
  397. package/ember_debug/services/session.js +2 -2
  398. package/ember_debug/utils/classify.js +1 -1
  399. package/ember_debug/utils/ember/object/internals.js +1 -11
  400. package/ember_debug/utils/ember/own-runloop.js +1 -1
  401. package/ember_debug/utils/ember/runloop.js +7 -10
  402. package/ember_debug/utils/ember-object-names.js +11 -9
  403. package/ember_debug/utils/ember.js +222 -40
  404. package/ember_debug/utils/evented.js +1 -1
  405. package/ember_debug/utils/get-object-name.js +3 -3
  406. package/ember_debug/utils/type-check.js +9 -5
  407. package/ember_debug/view-debug.js +12 -6
  408. package/eslint.config.mjs +173 -0
  409. package/gulpfile.js +1 -1
  410. package/package.json +97 -95
  411. package/patches/ember-cli-inject-live-reload.patch +16 -0
  412. package/pnpm-workspace.yaml +3 -0
  413. package/public/assets/svg/ellipsis.svg +3 -3
  414. package/public/assets/svg/focus-point-round.svg +9 -0
  415. package/public/assets/svg/nav-bug.svg +1 -1
  416. package/public/assets/svg/nav-components.svg +2 -2
  417. package/public/assets/svg/nav-container.svg +1 -1
  418. package/public/assets/svg/nav-data.svg +1 -1
  419. package/public/assets/svg/nav-deprecations.svg +3 -3
  420. package/public/assets/svg/nav-info.svg +3 -3
  421. package/public/assets/svg/nav-promises.svg +2 -2
  422. package/public/assets/svg/nav-render-performance.svg +2 -2
  423. package/public/assets/svg/nav-route-tree.svg +7 -7
  424. package/public/assets/svg/sidebar-toggle-trailing.svg +9 -0
  425. package/scripts/download-panes.js +1 -1
  426. package/skeletons/bookmarklet/load_inspector.js +31 -11
  427. package/skeletons/web-extension/background.js +26 -21
  428. package/skeletons/web-extension/boot.js +1 -1
  429. package/skeletons/web-extension/content-script.js +12 -11
  430. package/skeletons/web-extension/devtools.js +12 -3
  431. package/skeletons/web-extension/manifest.json +3 -1
  432. package/skeletons/web-extension/options.js +17 -12
  433. package/skeletons/web-extension/scripts/in-page-script.js +19 -13
  434. package/testem.js +0 -1
  435. package/tests/acceptance/app-picker-test.js +4 -4
  436. package/tests/acceptance/component-tree-test.js +96 -57
  437. package/tests/acceptance/container-test.js +0 -2
  438. package/tests/acceptance/data-test.js +14 -11
  439. package/tests/acceptance/deprecation-test.js +8 -12
  440. package/tests/acceptance/info-test.js +2 -2
  441. package/tests/acceptance/object-inspector-test.js +62 -110
  442. package/tests/acceptance/promise-test.js +1 -11
  443. package/tests/acceptance/render-tree-test.js +2 -2
  444. package/tests/acceptance/route-tree-test.js +12 -14
  445. package/tests/acceptance/whats-new-test.js +11 -11
  446. package/tests/ember_debug/container-debug-test.js +5 -14
  447. package/tests/ember_debug/deprecation-debug-test.js +15 -6
  448. package/tests/ember_debug/ember-data-test.js +7 -1
  449. package/tests/ember_debug/ember-debug-test.js +13 -13
  450. package/tests/ember_debug/object-inspector-test.js +115 -50
  451. package/tests/ember_debug/profile-manager-test.js +153 -170
  452. package/tests/ember_debug/profile-node-test.js +9 -5
  453. package/tests/ember_debug/promise-assembler-test.js +18 -10
  454. package/tests/ember_debug/promise-debug-test.js +19 -15
  455. package/tests/ember_debug/render-debug-test.js +8 -1
  456. package/tests/ember_debug/route-debug-test.js +14 -8
  457. package/tests/ember_debug/view-debug-test.js +267 -183
  458. package/tests/helpers/{index.js → index.ts} +6 -5
  459. package/tests/helpers/setup-ember-debug-test.js +22 -2
  460. package/tests/index.html +1 -2
  461. package/tests/integration/injection-test.js +37 -81
  462. package/tests/test-adapter.js +15 -15
  463. package/tests/test-helper.js +6 -4
  464. package/tests/unit/check-current-route-test.js +0 -4
  465. package/tests/unit/resizable-columns-test.js +53 -51
  466. package/tests/unit/utils/parse-text-test.js +3 -3
  467. package/tests/unit/utils/search-match-test.js +5 -5
  468. package/tests/unit/utils/type-check-test.js +27 -0
  469. package/tsconfig.json +3 -1
  470. package/types/ember-inspector/index.d.ts +2 -1
  471. package/types/global.d.ts +1 -7
  472. package/.eslintignore +0 -33
  473. package/.eslintrc.js +0 -86
  474. package/app/components/list-content.js +0 -130
  475. package/app/controllers/promise-tree.js +0 -130
  476. package/app/libs/promise-assembler.js +0 -169
  477. package/app/routes/model-types.js +0 -47
  478. package/app/routes/promise-tree.js +0 -48
  479. package/app/routes/records.js +0 -55
  480. package/app/routes/render-tree.js +0 -66
  481. package/app/services/adapters/websocket.js +0 -31
  482. package/app/services/layout.js +0 -39
  483. package/app/services/port.js +0 -90
  484. package/dist/bookmarklet/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
  485. package/dist/bookmarklet/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  486. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  487. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  488. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  489. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  490. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  491. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  492. package/dist/chrome/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
  493. package/dist/chrome/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  494. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  495. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  496. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  497. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  498. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  499. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  500. package/dist/firefox/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
  501. package/dist/firefox/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  502. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  503. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  504. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  505. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  506. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  507. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  508. package/dist/websocket/assets/chunk.143.76a242242ec46a377266.js +0 -28
  509. package/dist/websocket/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  510. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  511. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  512. package/dist/websocket/assets/fonts/Inter-Bold.woff +0 -0
  513. package/dist/websocket/assets/fonts/Inter-Bold.woff2 +0 -0
  514. package/dist/websocket/assets/fonts/Inter-Regular.woff +0 -0
  515. package/dist/websocket/assets/fonts/Inter-Regular.woff2 +0 -0
  516. package/ember_debug/.eslintrc.js +0 -13
  517. package/ember_debug/utils/ember/debug.js +0 -20
  518. package/ember_debug/utils/ember/instrumentation.js +0 -11
  519. package/ember_debug/utils/ember/loader.js +0 -22
  520. package/ember_debug/utils/rsvp.js +0 -20
  521. package/ember_debug/vendor/loader.js +0 -54
  522. package/ember_debug/vendor/startup-wrapper.js +0 -399
  523. package/lib/ui/addon/styles/_object-inspector-toggle.scss +0 -12
  524. package/lib/ui/addon/styles/addon.scss +0 -13
  525. package/lib/ui/addon/styles/toolbar/_icon-button.scss +0 -61
  526. package/lib/ui/app/components/ui/disclosure-triangle.js +0 -1
  527. package/lib/ui/app/components/ui/disclosure.js +0 -1
  528. package/lib/ui/app/components/ui/drag-handle.js +0 -1
  529. package/lib/ui/app/components/ui/draggable-column.js +0 -1
  530. package/lib/ui/app/components/ui/empty-message.js +0 -1
  531. package/lib/ui/app/components/ui/error-page.js +0 -1
  532. package/lib/ui/app/components/ui/open-links-in-new-window.js +0 -1
  533. package/lib/ui/app/components/ui/resizable-column.js +0 -1
  534. package/lib/ui/app/components/ui/send-to-console.js +0 -1
  535. package/lib/ui/app/components/ui/toolbar-clear-button.js +0 -1
  536. package/lib/ui/app/components/ui/toolbar-divider.js +0 -1
  537. package/lib/ui/app/components/ui/toolbar-reload-button.js +0 -1
  538. package/lib/ui/app/components/ui/toolbar-search-field.js +0 -1
  539. package/lib/ui/app/components/ui/warning-message.js +0 -1
  540. package/lib/ui/index.js +0 -34
  541. package/lib/ui/package.json +0 -13
  542. package/public/assets/fonts/Inter-Bold.woff +0 -0
  543. package/public/assets/fonts/Inter-Bold.woff2 +0 -0
  544. package/public/assets/fonts/Inter-Regular.woff +0 -0
  545. package/public/assets/fonts/Inter-Regular.woff2 +0 -0
  546. package/tests/helpers/trigger-port.js +0 -6
  547. /package/app/{app.js → app.ts} +0 -0
  548. /package/{lib/ui/addon/components → app/components/ui}/disclosure-triangle.hbs +0 -0
  549. /package/{lib/ui/addon/components → app/components/ui}/disclosure.hbs +0 -0
  550. /package/{lib/ui/addon/components → app/components/ui}/disclosure.js +0 -0
  551. /package/{lib/ui/addon/components → app/components/ui}/draggable-column.hbs +0 -0
  552. /package/{lib/ui/addon/components → app/components/ui}/draggable-column.js +0 -0
  553. /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.hbs +0 -0
  554. /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.js +0 -0
  555. /package/{lib/ui/addon/components → app/components/ui}/resizable-column.hbs +0 -0
  556. /package/{lib/ui/addon/components → app/components/ui}/send-to-console.hbs +0 -0
  557. /package/{lib/ui/addon/components → app/components/ui}/toolbar-divider.hbs +0 -0
  558. /package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.js +0 -0
  559. /package/{lib/ui/addon/components → app/components/ui}/warning-message.hbs +0 -0
  560. /package/app/controllers/{info.js → info.ts} +0 -0
  561. /package/app/services/adapters/{firefox.js → firefox.ts} +0 -0
  562. /package/{lib/ui/addon/styles → app/styles/ui}/_goto-source.scss +0 -0
  563. /package/{lib/ui/addon/styles → app/styles/ui}/_warning.scss +0 -0
  564. /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_divider.scss +0 -0
@@ -1,14 +1,17 @@
1
1
  /**
2
2
  * Type declarations for
3
- * import config from 'my-app/config/environment'
3
+ * import config from 'ember-inspector/config/environment'
4
4
  */
5
5
  declare const config: {
6
+ emberVersionsSupported: [fromVersion: string, tillVersion: string];
6
7
  environment: string;
7
8
  modulePrefix: string;
8
9
  podModulePrefix: string;
9
- locationType: 'history' | 'hash' | 'none' | 'auto';
10
+ locationType: 'history' | 'hash' | 'none';
11
+ previousEmberVersionsSupported: Array<string>;
10
12
  rootURL: string;
11
13
  APP: Record<string, unknown>;
14
+ VERSION: string;
12
15
  };
13
16
 
14
17
  export default config;
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
1
2
  import { computed } from '@ember/object';
2
3
  import Controller from '@ember/controller';
3
4
 
@@ -1,19 +1,19 @@
1
- import Controller from '@ember/controller';
1
+ import Controller, { inject as controller } from '@ember/controller';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { action } from '@ember/object';
4
- import { equal } from '@ember/object/computed';
5
4
  import { debounce, schedule } from '@ember/runloop';
6
5
  import { inject as service } from '@ember/service';
7
6
 
7
+ import { TrackedArray, TrackedObject } from 'tracked-built-ins';
8
+
8
9
  export default class ApplicationController extends Controller {
10
+ @controller('component-tree') componentTreeController;
11
+
9
12
  /**
10
13
  * Service used to broadcast changes to the application's layout
11
14
  * such as toggling of the object inspector.
12
- *
13
- * @property layoutService
14
- * @type {Service}
15
15
  */
16
- @service('layout') layoutService;
16
+ @service layout;
17
17
  @service port;
18
18
 
19
19
  // Indicates that the extension window is focused,
@@ -21,17 +21,16 @@ export default class ApplicationController extends Controller {
21
21
  @tracked isDragging = false;
22
22
  @tracked contentHeight = null;
23
23
  @tracked deprecationCount = 0;
24
- @tracked inspectorExpanded = false;
25
24
  @tracked inspectorWidth = 360;
26
25
  /**
27
26
  * Indicates if the inspector has detected an ember app.
28
- *
29
- * @type {Boolean}
30
27
  */
31
28
  isEmberApplication = false;
32
29
  @tracked _navWidthExpanded = 180;
33
30
  @tracked _navWidthCollapsed = 48;
34
31
  @tracked navIsCollapsed = false;
32
+ @tracked mixinDetails = new TrackedObject({});
33
+ @tracked mixinStack = new TrackedArray([]);
35
34
 
36
35
  get navWidth() {
37
36
  return this.navIsCollapsed
@@ -43,14 +42,8 @@ export default class ApplicationController extends Controller {
43
42
  this._navWidthExpanded = value;
44
43
  }
45
44
 
46
- @equal('port.adapter.name', 'chrome')
47
- isChrome;
48
-
49
- constructor() {
50
- super(...arguments);
51
-
52
- this.mixinStack = [];
53
- this.mixinDetails = [];
45
+ get isChrome() {
46
+ return this.port?.adapter?.name === 'chrome';
54
47
  }
55
48
 
56
49
  /*
@@ -67,76 +60,44 @@ export default class ApplicationController extends Controller {
67
60
  errors,
68
61
  };
69
62
 
70
- this.mixinStack.pushObject(details);
71
- this.set('mixinDetails', details);
63
+ this.mixinStack.push(details);
64
+ this.mixinDetails = details;
72
65
  }
73
66
 
74
67
  @action
75
68
  popMixinDetails() {
76
- let mixinStack = this.mixinStack;
77
- let item = mixinStack.popObject();
78
- this.set('mixinDetails', mixinStack.get('lastObject'));
69
+ const item = this.mixinStack.pop();
70
+ this.mixinDetails = this.mixinStack.at(-1);
79
71
  this.port.send('objectInspector:releaseObject', {
80
72
  objectId: item.objectId,
81
73
  });
82
74
  }
83
75
 
84
- @action
85
- showInspector() {
86
- if (this.inspectorExpanded === false) {
87
- this.set('inspectorExpanded', true);
88
- // Broadcast that tables have been resized (used by `x-list`).
89
- schedule('afterRender', () => {
90
- this.layoutService.trigger('resize', { source: 'object-inspector' });
91
- });
92
- }
93
- }
94
-
95
- @action
96
- hideInspector() {
97
- if (this.inspectorExpanded === true) {
98
- this.set('inspectorExpanded', false);
99
- // Broadcast that tables have been resized (used by `x-list`).
100
- schedule('afterRender', () => {
101
- this.layoutService.trigger('resize', { source: 'object-inspector' });
102
- });
103
- }
104
- }
105
-
106
- @action
107
- toggleInspector() {
108
- if (this.inspectorExpanded) {
109
- this.hideInspector();
110
- } else {
111
- this.showInspector();
112
- }
113
- }
114
-
115
76
  @action
116
77
  setActive(bool) {
78
+ // eslint-disable-next-line ember/no-runloop
117
79
  schedule('afterRender', () => {
118
- this.set('active', bool);
80
+ this.active = bool;
119
81
  });
120
82
  }
121
83
 
122
84
  @action
123
85
  setupContentElement(element) {
124
86
  this.contentElement = element;
125
- this.layoutService.updateContentHeight(this.contentElement.clientHeight);
87
+ this.layout.updateContentHeight(this.contentElement.clientHeight);
126
88
  }
127
89
 
128
90
  @action
129
91
  _windowDidResize() {
92
+ // eslint-disable-next-line ember/no-runloop
130
93
  schedule('afterRender', () => {
131
94
  if (!this.isDestroyed && !this.isDestroying) {
132
- this.layoutService.trigger('resize', {
95
+ this.layout.trigger('resize', {
133
96
  source: 'application-controller',
134
97
  });
135
98
 
136
99
  if (this.contentElement) {
137
- this.layoutService.updateContentHeight(
138
- this.contentElement.clientHeight
139
- );
100
+ this.layout.updateContentHeight(this.contentElement.clientHeight);
140
101
  }
141
102
  }
142
103
  });
@@ -144,14 +105,16 @@ export default class ApplicationController extends Controller {
144
105
 
145
106
  @action
146
107
  windowDidResize() {
108
+ // eslint-disable-next-line ember/no-runloop
147
109
  debounce(this, this._windowDidResize, 250);
148
110
  }
149
111
 
150
112
  @action
151
113
  toggleNavCollapsed() {
152
- this.set('navIsCollapsed', !this.navIsCollapsed);
114
+ this.navIsCollapsed = !this.navIsCollapsed;
115
+ // eslint-disable-next-line ember/no-runloop
153
116
  schedule('afterRender', () => {
154
- this.layoutService.trigger('resize', { source: 'navigation' });
117
+ this.layout.trigger('resize', { source: 'navigation' });
155
118
  });
156
119
  }
157
120
 
@@ -166,28 +129,30 @@ export default class ApplicationController extends Controller {
166
129
  });
167
130
  });
168
131
 
169
- this.set('mixinStack', []);
132
+ this.mixinStack = new TrackedArray([]);
170
133
  this.pushMixinDetails(name, undefined, objectId, details, errors);
171
134
  }
172
135
 
173
136
  @action
174
137
  droppedObject(objectId) {
175
- let mixinStack = this.mixinStack;
176
- let obj = mixinStack.findBy('objectId', objectId);
138
+ let obj = this.mixinStack.find((mixin) => mixin.objectId === objectId);
177
139
  if (obj) {
178
- let index = mixinStack.indexOf(obj);
179
- let objectsToRemove = [];
140
+ let index = this.mixinStack.indexOf(obj);
141
+ let objectsToRemove = new TrackedArray([]);
180
142
  for (let i = index; i >= 0; i--) {
181
- objectsToRemove.pushObject(mixinStack.objectAt(i));
143
+ objectsToRemove.push(this.mixinStack.at(i));
182
144
  }
183
145
  objectsToRemove.forEach((item) => {
184
- mixinStack.removeObject(item);
146
+ const index = this.mixinStack.indexOf(item);
147
+ if (index !== -1) {
148
+ this.mixinStack.splice(index, 1);
149
+ }
185
150
  });
186
151
  }
187
- if (mixinStack.get('length') > 0) {
188
- this.set('mixinDetails', mixinStack.get('lastObject'));
152
+ if (this.mixinStack.length > 0) {
153
+ this.mixinDetails = this.mixinStack.at(-1);
189
154
  } else {
190
- this.set('mixinDetails', null);
155
+ this.mixinDetails = null;
191
156
  }
192
157
  }
193
158
  }
@@ -1,4 +1,4 @@
1
- import Controller, { inject as controller } from '@ember/controller';
1
+ import Controller from '@ember/controller';
2
2
  import { action } from '@ember/object';
3
3
  import { debounce } from '@ember/runloop';
4
4
  import { inject as service } from '@ember/service';
@@ -14,11 +14,12 @@ export default class ComponentTreeController extends Controller {
14
14
  // Estimated height for each row
15
15
  itemHeight = 22;
16
16
 
17
- @controller application;
18
17
  @service port;
18
+ @service layout;
19
19
 
20
20
  @tracked query = '';
21
21
  @tracked isInspecting = false;
22
+ @tracked showParentsOnly = false;
22
23
  @tracked renderItems = [];
23
24
 
24
25
  @tracked _pinned = undefined;
@@ -53,7 +54,7 @@ export default class ComponentTreeController extends Controller {
53
54
  renderNode.children.some((c) => c.type === 'modifier')
54
55
  ) {
55
56
  const idx = renderNode.children.findLastIndex(
56
- (c) => c.type === 'modifier'
57
+ (c) => c.type === 'modifier',
57
58
  );
58
59
  renderNode.children.splice(idx + 1, 0, {
59
60
  type: 'placeholder-closing-tag',
@@ -145,14 +146,14 @@ export default class ComponentTreeController extends Controller {
145
146
  objectId: item.instance,
146
147
  });
147
148
  } else {
148
- this.application.hideInspector();
149
+ this.layout.hideInspector();
149
150
  }
150
151
  } else {
151
152
  this._pinned = undefined;
152
153
  this._previewing = undefined;
153
154
 
154
155
  this.port.send('view:hideInspection');
155
- this.application.hideInspector();
156
+ this.layout.hideInspector();
156
157
  }
157
158
 
158
159
  this.syncInspection();
@@ -182,6 +183,7 @@ export default class ComponentTreeController extends Controller {
182
183
  }
183
184
 
184
185
  syncInspection() {
186
+ // eslint-disable-next-line ember/no-runloop
185
187
  debounce(this, this._syncInspection, 50);
186
188
  }
187
189
 
@@ -268,6 +270,10 @@ export default class ComponentTreeController extends Controller {
268
270
  @action arrowKeysTeardown() {
269
271
  document.removeEventListener('keydown', this.handleKeyDown);
270
272
  }
273
+
274
+ @action toggleParentsOnly() {
275
+ this.showParentsOnly = !this.showParentsOnly;
276
+ }
271
277
  }
272
278
 
273
279
  function isInternalRenderNode(renderNode) {
@@ -279,7 +285,7 @@ function isInternalRenderNode(renderNode) {
279
285
 
280
286
  function focusedInInput() {
281
287
  return ['input', 'textarea'].includes(
282
- document.activeElement.tagName.toLowerCase()
288
+ document.activeElement.tagName.toLowerCase(),
283
289
  );
284
290
  }
285
291
 
@@ -287,7 +293,7 @@ function arrowKeyPressed(keyCode) {
287
293
  return [KEYS.up, KEYS.right, KEYS.down, KEYS.left].includes(keyCode);
288
294
  }
289
295
 
290
- class RenderItem {
296
+ export class RenderItem {
291
297
  @tracked isExpanded;
292
298
  @tracked renderNode;
293
299
 
@@ -416,11 +422,24 @@ class RenderItem {
416
422
  get isVisible() {
417
423
  if (this.isRoot) {
418
424
  return true;
425
+ } else if (this.controller.showParentsOnly) {
426
+ return (
427
+ this.hasPinnedChild() ||
428
+ (this.hasPinnedParent() && this.parentItem.isExpanded)
429
+ );
419
430
  } else {
420
431
  return this.parentItem.isVisible && this.parentItem.isExpanded;
421
432
  }
422
433
  }
423
434
 
435
+ hasPinnedParent() {
436
+ return this.isPinned || this.parentItem?.hasPinnedParent();
437
+ }
438
+
439
+ hasPinnedChild() {
440
+ return this.isPinned || this.childItems.some((c) => c.hasPinnedChild());
441
+ }
442
+
424
443
  get isPinned() {
425
444
  return this.id === this.controller.pinned;
426
445
  }
@@ -1,5 +1,6 @@
1
1
  import Controller, { inject as controller } from '@ember/controller';
2
2
  import { inject as service } from '@ember/service';
3
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
3
4
  import { action, computed, set } from '@ember/object';
4
5
  import debounceComputed from 'ember-inspector/computed/debounce';
5
6
  import searchMatch from 'ember-inspector/utils/search-match';
@@ -17,7 +18,7 @@ export default class ContainerTypeContoller extends Controller {
17
18
  @computed('model.@each.name', 'search')
18
19
  get rows() {
19
20
  return this.model.filter((instance) =>
20
- searchMatch(instance.name, this.search)
21
+ searchMatch(instance.name, this.search),
21
22
  );
22
23
  }
23
24
 
@@ -1,10 +1,13 @@
1
1
  import Controller from '@ember/controller';
2
2
  import { action } from '@ember/object';
3
+ import type RouterService from '@ember/routing/router-service';
3
4
  import { inject as service } from '@ember/service';
4
5
 
6
+ import type PortService from '../../services/port';
7
+
5
8
  export default class ContainerTypesIndexController extends Controller {
6
- @service port;
7
- @service router;
9
+ @service declare port: PortService;
10
+ @service declare router: RouterService;
8
11
 
9
12
  @action
10
13
  refresh() {
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
1
2
  import { sort } from '@ember/object/computed';
2
3
  import { inject as service } from '@ember/service';
3
4
  import Controller from '@ember/controller';
@@ -5,11 +6,7 @@ import Controller from '@ember/controller';
5
6
  export default class ContainerTypesController extends Controller {
6
7
  @service router;
7
8
 
8
- @sort('model', 'sortProperties') sorted;
9
-
10
- constructor() {
11
- super(...arguments);
9
+ sortProperties = ['name'];
12
10
 
13
- this.sortProperties = ['name'];
14
- }
11
+ @sort('model', 'sortProperties') sorted;
15
12
  }
@@ -1,6 +1,10 @@
1
- import { action, computed, set } from '@ember/object';
1
+ import { action } from '@ember/object';
2
2
  import { inject as service } from '@ember/service';
3
3
  import Controller from '@ember/controller';
4
+ import { tracked } from '@glimmer/tracking';
5
+
6
+ import { TrackedArray } from 'tracked-built-ins';
7
+
4
8
  import debounceComputed from 'ember-inspector/computed/debounce';
5
9
  import searchMatch from 'ember-inspector/utils/search-match';
6
10
 
@@ -8,32 +12,33 @@ export default class DeprecationsController extends Controller {
8
12
  @service adapter;
9
13
  @service port;
10
14
 
11
- search = null;
12
- toggleDeprecationWorkflow = false;
15
+ deprecations = new TrackedArray([]);
16
+ @tracked search = null;
17
+ @tracked toggleDeprecationWorkflow = false;
13
18
 
14
19
  @debounceComputed('search', 300) searchValue;
15
20
 
16
- constructor() {
17
- super(...arguments);
18
- set(this, 'deprecations', []);
19
- }
20
-
21
21
  @action
22
22
  changeDeprecationWorkflow(e) {
23
- this.set('toggleDeprecationWorkflow', e.target.checked);
23
+ this.toggleDeprecationWorkflow = e.target.checked;
24
24
 
25
25
  this.port.send('deprecation:setOptions', {
26
26
  options: { toggleDeprecationWorkflow: this.toggleDeprecationWorkflow },
27
27
  });
28
28
  }
29
29
 
30
- @computed('deprecations.@each.message', 'search')
31
30
  get filtered() {
32
31
  return this.deprecations.filter((item) =>
33
- searchMatch(item.message, this.search)
32
+ searchMatch(item.message, this.search),
34
33
  );
35
34
  }
36
35
 
36
+ @action
37
+ clear() {
38
+ this.port.send('deprecation:clear');
39
+ this.deprecations.splice(0, this.deprecations.length);
40
+ }
41
+
37
42
  @action
38
43
  openResource(item) {
39
44
  this.adapter.openResource(item.fullSource, item.line);
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
1
2
  import { computed } from '@ember/object';
2
3
  import Controller from '@ember/controller';
3
4
 
@@ -1,6 +1,5 @@
1
1
  import Controller from '@ember/controller';
2
- import { action, computed } from '@ember/object';
3
- import { sort } from '@ember/object/computed';
2
+ import { action } from '@ember/object';
4
3
  import { inject as service } from '@ember/service';
5
4
 
6
5
  const HIDE_EMPTY_MODELS_KEY = 'are-model-types-hidden';
@@ -13,12 +12,6 @@ export default class ModelTypesController extends Controller {
13
12
 
14
13
  navWidth = 180;
15
14
 
16
- constructor() {
17
- super(...arguments);
18
- this.sortByNameProp = ['name'];
19
- this.sortByDescCountProp = ['count:desc'];
20
- }
21
-
22
15
  get hideEmptyModelTypes() {
23
16
  return getStoredPropertyValue(this.storage, HIDE_EMPTY_MODELS_KEY);
24
17
  }
@@ -35,13 +28,14 @@ export default class ModelTypesController extends Controller {
35
28
  handleSettingProperty(this.storage, ORDER_MODELS_BY_COUNT_KEY, value);
36
29
  }
37
30
 
38
- @sort('filtered', 'sortByNameProp')
39
- sortByName;
31
+ get sortByName() {
32
+ return this.filtered.toSorted((a, b) => a.name.localeCompare(b.name));
33
+ }
40
34
 
41
- @sort('filtered', 'sortByDescCountProp')
42
- sortByDescCount;
35
+ get sortByDescCount() {
36
+ return this.filtered.toSorted((a, b) => b.count - a.count);
37
+ }
43
38
 
44
- @computed('model.@each.count', 'hideEmptyModelTypes')
45
39
  get filtered() {
46
40
  return this.model.filter((item) => {
47
41
  let hideEmptyModels = this.hideEmptyModelTypes;
@@ -0,0 +1,149 @@
1
+ import { action } from '@ember/object';
2
+ import Controller from '@ember/controller';
3
+ import { inject as service } from '@ember/service';
4
+ import { debounce, once } from '@ember/runloop';
5
+ import { tracked } from '@glimmer/tracking';
6
+
7
+ // @ts-expect-error We should move away from observers.
8
+ import { observes } from '@ember-decorators/object';
9
+
10
+ import type PortService from '../services/port';
11
+ import type PromiseModel from '../models/promise';
12
+ import type WebExtension from '../services/adapters/web-extension';
13
+ import { isNullish } from 'ember-inspector/utils/nullish';
14
+
15
+ export default class PromiseTreeController extends Controller {
16
+ queryParams = ['filter'];
17
+
18
+ declare model: Array<PromiseModel>;
19
+
20
+ @service declare adapter: WebExtension;
21
+ @service declare port: PortService;
22
+
23
+ @tracked createdAfter: Date | null = null;
24
+ @tracked effectiveSearch: string | null = null;
25
+ @tracked filter = 'all';
26
+ // Keep track of promise stack traces.
27
+ // It is opt-in due to performance reasons.
28
+ @tracked instrumentWithStack = false;
29
+ @tracked searchValue: string | null = null;
30
+
31
+ // below used to show the "refresh" message
32
+ get isEmpty() {
33
+ return this.model.length === 0;
34
+ }
35
+
36
+ get neverCleared() {
37
+ return !this.wasCleared;
38
+ }
39
+
40
+ get shouldRefresh() {
41
+ return this.isEmpty && this.neverCleared;
42
+ }
43
+
44
+ get wasCleared() {
45
+ return Boolean(this.createdAfter);
46
+ }
47
+
48
+ get filtered() {
49
+ return this.model.filter((item) => {
50
+ // exclude cleared promises
51
+ if (this.createdAfter && item.createdAt < this.createdAfter) {
52
+ return false;
53
+ }
54
+
55
+ if (!item.isVisible) {
56
+ return false;
57
+ }
58
+
59
+ // Exclude non-filter complying promises
60
+ // If at least one of their children passes the filter,
61
+ // then they pass
62
+ let include = true;
63
+ if (this.filter === 'pending') {
64
+ include = item.pendingBranch;
65
+ } else if (this.filter === 'rejected') {
66
+ include = item.rejectedBranch;
67
+ } else if (this.filter === 'fulfilled') {
68
+ include = item.fulfilledBranch;
69
+ }
70
+ if (!include) {
71
+ return false;
72
+ }
73
+
74
+ // Search filter
75
+ // If they or at least one of their children
76
+ // match the search, then include them
77
+ const search = this.effectiveSearch;
78
+ if (!isNullish(search)) {
79
+ return item.matches(search);
80
+ }
81
+ return true;
82
+ });
83
+ }
84
+
85
+ // eslint-disable-next-line ember/no-observers, @typescript-eslint/no-unsafe-call
86
+ @observes('searchValue')
87
+ searchChanged() {
88
+ // eslint-disable-next-line ember/no-runloop
89
+ debounce(this, this.updateEffectiveSearch, 500);
90
+ }
91
+
92
+ updateEffectiveSearch = () => {
93
+ this.effectiveSearch = this.searchValue;
94
+ };
95
+
96
+ @action
97
+ toggleExpand(promise: PromiseModel) {
98
+ const isExpanded = !promise.isExpanded;
99
+ promise.isManuallyExpanded = isExpanded;
100
+ promise.recalculateExpanded();
101
+ const children = promise._allChildren();
102
+ if (isExpanded) {
103
+ children.forEach((child) => {
104
+ if (isNullish(child.isManuallyExpanded)) {
105
+ child.isManuallyExpanded = isExpanded;
106
+ child.recalculateExpanded();
107
+ }
108
+ });
109
+ }
110
+ }
111
+
112
+ @action
113
+ tracePromise(promise: PromiseModel) {
114
+ this.port.send('promise:tracePromise', { promiseId: promise.guid });
115
+ }
116
+
117
+ @action
118
+ inspectObject() {
119
+ // @ts-expect-error TODO: figure this out later
120
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, prefer-rest-params
121
+ this.target.send('inspectObject', ...arguments);
122
+ }
123
+
124
+ @action
125
+ sendValueToConsole(promise: PromiseModel) {
126
+ this.port.send('promise:sendValueToConsole', {
127
+ promiseId: promise.guid,
128
+ });
129
+ }
130
+
131
+ @action
132
+ setFilter(filter: string) {
133
+ this.filter = filter;
134
+ }
135
+
136
+ @action
137
+ updateInstrumentWithStack(instrumentWithStack: boolean) {
138
+ this.port.send('promise:setInstrumentWithStack', {
139
+ instrumentWithStack,
140
+ });
141
+ }
142
+
143
+ @action
144
+ clear() {
145
+ this.createdAfter = new Date();
146
+ // eslint-disable-next-line ember/no-runloop
147
+ once(this, this.updateEffectiveSearch);
148
+ }
149
+ }