ember-inspector 4.13.1-alpha.2024.8.9 → 4.13.1-alpha.2025.6.8

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 (367) hide show
  1. package/README.md +10 -2
  2. package/app/components/app-picker.hbs +2 -2
  3. package/app/components/component-tree-item.hbs +13 -13
  4. package/app/components/component-tree-toolbar.hbs +3 -3
  5. package/app/components/{date-property-field.js → date-property-field.ts} +6 -5
  6. package/app/components/deprecation-item-source.hbs +1 -1
  7. package/app/components/deprecation-item.hbs +1 -1
  8. package/app/components/deprecations-toolbar.hbs +1 -1
  9. package/app/components/item-types.hbs +7 -7
  10. package/app/components/list-cell.hbs +3 -3
  11. package/app/components/list-content.hbs +4 -3
  12. package/app/components/list-content.ts +96 -0
  13. package/app/components/list.hbs +3 -3
  14. package/app/components/list.js +7 -7
  15. package/app/components/model-types-toolbar.hbs +3 -3
  16. package/app/components/object-inspector/dependent-keys.hbs +4 -4
  17. package/app/components/object-inspector/errors.hbs +4 -4
  18. package/app/components/object-inspector/properties-all.hbs +1 -1
  19. package/app/components/object-inspector/properties-grouped.hbs +5 -5
  20. package/app/components/object-inspector/property.hbs +16 -16
  21. package/app/components/object-inspector/property.ts +26 -17
  22. package/app/components/object-inspector/sort-properties.js +12 -4
  23. package/app/components/object-inspector.hbs +8 -8
  24. package/app/components/object-inspector.js +1 -1
  25. package/app/components/promise-item.hbs +11 -11
  26. package/app/components/promise-item.js +8 -6
  27. package/app/components/promise-tree-toolbar.hbs +5 -5
  28. package/app/components/records-toolbar.hbs +2 -2
  29. package/app/components/render-item.hbs +4 -4
  30. package/app/components/render-item.ts +12 -9
  31. package/app/components/render-tree-toolbar.hbs +1 -1
  32. package/app/components/route-cell-name.hbs +1 -1
  33. package/app/components/route-cell-name.js +3 -2
  34. package/app/components/route-tree-toolbar.hbs +2 -2
  35. package/app/components/scroll-container.js +2 -0
  36. package/app/components/side-nav.hbs +5 -5
  37. package/app/components/side-nav.js +1 -1
  38. package/app/computed/{debounce.js → debounce.ts} +7 -5
  39. package/app/config/environment.d.ts +5 -2
  40. package/app/controllers/app-config.js +1 -0
  41. package/app/controllers/application.js +33 -34
  42. package/app/controllers/component-tree.js +3 -2
  43. package/app/controllers/container-type.js +2 -1
  44. package/app/controllers/container-types/{index.js → index.ts} +5 -2
  45. package/app/controllers/container-types.js +3 -6
  46. package/app/controllers/deprecations.js +16 -11
  47. package/app/controllers/libraries.js +1 -0
  48. package/app/controllers/model-types.js +1 -0
  49. package/app/controllers/promise-tree.ts +149 -0
  50. package/app/controllers/records.js +18 -26
  51. package/app/controllers/{render-tree.js → render-tree.ts} +54 -45
  52. package/app/controllers/route-tree.js +7 -5
  53. package/app/helpers/build-style.js +1 -1
  54. package/app/initializers/setup.js +1 -1
  55. package/app/libs/promise-assembler.ts +249 -0
  56. package/app/libs/resizable-columns.js +10 -10
  57. package/app/models/{promise.js → promise.ts} +72 -69
  58. package/app/{router.js → router.ts} +1 -1
  59. package/app/routes/app-detected.js +3 -5
  60. package/app/routes/application.js +6 -12
  61. package/app/routes/deprecations.js +7 -16
  62. package/app/routes/launch.js +2 -1
  63. package/app/routes/libraries.js +2 -1
  64. package/app/routes/model-type.js +2 -3
  65. package/app/routes/model-types.ts +57 -0
  66. package/app/routes/promise-tree.ts +63 -0
  67. package/app/routes/records.ts +78 -0
  68. package/app/routes/render-tree.ts +93 -0
  69. package/app/routes/route-tree.js +0 -1
  70. package/app/routes/{tab.js → tab.ts} +9 -2
  71. package/app/routes/whats-new.js +1 -1
  72. package/app/services/adapters/{basic.js → basic.ts} +36 -30
  73. package/app/services/adapters/{bookmarklet.js → bookmarklet.ts} +17 -24
  74. package/app/services/adapters/{chrome.js → chrome.ts} +1 -2
  75. package/app/services/adapters/{web-extension.js → web-extension.ts} +43 -46
  76. package/app/services/adapters/websocket.ts +40 -0
  77. package/app/services/layout.ts +88 -0
  78. package/app/services/port.ts +195 -0
  79. package/app/services/storage/{local.js → local.ts} +7 -20
  80. package/app/services/storage/{memory.js → memory.ts} +6 -21
  81. package/app/services/{storage.js → storage.ts} +9 -20
  82. package/app/styles/base.scss +4 -2
  83. package/app/styles/colors.scss +33 -31
  84. package/app/styles/component_tree.scss +56 -51
  85. package/app/styles/dropdown.scss +2 -2
  86. package/app/styles/ember-table.scss +3 -3
  87. package/app/styles/mixin.scss +26 -26
  88. package/app/styles/object_inspector.scss +22 -21
  89. package/app/styles/utils.scss +408 -122
  90. package/app/templates/application.hbs +11 -11
  91. package/app/templates/component-tree.hbs +1 -1
  92. package/app/templates/deprecations.hbs +2 -3
  93. package/app/templates/info.hbs +10 -10
  94. package/app/templates/promise-tree.hbs +1 -1
  95. package/app/templates/render-tree.hbs +1 -1
  96. package/app/templates/route-tree.hbs +1 -1
  97. package/app/utils/escape-reg-exp.ts +3 -2
  98. package/app/utils/nullish.ts +7 -0
  99. package/app/utils/parse-text.ts +4 -5
  100. package/app/utils/truncate.js +0 -1
  101. package/config/ember-cli-update.json +5 -3
  102. package/config/ember-try.js +117 -72
  103. package/config/environment.js +1 -1
  104. package/config/optional-features.json +2 -1
  105. package/dist/bookmarklet/load_inspector.js +30 -11
  106. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  107. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  108. package/dist/bookmarklet/panes-3-16-0/assets/chunk.524.c8707b06d2f496a0d15d.js +40 -0
  109. package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.6d68f76dc5c8ba2b48a8.js +42 -0
  110. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +150 -155
  111. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +486 -590
  112. package/dist/bookmarklet/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  113. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  114. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  115. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  116. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  117. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  118. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  119. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  120. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  121. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  122. package/dist/bookmarklet/panes-3-16-0/assets/vendor.css +147 -148
  123. package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +5153 -5980
  124. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +250 -268
  125. package/dist/bookmarklet/panes-3-16-0/index.html +3 -4
  126. package/dist/chrome/background.js +26 -21
  127. package/dist/chrome/boot.js +1 -1
  128. package/dist/chrome/content-script.js +11 -11
  129. package/dist/chrome/devtools.js +12 -3
  130. package/dist/chrome/manifest.json +2 -2
  131. package/dist/chrome/options.js +17 -12
  132. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  133. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  134. package/dist/chrome/panes-3-16-0/assets/chunk.524.c8707b06d2f496a0d15d.js +40 -0
  135. package/dist/chrome/panes-3-16-0/assets/chunk.582.6d68f76dc5c8ba2b48a8.js +42 -0
  136. package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +150 -155
  137. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +486 -590
  138. package/dist/chrome/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  139. package/dist/chrome/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  140. package/dist/chrome/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  141. package/dist/chrome/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  142. package/dist/chrome/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  143. package/dist/chrome/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  144. package/dist/chrome/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  145. package/dist/chrome/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  146. package/dist/chrome/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  147. package/dist/chrome/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  148. package/dist/chrome/panes-3-16-0/assets/vendor.css +147 -148
  149. package/dist/chrome/panes-3-16-0/assets/vendor.js +5153 -5980
  150. package/dist/chrome/panes-3-16-0/ember_debug.js +250 -268
  151. package/dist/chrome/panes-3-16-0/index.html +3 -4
  152. package/dist/chrome/scripts/in-page-script.js +19 -13
  153. package/dist/firefox/background.js +26 -21
  154. package/dist/firefox/boot.js +1 -1
  155. package/dist/firefox/content-script.js +11 -11
  156. package/dist/firefox/devtools.js +12 -3
  157. package/dist/firefox/manifest.json +2 -2
  158. package/dist/firefox/options.js +17 -12
  159. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  160. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  161. package/dist/firefox/panes-3-16-0/assets/chunk.524.c8707b06d2f496a0d15d.js +40 -0
  162. package/dist/firefox/panes-3-16-0/assets/chunk.582.6d68f76dc5c8ba2b48a8.js +42 -0
  163. package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +150 -155
  164. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +486 -590
  165. package/dist/firefox/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  166. package/dist/firefox/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  167. package/dist/firefox/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  168. package/dist/firefox/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  169. package/dist/firefox/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  170. package/dist/firefox/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  171. package/dist/firefox/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  172. package/dist/firefox/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  173. package/dist/firefox/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  174. package/dist/firefox/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  175. package/dist/firefox/panes-3-16-0/assets/vendor.css +147 -148
  176. package/dist/firefox/panes-3-16-0/assets/vendor.js +5153 -5980
  177. package/dist/firefox/panes-3-16-0/ember_debug.js +250 -268
  178. package/dist/firefox/panes-3-16-0/index.html +3 -4
  179. package/dist/firefox/scripts/in-page-script.js +19 -13
  180. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  181. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  182. package/dist/websocket/assets/chunk.524.c8707b06d2f496a0d15d.js +40 -0
  183. package/dist/websocket/assets/chunk.582.6d68f76dc5c8ba2b48a8.js +42 -0
  184. package/dist/websocket/assets/ember-inspector.css +150 -155
  185. package/dist/websocket/assets/ember-inspector.js +486 -590
  186. package/dist/websocket/assets/svg/ellipsis.svg +3 -3
  187. package/dist/websocket/assets/svg/nav-bug.svg +1 -1
  188. package/dist/websocket/assets/svg/nav-components.svg +2 -2
  189. package/dist/websocket/assets/svg/nav-container.svg +1 -1
  190. package/dist/websocket/assets/svg/nav-data.svg +1 -1
  191. package/dist/websocket/assets/svg/nav-deprecations.svg +3 -3
  192. package/dist/websocket/assets/svg/nav-info.svg +3 -3
  193. package/dist/websocket/assets/svg/nav-promises.svg +2 -2
  194. package/dist/websocket/assets/svg/nav-render-performance.svg +2 -2
  195. package/dist/websocket/assets/svg/nav-route-tree.svg +7 -7
  196. package/dist/websocket/assets/vendor.css +147 -148
  197. package/dist/websocket/assets/vendor.js +5153 -5980
  198. package/dist/websocket/ember_debug.js +250 -268
  199. package/dist/websocket/index.html +3 -4
  200. package/ember-cli-build.js +11 -11
  201. package/ember_debug/adapters/basic.js +2 -1
  202. package/ember_debug/adapters/bookmarklet.js +1 -0
  203. package/ember_debug/adapters/firefox.js +3 -3
  204. package/ember_debug/adapters/web-extension.js +2 -1
  205. package/ember_debug/data-debug.js +5 -6
  206. package/ember_debug/deprecation-debug.js +8 -8
  207. package/ember_debug/general-debug.js +1 -1
  208. package/ember_debug/libs/capture-render-tree.js +0 -1
  209. package/ember_debug/libs/promise-assembler.js +1 -0
  210. package/ember_debug/libs/render-tree.js +13 -12
  211. package/ember_debug/libs/source-map.js +5 -4
  212. package/ember_debug/libs/view-inspection.js +12 -12
  213. package/ember_debug/main.js +1 -1
  214. package/ember_debug/models/profile-manager.js +2 -1
  215. package/ember_debug/object-inspector.js +19 -18
  216. package/ember_debug/port.js +1 -0
  217. package/ember_debug/promise-debug.js +1 -1
  218. package/ember_debug/route-debug.js +3 -2
  219. package/ember_debug/services/session.js +1 -1
  220. package/ember_debug/utils/classify.js +1 -1
  221. package/ember_debug/utils/ember/debug.js +2 -0
  222. package/ember_debug/utils/ember/loader.js +2 -2
  223. package/ember_debug/utils/ember/runloop.js +2 -0
  224. package/ember_debug/utils/ember-object-names.js +2 -2
  225. package/ember_debug/utils/ember.js +9 -3
  226. package/ember_debug/utils/evented.js +1 -1
  227. package/ember_debug/utils/get-object-name.js +2 -2
  228. package/ember_debug/utils/rsvp.js +1 -0
  229. package/ember_debug/utils/type-check.js +5 -1
  230. package/ember_debug/vendor/startup-wrapper.js +4 -1
  231. package/ember_debug/view-debug.js +3 -2
  232. package/eslint.config.mjs +172 -0
  233. package/gulpfile.js +1 -1
  234. package/lib/ui/addon/components/drag-handle.hbs +4 -4
  235. package/lib/ui/addon/components/drag-handle.js +3 -1
  236. package/lib/ui/addon/components/empty-message.hbs +1 -1
  237. package/lib/ui/addon/components/error-page.hbs +3 -3
  238. package/lib/ui/addon/components/resizable-column.js +1 -1
  239. package/lib/ui/addon/components/toolbar-clear-button.hbs +1 -1
  240. package/lib/ui/addon/components/toolbar-reload-button.hbs +1 -1
  241. package/lib/ui/addon/components/toolbar-search-field.hbs +2 -2
  242. package/lib/ui/addon/styles/_disclosure-triangle.scss +3 -1
  243. package/lib/ui/addon/styles/_drag-handle.scss +7 -7
  244. package/lib/ui/addon/styles/_empty-message.scss +1 -1
  245. package/lib/ui/addon/styles/_error-page.scss +8 -7
  246. package/lib/ui/addon/styles/_list.scss +46 -45
  247. package/lib/ui/addon/styles/_nav.scss +29 -27
  248. package/lib/ui/addon/styles/_object-inspector-toggle.scss +5 -5
  249. package/lib/ui/addon/styles/_pill.scss +4 -4
  250. package/lib/ui/addon/styles/_send-to-console.scss +1 -1
  251. package/lib/ui/addon/styles/_split.scss +17 -20
  252. package/lib/ui/addon/styles/addon.scss +13 -13
  253. package/lib/ui/addon/styles/toolbar/_checkbox.scss +5 -5
  254. package/lib/ui/addon/styles/toolbar/_icon-button.scss +44 -25
  255. package/lib/ui/addon/styles/toolbar/_index.scss +6 -5
  256. package/lib/ui/addon/styles/toolbar/_radio.scss +10 -10
  257. package/lib/ui/addon/styles/toolbar/_search.scss +5 -3
  258. package/package.json +85 -86
  259. package/public/assets/svg/ellipsis.svg +3 -3
  260. package/public/assets/svg/nav-bug.svg +1 -1
  261. package/public/assets/svg/nav-components.svg +2 -2
  262. package/public/assets/svg/nav-container.svg +1 -1
  263. package/public/assets/svg/nav-data.svg +1 -1
  264. package/public/assets/svg/nav-deprecations.svg +3 -3
  265. package/public/assets/svg/nav-info.svg +3 -3
  266. package/public/assets/svg/nav-promises.svg +2 -2
  267. package/public/assets/svg/nav-render-performance.svg +2 -2
  268. package/public/assets/svg/nav-route-tree.svg +7 -7
  269. package/scripts/download-panes.js +1 -1
  270. package/skeletons/bookmarklet/load_inspector.js +30 -11
  271. package/skeletons/web-extension/background.js +26 -21
  272. package/skeletons/web-extension/boot.js +1 -1
  273. package/skeletons/web-extension/content-script.js +11 -11
  274. package/skeletons/web-extension/devtools.js +12 -3
  275. package/skeletons/web-extension/manifest.json +2 -2
  276. package/skeletons/web-extension/options.js +17 -12
  277. package/skeletons/web-extension/scripts/in-page-script.js +19 -13
  278. package/testem.js +0 -1
  279. package/tests/acceptance/app-picker-test.js +4 -4
  280. package/tests/acceptance/component-tree-test.js +43 -57
  281. package/tests/acceptance/container-test.js +0 -2
  282. package/tests/acceptance/data-test.js +8 -10
  283. package/tests/acceptance/deprecation-test.js +8 -12
  284. package/tests/acceptance/info-test.js +2 -2
  285. package/tests/acceptance/object-inspector-test.js +62 -110
  286. package/tests/acceptance/promise-test.js +1 -11
  287. package/tests/acceptance/render-tree-test.js +2 -2
  288. package/tests/acceptance/route-tree-test.js +12 -14
  289. package/tests/acceptance/whats-new-test.js +3 -3
  290. package/tests/ember_debug/container-debug-test.js +4 -4
  291. package/tests/ember_debug/deprecation-debug-test.js +8 -5
  292. package/tests/ember_debug/ember-debug-test.js +1 -4
  293. package/tests/ember_debug/object-inspector-test.js +44 -44
  294. package/tests/ember_debug/profile-manager-test.js +140 -165
  295. package/tests/ember_debug/profile-node-test.js +3 -3
  296. package/tests/ember_debug/promise-assembler-test.js +12 -9
  297. package/tests/ember_debug/promise-debug-test.js +5 -6
  298. package/tests/ember_debug/route-debug-test.js +8 -7
  299. package/tests/ember_debug/view-debug-test.js +179 -181
  300. package/tests/helpers/{index.js → index.ts} +6 -5
  301. package/tests/helpers/setup-ember-debug-test.js +14 -0
  302. package/tests/integration/injection-test.js +12 -13
  303. package/tests/test-adapter.js +15 -15
  304. package/tests/test-helper.js +6 -1
  305. package/tests/unit/check-current-route-test.js +0 -4
  306. package/tests/unit/resizable-columns-test.js +53 -51
  307. package/tests/unit/utils/parse-text-test.js +3 -3
  308. package/tests/unit/utils/search-match-test.js +5 -5
  309. package/tests/unit/utils/type-check-test.js +22 -0
  310. package/tsconfig.json +3 -1
  311. package/types/ember-inspector/index.d.ts +2 -1
  312. package/types/global.d.ts +1 -7
  313. package/.editorconfig +0 -19
  314. package/.ember-cli +0 -15
  315. package/.eslintignore +0 -33
  316. package/.eslintrc.js +0 -86
  317. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
  318. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  319. package/.github/dependabot.yml +0 -14
  320. package/.github/pull_request_template.md +0 -4
  321. package/.github/workflows/build.yml +0 -339
  322. package/.github/workflows/plan-release.yml +0 -83
  323. package/.github/workflows/publish.yml +0 -60
  324. package/.prettierignore +0 -25
  325. package/.prettierrc.js +0 -14
  326. package/.release-plan.json +0 -17
  327. package/.stylelintrc.js +0 -3
  328. package/.template-lintrc.js +0 -12
  329. package/.tool-versions +0 -2
  330. package/.watchmanconfig +0 -3
  331. package/app/components/.gitkeep +0 -0
  332. package/app/components/list-content.js +0 -130
  333. package/app/controllers/.gitkeep +0 -0
  334. package/app/controllers/promise-tree.js +0 -130
  335. package/app/helpers/.gitkeep +0 -0
  336. package/app/libs/promise-assembler.js +0 -169
  337. package/app/models/.gitkeep +0 -0
  338. package/app/routes/.gitkeep +0 -0
  339. package/app/routes/model-types.js +0 -47
  340. package/app/routes/promise-tree.js +0 -48
  341. package/app/routes/records.js +0 -55
  342. package/app/routes/render-tree.js +0 -66
  343. package/app/services/adapters/websocket.js +0 -31
  344. package/app/services/layout.js +0 -39
  345. package/app/services/port.js +0 -90
  346. package/dist/bookmarklet/panes-3-16-0/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  347. package/dist/bookmarklet/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  348. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  349. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  350. package/dist/chrome/panes-3-16-0/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  351. package/dist/chrome/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  352. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  353. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  354. package/dist/firefox/panes-3-16-0/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  355. package/dist/firefox/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  356. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  357. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  358. package/dist/websocket/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  359. package/dist/websocket/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  360. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  361. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  362. package/ember_debug/.eslintrc.js +0 -13
  363. package/tests/helpers/trigger-port.js +0 -6
  364. package/tests/unit/.gitkeep +0 -0
  365. /package/app/{app.js → app.ts} +0 -0
  366. /package/app/controllers/{info.js → info.ts} +0 -0
  367. /package/app/services/adapters/{firefox.js → firefox.ts} +0 -0
