ember-inspector 4.13.1-alpha.2025.6.19 → 4.13.1-alpha.2025.6.20

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 (32) hide show
  1. package/dist/bookmarklet/panes-3-16-0/assets/{chunk.524.7b97a9e9caaec2bf8dd7.js → chunk.524.f5503c59582d162b92bb.js} +4 -4
  2. package/dist/{firefox/panes-3-16-0/assets/chunk.582.fb8575406d3fbe1d4a24.js → bookmarklet/panes-3-16-0/assets/chunk.582.4c00a70d81949891d2b3.js} +5 -5
  3. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +2 -2
  4. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +62 -47
  5. package/dist/bookmarklet/panes-3-16-0/index.html +2 -2
  6. package/dist/chrome/manifest.json +2 -2
  7. package/dist/{firefox/panes-3-16-0/assets/chunk.524.7b97a9e9caaec2bf8dd7.js → chrome/panes-3-16-0/assets/chunk.524.f5503c59582d162b92bb.js} +4 -4
  8. package/dist/{bookmarklet/panes-3-16-0/assets/chunk.582.fb8575406d3fbe1d4a24.js → chrome/panes-3-16-0/assets/chunk.582.4c00a70d81949891d2b3.js} +5 -5
  9. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +2 -2
  10. package/dist/chrome/panes-3-16-0/ember_debug.js +62 -47
  11. package/dist/chrome/panes-3-16-0/index.html +2 -2
  12. package/dist/firefox/manifest.json +2 -2
  13. package/dist/{chrome/panes-3-16-0/assets/chunk.524.7b97a9e9caaec2bf8dd7.js → firefox/panes-3-16-0/assets/chunk.524.f5503c59582d162b92bb.js} +4 -4
  14. package/dist/{websocket/assets/chunk.582.fb8575406d3fbe1d4a24.js → firefox/panes-3-16-0/assets/chunk.582.4c00a70d81949891d2b3.js} +5 -5
  15. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +2 -2
  16. package/dist/firefox/panes-3-16-0/ember_debug.js +62 -47
  17. package/dist/firefox/panes-3-16-0/index.html +2 -2
  18. package/dist/websocket/assets/{chunk.524.7b97a9e9caaec2bf8dd7.js → chunk.524.f5503c59582d162b92bb.js} +4 -4
  19. package/dist/{chrome/panes-3-16-0/assets/chunk.582.fb8575406d3fbe1d4a24.js → websocket/assets/chunk.582.4c00a70d81949891d2b3.js} +5 -5
  20. package/dist/websocket/assets/ember-inspector.js +2 -2
  21. package/dist/websocket/ember_debug.js +62 -47
  22. package/dist/websocket/index.html +2 -2
  23. package/ember_debug/libs/render-tree.js +16 -16
  24. package/ember_debug/libs/view-inspection.js +10 -2
  25. package/ember_debug/object-inspector.js +15 -30
  26. package/ember_debug/utils/ember-object-names.js +4 -5
  27. package/ember_debug/utils/ember.js +20 -0
  28. package/ember_debug/utils/type-check.js +2 -2
  29. package/ember_debug/view-debug.js +5 -0
  30. package/package.json +1 -1
  31. package/skeletons/web-extension/manifest.json +2 -2
  32. package/tests/ember_debug/view-debug-test.js +75 -0
@@ -56,11 +56,21 @@ let captureRenderTree = Ember._captureRenderTree;
56
56
  let getEnv = () => Ember.ENV;
57
57
 
58
58
  let Debug = emberSafeRequire('@ember/debug');
59
+ let InternalsMetal = emberSafeRequire('@ember/-internals/metal');
60
+ let InternalsRuntime = emberSafeRequire('@ember/-internals/runtime');
59
61
  let InternalsUtils = emberSafeRequire('@ember/-internals/utils');
62
+ let InternalsViews = emberSafeRequire('@ember/-internals/views');
63
+ let EmberDestroyable = emberSafeRequire('@ember/destroyable');
60
64
  let ObjectInternals = emberSafeRequire('@ember/object/internals');
61
65
  let Instrumentation = emberSafeRequire('@ember/instrumentation');
62
66
  let Runloop = emberSafeRequire('@ember/runloop');
63
67
  let RSVP = emberSafeRequire('rsvp');