@@ -1,17 +1,24 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
2
+ // @ts-expect-error This does not seem to be typed
1
3
  import { observes } from '@ember-decorators/object';
2
- import { or, equal, not } from '@ember/object/computed';
3
4
  import { once } from '@ember/runloop';
4
- import { typeOf, isEmpty } from '@ember/utils';
5
- // eslint-disable-next-line ember/no-observers
5
+ import { typeOf } from '@ember/utils';
6
+
7
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
6
8
  import EmberObject, { computed } from '@ember/object';
7
- import escapeRegExp from 'ember-inspector/utils/escape-reg-exp';
9
+ import { tracked } from '@glimmer/tracking';
10
+
11
+ import { TrackedArray } from 'tracked-built-ins';
12
+
13
+ import escapeRegExp from '../utils/escape-reg-exp';
14
+ import { isNullish } from '../utils/nullish';
8
15
 
9
16
  const dateComputed = function () {
10
17
  return computed({
11
18
  get() {
12
19
  return null;
13
20
  },
14
- set(key, date) {
21
+ set(_key, date: Date | number | string) {
15
22
  if (typeOf(date) === 'date') {
16
23
  return date;
17
24
  } else if (typeof date === 'number' || typeof date === 'string') {
@@ -22,61 +29,63 @@ const dateComputed = function () {
22
29
  });
23
30
  };
24
31
 
25
- export default class Promise extends EmberObject {
26
- @dateComputed()
27
- createdAt;
28
-
29
- @dateComputed()
30
- settledAt;
31
-
32
- parent = null;
33
-
34
- @computed('parent.level')
35
- get level() {
36
- let parent = this.parent;
32
+ export default class PromiseModel extends EmberObject {
33
+ children = new TrackedArray<PromiseModel>([]);
34
+ declare label?: string;
35
+ declare guid: string;
36
+ declare state: string;
37
+ // @ts-expect-error TODO: figure out types for this
38
+ @dateComputed() createdAt;
39
+ // @ts-expect-error TODO: figure out types for this
40
+ @dateComputed() settledAt;
41
+
42
+ @tracked branchLabel = '';
43
+ @tracked isExpanded = false;
44
+ @tracked isManuallyExpanded?: boolean = undefined;
45
+ @tracked parent: PromiseModel | null = null;
46
+
47
+ get level(): number {
48
+ const parent = this.parent;
37
49
  if (!parent) {
38
50
  return 0;
39
51
  }
40
- return parent.get('level') + 1;
52
+ return parent.level + 1;
41
53
  }
42
54
 
43
- @or('isFulfilled', 'isRejected')
44
- isSettled;
45
-
46
- @equal('state', 'fulfilled')
47
- isFulfilled;
55
+ get isSettled() {
56
+ return this.isFulfilled || this.isRejected;
57
+ }
48
58
 
49
- @equal('state', 'rejected')
50
- isRejected;
59
+ get isFulfilled() {
60
+ return this.state === 'fulfilled';
61
+ }
51
62
 
52
- @not('isSettled')
53
- isPending;
63
+ get isRejected() {
64
+ return this.state === 'rejected';
65
+ }
54
66
 
55
- get children() {
56
- return [];
67
+ get isPending() {
68
+ return !this.isSettled;
57
69
  }
58
70
 
59
- @computed('isPending', 'children.@each.pendingBranch')
60
71
  get pendingBranch() {
61
72
  return this.recursiveState('isPending', 'pendingBranch');
62
73
  }
63
74
 
64
- @computed('isRejected', 'children.@each.rejectedBranch')
65
75
  get rejectedBranch() {
66
76
  return this.recursiveState('isRejected', 'rejectedBranch');
67
77
  }
68
78
 
69
- @computed('isFulfilled', 'children.@each.fulfilledBranch')
70
79
  get fulfilledBranch() {
71
80
  return this.recursiveState('isFulfilled', 'fulfilledBranch');
72
81
  }
73
82
 
74
- recursiveState(prop, cp) {
75
- if (this.get(prop)) {
83
+ recursiveState(prop: keyof PromiseModel, cp: keyof PromiseModel) {
84
+ if (this[prop]) {
76
85
  return true;
77
86
  }
78
- for (let i = 0; i < this.get('children.length'); i++) {
79
- if (this.children.objectAt(i).get(cp)) {
87
+ for (let i = 0; i < this.children.length; i++) {
88
+ if (this.children.at(i)?.[cp]) {
80
89
  return true;
81
90
  }
82
91
  }
@@ -92,9 +101,9 @@ export default class Promise extends EmberObject {
92
101
  return;
93
102
  }
94
103
  if (
95
- (this.pendingBranch && !this.get('parent.pendingBranch')) ||
96
- (this.fulfilledBranch && !this.get('parent.fulfilledBranch')) ||
97
- (this.rejectedBranch && !this.get('parent.rejectedBranch'))
104
+ (this.pendingBranch && !this.parent.pendingBranch) ||
105
+ (this.fulfilledBranch && !this.parent.fulfilledBranch) ||
106
+ (this.rejectedBranch && !this.parent.rejectedBranch)
98
107
  ) {
99
108
  this.parent.notifyPropertyChange('fulfilledBranch');
100
109
  this.parent.notifyPropertyChange('rejectedBranch');
@@ -108,31 +117,29 @@ export default class Promise extends EmberObject {
108
117
  this.addBranchLabel(this.label, true);
109
118
  }
110
119
 
111
- addBranchLabel(label, replace) {
112
- if (isEmpty(label)) {
120
+ addBranchLabel(label?: string, replace?: boolean) {
121
+ if (isNullish(label)) {
113
122
  return;
114
123
  }
115
124
  if (replace) {
116
- this.set('branchLabel', label);
125
+ this.branchLabel = label;
117
126
  } else {
118
- this.set('branchLabel', `${this.branchLabel} ${label}`);
127
+ this.branchLabel = `${this.branchLabel} ${label}`;
119
128
  }
120
129
 
121
- let parent = this.parent;
130
+ const parent = this.parent;
122
131
  if (parent) {
123
132
  parent.addBranchLabel(label);
124
133
  }
125
134
  }
126
135
 
127
- branchLabel = '';
128
-
129
- matches(val) {
136
+ matches(val: string) {
130
137
  return !!this.branchLabel
131
138
  .toLowerCase()
132
139
  .match(new RegExp(`.*${escapeRegExp(val.toLowerCase())}.*`));
133
140
  }
134
141
 
135
- matchesExactly(val) {
142
+ matchesExactly(val: string) {
136
143
  return !!(this.label || '')
137
144
  .toLowerCase()
138
145
  .match(new RegExp(`.*${escapeRegExp(val.toLowerCase())}.*`));
@@ -140,21 +147,18 @@ export default class Promise extends EmberObject {
140
147
 
141
148
  // EXPANDED / COLLAPSED PROMISES
142
149
 
143
- isExpanded = false;
144
-
145
- isManuallyExpanded = undefined;
146
-
147
150
  // eslint-disable-next-line ember/no-observers
148
151
  @observes('isPending', 'isFulfilled', 'isRejected', 'parent')
149
152
  stateOrParentChanged() {
150
- let parent = this.parent;
153
+ const parent = this.parent;
151
154
  if (parent) {
155
+ // eslint-disable-next-line ember/no-runloop
152
156
  once(parent, 'recalculateExpanded');
153
157
  }
154
158
  }
155
159
 
156
- _findTopParent() {
157
- let parent = this.parent;
160
+ _findTopParent(): PromiseModel {
161
+ const parent = this.parent;
158
162
  if (!parent) {
159
163
  return this;
160
164
  } else {
@@ -167,36 +171,35 @@ export default class Promise extends EmberObject {
167
171
  if (this.isManuallyExpanded !== undefined) {
168
172
  isExpanded = this.isManuallyExpanded;
169
173
  } else {
170
- let children = this._allChildren();
171
- for (let i = 0, l = children.length; i < l; i++) {
172
- let child = children[i];
173
- if (child.get('isRejected')) {
174
+ const children = this._allChildren();
175
+ for (let i = 0; i < children.length; i++) {
176
+ const child = children[i] as PromiseModel;
177
+ if (child.isRejected) {
174
178
  isExpanded = true;
175
179
  }
176
- if (child.get('isPending') && !child.get('parent.isPending')) {
180
+ if (child.isPending && !child.parent!.isPending) {
177
181
  isExpanded = true;
178
182
  }
179
183
  if (isExpanded) {
180
184
  break;
181
185
  }
182
186
  }
183
- let parents = this._allParents();
187
+ const parents = this._allParents();
184
188
  if (isExpanded) {
185
189
  parents.forEach((parent) => {
186
190
  parent.set('isExpanded', true);
187
191
  });
188
- } else if (this.get('parent.isExpanded')) {
192
+ } else if (this.parent?.isExpanded) {
189
193
  this.parent.recalculateExpanded();
190
194
  }
191
195
  }
192
- this.set('isExpanded', isExpanded);
196
+ this.isExpanded = isExpanded;
193
197
  return isExpanded;
194
198
  }
195
199
 
196
- @computed('parent.{isExpanded,isVisible}', 'parent')
197
- get isVisible() {
200
+ get isVisible(): boolean {
198
201
  if (this.parent) {
199
- return this.get('parent.isExpanded') && this.get('parent.isVisible');
202
+ return this.parent.isExpanded && this.parent.isVisible;
200
203
  }
201
204
  return true;
202
205
  }
@@ -204,13 +207,13 @@ export default class Promise extends EmberObject {
204
207
  _allChildren() {
205
208
  let children = [...this.children];
206
209
  children.forEach((item) => {
207
- children = [...children, item._allChildren()];
210
+ children = [...children, ...item._allChildren()];
208
211
  });
209
212
  return children;
210
213
  }
211
214
 
212
- _allParents() {
213
- let parent = this.parent;
215
+ _allParents(): Array<PromiseModel> {
216
+ const parent = this.parent;
214
217
  if (parent) {
215
218
  return [parent, ...parent._allParents()];
216
219
  } else {
@@ -19,7 +19,7 @@ Router.map(function () {
19
19
  { path: '/:type_id', resetNamespace: true },
20
20
  function () {
21
21
  this.route('records', { resetNamespace: true });
22
- }
22
+ },
23
23
  );
24
24
  });
25
25
  });
@@ -16,18 +16,16 @@ export default class AppDetectedRoute extends Route {
16
16
  * @return {Promise}
17
17
  */
18
18
  model() {
19
- let port = this.port;
20
-
21
19
  return new Promise((resolve) => {
22
20
  this.applicationBooted = ({ booted }) => {
23
21
  if (booted) {
24
- port.off('general:applicationBooted', this.applicationBooted);
22
+ this.port.off('general:applicationBooted', this.applicationBooted);
25
23
  this.applicationBooted = null;
26
24
  resolve();
27
25
  }
28
26
  };
29
- port.on('general:applicationBooted', this.applicationBooted);
30
- port.send('general:applicationBooted');
27
+ this.port.on('general:applicationBooted', this.applicationBooted);
28
+ this.port.send('general:applicationBooted');
31
29
  });
32
30
  }
33
31
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable ember/no-controller-access-in-routes */
1
2
  import { inject as service } from '@ember/service';
2
3
  import { action, set } from '@ember/object';
3
4
  import Route from '@ember/routing/route';
@@ -54,7 +55,6 @@ export default class ApplicationRoute extends Route {
54
55
  NativeArray.apply(details);
55
56
  details.forEach(arrayize);
56
57
 
57
- // eslint-disable-next-line ember/no-controller-access-in-routes
58
58
  let controller = this.controller;
59
59
 
60
60
  if (options.parentObject) {
@@ -63,23 +63,17 @@ export default class ApplicationRoute extends Route {
63
63
  controller.activateMixinDetails(name, objectId, details, errors);
64
64
  }
65
65
 
66
- // eslint-disable-next-line ember/no-controller-access-in-routes
67
66
  this.controller.showInspector();
68
67
  }
69
68
 
70
69
  setDeprecationCount(message) {
71
- // eslint-disable-next-line ember/no-controller-access-in-routes
72
70
  this.controller.set('deprecationCount', message.count);
73
71
  }
74
72
 
75
- // eslint-enable ember/no-controller-access-in-routes
76
-
77
73
  updateProperty(options) {
78
- if (this.get('controller.mixinDetails.mixins')) {
79
- const detail = this.get('controller.mixinDetails.mixins').objectAt(
80
- options.mixinIndex
81
- );
82
- let property = detail.properties.findBy('name', options.property);
74
+ if (this.controller.mixinDetails?.mixins) {
75
+ const detail = this.controller.mixinDetails.mixins.at(options.mixinIndex);
76
+ let property = detail.properties.find((x) => x.name === options.property);
83
77
  if (!property) return;
84
78
  set(property, 'value', options.value);
85
79
  if (options.dependentKeys) {
@@ -89,7 +83,8 @@ export default class ApplicationRoute extends Route {
89
83
  }
90
84
 
91
85
  updateErrors(options) {
92
- let mixinDetails = this.get('controller.mixinDetails');
86
+ let mixinDetails = this.controller.mixinDetails;
87
+
93
88
  if (mixinDetails) {
94
89
  if (mixinDetails.objectId === options.objectId) {
95
90
  set(mixinDetails, 'errors', options.errors);
@@ -98,7 +93,6 @@ export default class ApplicationRoute extends Route {
98
93
  }
99
94
 
100
95
  droppedObject(message) {
101
- // eslint-disable-next-line ember/no-controller-access-in-routes
102
96
  this.controller.droppedObject(message.objectId);
103
97
  }
104
98
 
@@ -1,6 +1,6 @@
1
1
  import { inject as service } from '@ember/service';
2
2
  import { Promise } from 'rsvp';
3
- import { action, setProperties } from '@ember/object';
3
+ import { setProperties } from '@ember/object';
4
4
  import TabRoute from 'ember-inspector/routes/tab';
5
5
 
6
6
  export default class DeprecationsRoute extends TabRoute {
@@ -32,30 +32,21 @@ export default class DeprecationsRoute extends TabRoute {
32
32
  this.port.off(
33
33
  'deprecation:deprecationsAdded',
34
34
  this,
35
- this.deprecationsAdded
35
+ this.deprecationsAdded,
36
36
  );
37
37
  }
38
38
 
39
39
  deprecationsAdded(message) {
40
- // eslint-disable-next-line ember/no-controller-access-in-routes
41
- let { deprecations } = this.controller;
42
-
43
40
  message.deprecations.forEach((item) => {
44
- let record = deprecations.findBy('id', item.id);
41
+ let record = this.controller.deprecations.find(
42
+ (deprecation) => deprecation.id === item.id,
43
+ );
44
+
45
45
  if (record) {
46
46
  setProperties(record, item);
47
47
  } else {
48
- deprecations.pushObject(item);
48
+ this.controller.deprecations.push(item);
49
49
  }
50
50
  });
51
51
  }
52
-
53
- @action
54
- clear() {
55
- // eslint-disable-next-line ember/no-controller-access-in-routes
56
- let { deprecations } = this.controller;
57
-
58
- this.port.send('deprecation:clear');
59
- deprecations.clear();
60
- }
61
52
  }
@@ -1,4 +1,5 @@
1
1
  import { inject as service } from '@ember/service';
2
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
2
3
  import { readOnly } from '@ember/object/computed';
3
4
  import Route from '@ember/routing/route';
4
5
  import RSVP from 'rsvp';
@@ -54,7 +55,7 @@ export default class LaunchRoute extends Route {
54
55
  },
55
56
  function () {
56
57
  resolve();
57
- }
58
+ },
58
59
  );
59
60
  });
60
61
  } else {
@@ -1,4 +1,5 @@
1
1
  import { inject as service } from '@ember/service';
2
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
2
3
  import { readOnly } from '@ember/object/computed';
3
4
  import { Promise } from 'rsvp';
4
5
  import TabRoute from 'ember-inspector/routes/tab';
@@ -14,7 +15,7 @@ export default class LibrariesRoute extends TabRoute {
14
15
  const port = this.port;
15
16
  return new Promise((resolve) => {
16
17
  port.one('general:libraries', (message) => {
17
- message.libraries.insertAt(0, {
18
+ message.libraries.splice(0, 0, {
18
19
  name: 'Ember Inspector',
19
20
  version,
20
21
  });
@@ -7,9 +7,8 @@ export default class ModelTypeRoute extends Route {
7
7
 
8
8
  model(params) {
9
9
  return new Promise((resolve) => {
10
- const type = this.modelFor('model-types').findBy(
11
- 'name',
12
- decodeURIComponent(params.type_id)
10
+ const type = this.modelFor('model-types').find(
11
+ (x) => x.name === decodeURIComponent(params.type_id),
13
12
  );
14
13
  if (type) {
15
14
  resolve(type);
@@ -0,0 +1,57 @@
1
+ import type Controller from '@ember/controller';
2
+ import { inject as service } from '@ember/service';
3
+ import { set } from '@ember/object';
4
+ import type Transition from '@ember/routing/transition';
5
+
6
+ import { TrackedArray } from 'tracked-built-ins';
7
+
8
+ import type PortService from '../services/port';
9
+ import TabRoute from '../routes/tab';
10
+ import type { Message, ModelType } from '../services/port';
11
+
12
+ export default class ModelTypesRoute extends TabRoute {
13
+ @service declare port: PortService;
14
+
15
+ model() {
16
+ return new Promise<TrackedArray<ModelType>>((resolve) => {
17
+ this.port.one('data:modelTypesAdded', function (message: Message) {
18
+ resolve(new TrackedArray(message.modelTypes));
19
+ });
20
+ this.port.send('data:getModelTypes');
21
+ });
22
+ }
23
+
24
+ setupController(
25
+ controller: Controller,
26
+ model: unknown,
27
+ transition: Transition,
28
+ ) {
29
+ super.setupController(controller, model, transition);
30
+
31
+ this.port.on('data:modelTypesAdded', this, this.addModelTypes);
32
+ this.port.on('data:modelTypesUpdated', this, this.updateModelTypes);
33
+ }
34
+
35
+ deactivate() {
36
+ this.port.off('data:modelTypesAdded', this, this.addModelTypes);
37
+ this.port.off('data:modelTypesUpdated', this, this.updateModelTypes);
38
+ this.port.send('data:releaseModelTypes');
39
+ }
40
+
41
+ get _currentModel(): Array<ModelType> {
42
+ return this.modelFor(this.routeName) as Array<ModelType>;
43
+ }
44
+
45
+ addModelTypes = (message: Message) => {
46
+ this._currentModel.push(...message.modelTypes);
47
+ };
48
+
49
+ updateModelTypes = (message: Message) => {
50
+ message.modelTypes.forEach((modelType) => {
51
+ const currentType = this._currentModel.find(
52
+ (x) => x.objectId === modelType.objectId,
53
+ );
54
+ set(currentType as ModelType, 'count', modelType.count);
55
+ });
56
+ };
57
+ }
@@ -0,0 +1,63 @@
1
+ import { inject as service } from '@ember/service';
2
+ import { Promise } from 'rsvp';
3
+ import type Transition from '@ember/routing/transition';
4
+
5
+ import PromiseAssembler from '../libs/promise-assembler';
6
+ import type PortService from '../services/port';
7
+ import TabRoute from '../routes/tab';
8
+ import type PromiseTreeController from '../controllers/promise-tree';
9
+
10
+ export default class PromiseTreeRoute extends TabRoute {
11
+ @service declare port: PortService;
12
+
13
+ assembler: PromiseAssembler;
14
+ declare controller: PromiseTreeController;
15
+
16
+ constructor() {
17
+ // eslint-disable-next-line prefer-rest-params
18
+ super(...arguments);
19
+
20
+ this.assembler = PromiseAssembler.create({
21
+ port: this.port,
22
+ });
23
+ }
24
+
25
+ model() {
26
+ // block rendering until first batch arrives
27
+ // Helps prevent flashing of "please refresh the page"
28
+ return new Promise((resolve) => {
29
+ this.assembler.one('firstMessageReceived', () => {
30
+ resolve(this.assembler.topSort);
31
+ });
32
+ this.assembler.start();
33
+ });
34
+ }
35
+
36
+ setupController(
37
+ controller: PromiseTreeController,
38
+ model: unknown,
39
+ transition: Transition,
40
+ ) {
41
+ super.setupController(controller, model, transition);
42
+
43
+ this.port.on(
44
+ 'promise:instrumentWithStack',
45
+ this,
46
+ this.setInstrumentWithStack,
47
+ );
48
+ this.port.send('promise:getInstrumentWithStack');
49
+ }
50
+
51
+ deactivate() {
52
+ this.assembler.stop();
53
+ this.port.off(
54
+ 'promise:instrumentWithStack',
55
+ this,
56
+ this.setInstrumentWithStack,
57
+ );
58
+ }
59
+
60
+ setInstrumentWithStack = (message: { instrumentWithStack: boolean }) => {
61
+ this.controller.instrumentWithStack = message.instrumentWithStack;
62
+ };
63
+ }
@@ -0,0 +1,78 @@
1
+ import type Controller from '@ember/controller';
2
+ import type Transition from '@ember/routing/transition';
3
+ import { inject as service } from '@ember/service';
4
+ import { set } from '@ember/object';
5
+
6
+ import { TrackedArray } from 'tracked-built-ins';
7
+
8
+ import type PortService from '../services/port';
9
+ import type { Message, ModelType, RecordType } from '../services/port';
10
+ import TabRoute from '../routes/tab';
11
+ // @ts-expect-error TODO: not yet typed
12
+ import type RecordsController from '../controllers/records';
13
+
14
+ export default class RecordsRoute extends TabRoute {
15
+ @service declare port: PortService;
16
+
17
+ declare controller: RecordsController;
18
+
19
+ model() {
20
+ return new TrackedArray([]);
21
+ }
22
+
23
+ setupController(
24
+ controller: Controller,
25
+ model: unknown,
26
+ transition: Transition,
27
+ ) {
28
+ super.setupController(controller, model, transition);
29
+
30
+ const type = this.modelFor('model_type') as ModelType;
31
+
32
+ // @ts-expect-error TODO this should be resolved when we type the controller
33
+ controller.modelType = type;
34
+
35
+ this.port.on('data:recordsAdded', this, this.addRecords);
36
+ this.port.on('data:recordsUpdated', this, this.updateRecords);
37
+ this.port.on('data:recordsRemoved', this, this.removeRecords);
38
+ this.port.one('data:filters', this, (message: Message) => {
39
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
40
+ this.controller.filters = new TrackedArray(message.filters);
41
+ });
42
+ this.port.send('data:getFilters');
43
+ this.port.send('data:getRecords', { objectId: type.objectId });
44
+ }
45
+
46
+ deactivate() {
47
+ this.port.off('data:recordsAdded', this, this.addRecords);
48
+ this.port.off('data:recordsUpdated', this, this.updateRecords);
49
+ this.port.off('data:recordsRemoved', this, this.removeRecords);
50
+ this.port.send('data:releaseRecords');
51
+ }
52
+
53
+ get _currentModel(): Array<RecordType> {
54
+ return this.modelFor(this.routeName) as Array<RecordType>;
55
+ }
56
+
57
+ addRecords = (message: Message) => {
58
+ this._currentModel.push(...message.records);
59
+ };
60
+
61
+ removeRecords = (message: Message) => {
62
+ this._currentModel.splice(message.index, message.count);
63
+ };
64
+
65
+ updateRecords = (message: Message) => {
66
+ message.records.forEach((record) => {
67
+ const currentRecord = this._currentModel.find(
68
+ (x) => x.objectId === record.objectId,
69
+ );
70
+ if (currentRecord) {
71
+ set(currentRecord, 'columnValues', record.columnValues);
72
+ set(currentRecord, 'filterValues', record.filterValues);
73
+ set(currentRecord, 'searchIndex', record.searchIndex);
74
+ set(currentRecord, 'color', record.color);
75
+ }
76
+ });
77
+ };
78
+ }