68
+ let GlimmerComponent = emberSafeRequire('@glimmer/component');
69
+ let GlimmerManager = emberSafeRequire('@glimmer/manager');
70
+ let GlimmerReference = emberSafeRequire('@glimmer/reference');
71
+ let GlimmerRuntime = emberSafeRequire('@glimmer/runtime');
72
+ let GlimmerUtil = emberSafeRequire('@glimmer/util');
73
+ let GlimmerValidator = emberSafeRequire('@glimmer/validator');
64
74
 
65
75
  if (!Ember) {
66
76
  captureRenderTree = emberSafeRequire('@ember/debug')?.captureRenderTree;
@@ -94,7 +104,10 @@ if (!Ember) {
94
104
  export {
95
105
  Runloop,
96
106
  Debug,
107
+ InternalsMetal,
108
+ InternalsRuntime,
97
109
  InternalsUtils,
110
+ InternalsViews,
98
111
  ObjectInternals,
99
112
  Instrumentation,
100
113
  RSVP,
@@ -113,6 +126,7 @@ export {
113
126
  Evented,
114
127
  Service,
115
128
  PromiseProxyMixin,
129
+ EmberDestroyable,
116
130
  EmberObject,
117
131
  VERSION,
118
132
  ComputedProperty,
@@ -122,6 +136,12 @@ export {
122
136
  set,
123
137
  captureRenderTree,
124
138
  getEnv,
139
+ GlimmerComponent,
140
+ GlimmerManager,
141
+ GlimmerReference,
142
+ GlimmerRuntime,
143
+ GlimmerUtil,
144
+ GlimmerValidator,
125
145
  };
126
146
 
127
147
  export default Ember;
@@ -3,7 +3,7 @@ import {
3
3
  ComputedProperty,
4
4
  EmberObject,
5
5
  meta as emberMeta,
6
- emberSafeRequire,
6
+ InternalsMetal,
7
7
  } from 'ember-debug/utils/ember';
8
8
 
9
9
  /**
@@ -41,7 +41,7 @@ export function getDescriptorFor(object, key) {
41
41
  // exists longer than ember 3.10
42
42
  if (Debug.isComputed) {
43
43
  const { descriptorForDecorator, descriptorForProperty } =
44
- emberSafeRequire('@ember/-internals/metal') || {};
44
+ InternalsMetal || {};
45
45
  return (
46
46
  descriptorForDecorator?.(object[key]) ||
47
47
  descriptorForProperty?.(object, key)
@@ -103,6 +103,11 @@ export default class extends DebugPort {
103
103
  onRightClick(event) {
104
104
  if (event.button === 2) {
105
105
  this.lastRightClicked = event.target;
106
+ if (event.target.shadowRoot) {
107
+ this.lastRightClicked =
108
+ event.target.shadowRoot.elementFromPoint(event.x, event.y) ||
109
+ event.target;
110
+ }
106
111
  }
107
112
  }
108
113
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-inspector",
3
- "version": "4.13.1-alpha.2025.6.19+42198be",
3
+ "version": "4.13.1-alpha.2025.6.20+c8550c0",
4
4
  "description": "Extends developer tools to allow you to better inspect your Ember.js apps.",
5
5
  "repository": "https://github.com/emberjs/ember-inspector",
6
6
  "license": "MIT",
@@ -2,7 +2,7 @@
2
2
  "manifest_version": 3,
3
3
  "name": "Ember Inspector (Nightly)",
4
4
  "description": "Tool for debugging Ember applications.",
5
- "version": "2025.6.19",
5
+ "version": "2025.6.20",
6
6
  "icons": {
7
7
  "16": "{{PANE_ROOT}}/assets/images/icon16.png",
8
8
  "38": "{{PANE_ROOT}}/assets/images/icon38.png",
@@ -74,5 +74,5 @@
74
74
  ]
75
75
  }
76
76
  ],
77
- "version_name": "4.13.1 (nightly build 2025.6.19 / 42198be)"
77
+ "version_name": "4.13.1 (nightly build 2025.6.20 / c8550c0)"
78
78
  }
@@ -22,6 +22,8 @@ import EmberDebug from 'ember-debug/main';
22
22
  import setupEmberDebugTest from '../helpers/setup-ember-debug-test';
23
23
  import { isInVersionSpecifier } from 'ember-debug/version';
24
24
  import { VERSION } from 'ember-debug/ember';
25
+ import GlimmerComponent from '@glimmer/component';
26
+ import { tracked } from '@glimmer/tracking';
25
27
 
26
28
  let templateOnlyComponent = null;
27
29
  try {
@@ -373,6 +375,7 @@ module('Ember Debug - View', function (hooks) {
373
375
  this.route('test-component-in-in-element');
374
376
  this.route('wormhole');
375
377
  this.route('inputs');
378
+ this.route('component-in-shadow-dom');
376
379
  this.route('comments', { resetNamespace: true }, function () {});
377
380
  this.route('posts', { resetNamespace: true });
378
381
  },
@@ -499,6 +502,31 @@ module('Ember Debug - View', function (hooks) {
499
502
  }),
500
503
  );
501
504
 
505
+ this.owner.register(
506
+ 'component:shadow-dom',
507
+ setComponentTemplate(
508
+ hbs(
509
+ `<div {{did-insert this.setupRoot}} />
510
+ {{#if this.shadow}}
511
+ {{#in-element this.shadow}}
512
+ {{yield}}
513
+ {{/in-element}}
514
+ {{/if}}
515
+ `,
516
+ {
517
+ moduleName: 'my-app/components/shadow-dom.hbs',
518
+ },
519
+ ),
520
+ class extends GlimmerComponent {
521
+ @tracked shadow;
522
+ setupRoot = (element) => {
523
+ this.shadow = element.attachShadow({ mode: 'open' });
524
+ window.testShadow = this.shadow;
525
+ };
526
+ },
527
+ ),
528
+ );
529
+
502
530
  this.owner.register(
503
531
  'component:test-foo',
504
532
  setComponentTemplate(
@@ -635,6 +663,13 @@ module('Ember Debug - View', function (hooks) {
635
663
  }),
636
664
  );
637
665
 
666
+ this.owner.register(
667
+ 'template:component-in-shadow-dom',
668
+ hbs('<ShadowDom><TestFoo /></ShadowDom>', {
669
+ moduleName: 'my-app/templates/component-in-shadow-dom.hbs',
670
+ }),
671
+ );
672
+
638
673
  this.owner.register(
639
674
  'template:comments/index',
640
675
  hbs('{{#each this.comments as |comment|}}{{comment}}{{/each}}', {
@@ -1200,5 +1235,45 @@ module('Ember Debug - View', function (hooks) {
1200
1235
  .dom('.ember-inspector-tooltip-detail-instance', tooltip)
1201
1236
  .hasText(/ember-wormhole/);
1202
1237
  });
1238
+
1239
+ test('component inside shadow dom', async function (assert) {
1240
+ if (isInVersionSpecifier('^5.8.0', VERSION)) {
1241
+ assert.expect(2);
1242
+ return;
1243
+ }
1244
+ await visit('component-in-shadow-dom');
1245
+ await rerender();
1246
+ await getRenderTree();
1247
+
1248
+ const inShadow = window.testShadow.querySelector('.simple-component');
1249
+
1250
+ await click(window.testShadow.host, {
1251
+ clientX: inShadow.getBoundingClientRect().x,
1252
+ clientY: inShadow.getBoundingClientRect().y,
1253
+ });
1254
+
1255
+ assert
1256
+ .dom('.ember-inspector-tooltip-header', tooltip)
1257
+ .hasText('<TestFoo>');
1258
+
1259
+ let actual = highlight.getBoundingClientRect();
1260
+ let expected = inShadow.getBoundingClientRect();
1261
+
1262
+ assert.ok(isVisible(tooltip), 'tooltip is visible');
1263
+ assert.ok(isVisible(highlight), 'highlight is visible');
1264
+
1265
+ assert.deepEqual(actual.x, expected.x, 'same x as component');
1266
+ assert.deepEqual(actual.y, expected.y, 'same y as component');
1267
+ assert.deepEqual(actual.width, expected.width, 'same width as component');
1268
+ assert.deepEqual(
1269
+ actual.height,
1270
+ expected.height,
1271
+ 'same height as component',
1272
+ );
1273
+
1274
+ assert
1275
+ .dom('.ember-inspector-tooltip-detail-instance', tooltip)
1276
+ .hasText('App.TestFooComponent');
1277
+ });
1203
1278
  });
1204
1279
  });