ember-inspector 4.13.1-alpha.2025.8.2 → 4.13.1-alpha.2025.8.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.
- package/app/components/object-inspector/component-parents.hbs +33 -0
- package/app/components/object-inspector/component-parents.js +43 -0
- package/app/components/object-inspector/properties-base.js +2 -0
- package/app/components/object-inspector/property.hbs +22 -20
- package/app/components/object-inspector/property.ts +8 -0
- package/app/components/object-inspector/toggle.hbs +9 -0
- package/app/components/object-inspector/toggle.js +6 -0
- package/app/components/object-inspector.hbs +3 -1
- package/app/controllers/application.js +8 -42
- package/app/controllers/component-tree.js +5 -5
- package/app/index.html +0 -18
- package/app/routes/application.js +3 -1
- package/app/services/layout.ts +36 -0
- package/app/styles/base.scss +6 -4
- package/app/styles/object_inspector.scss +8 -0
- package/app/styles/ui/_object-inspector-toggle.scss +1 -9
- package/app/styles/ui/_split.scss +9 -0
- package/app/templates/application.hbs +12 -10
- package/dist/bookmarklet/panes-3-16-0/assets/{chunk.524.8fa2f652e1d638cb866d.js → chunk.524.0b39c2ad02262c579f87.js} +4 -4
- package/dist/{firefox/panes-3-16-0/assets/chunk.582.325d02fae0e9f262a1ae.js → bookmarklet/panes-3-16-0/assets/chunk.582.01d1a5c1decd5cc4d241.js} +5 -5
- package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +22 -11
- package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +58 -44
- package/dist/bookmarklet/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +9 -7
- package/dist/bookmarklet/panes-3-16-0/ember.js +9 -2
- package/dist/bookmarklet/panes-3-16-0/index.html +2 -20
- package/dist/bookmarklet/panes-3-16-0/main.js +22 -1
- package/dist/chrome/manifest.json +2 -2
- package/dist/{firefox/panes-3-16-0/assets/chunk.524.8fa2f652e1d638cb866d.js → chrome/panes-3-16-0/assets/chunk.524.0b39c2ad02262c579f87.js} +4 -4
- package/dist/{bookmarklet/panes-3-16-0/assets/chunk.582.325d02fae0e9f262a1ae.js → chrome/panes-3-16-0/assets/chunk.582.01d1a5c1decd5cc4d241.js} +5 -5
- package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +22 -11
- package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +58 -44
- package/dist/chrome/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/chrome/panes-3-16-0/assets/vendor.js +9 -7
- package/dist/chrome/panes-3-16-0/ember.js +9 -2
- package/dist/chrome/panes-3-16-0/index.html +2 -20
- package/dist/chrome/panes-3-16-0/main.js +22 -1
- package/dist/firefox/manifest.json +2 -2
- package/dist/{chrome/panes-3-16-0/assets/chunk.524.8fa2f652e1d638cb866d.js → firefox/panes-3-16-0/assets/chunk.524.0b39c2ad02262c579f87.js} +4 -4
- package/dist/{websocket/assets/chunk.582.325d02fae0e9f262a1ae.js → firefox/panes-3-16-0/assets/chunk.582.01d1a5c1decd5cc4d241.js} +5 -5
- package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +22 -11
- package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +58 -44
- package/dist/firefox/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/firefox/panes-3-16-0/assets/vendor.js +9 -7
- package/dist/firefox/panes-3-16-0/ember.js +9 -2
- package/dist/firefox/panes-3-16-0/index.html +2 -20
- package/dist/firefox/panes-3-16-0/main.js +22 -1
- package/dist/websocket/assets/{chunk.524.8fa2f652e1d638cb866d.js → chunk.524.0b39c2ad02262c579f87.js} +4 -4
- package/dist/{chrome/panes-3-16-0/assets/chunk.582.325d02fae0e9f262a1ae.js → websocket/assets/chunk.582.01d1a5c1decd5cc4d241.js} +5 -5
- package/dist/websocket/assets/ember-inspector.css +22 -11
- package/dist/websocket/assets/ember-inspector.js +58 -44
- package/dist/websocket/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/websocket/assets/vendor.js +9 -7
- package/dist/websocket/ember.js +9 -2
- package/dist/websocket/index.html +2 -20
- package/dist/websocket/main.js +22 -1
- package/ember_debug/object-inspector.js +28 -0
- package/ember_debug/utils/ember.js +11 -1
- package/package.json +1 -1
- package/public/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/skeletons/web-extension/manifest.json +2 -2
- package/tests/ember_debug/object-inspector-test.js +54 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
- package/dist/websocket/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/websocket/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/websocket/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/websocket/assets/fonts/Inter-Regular.woff2 +0 -0
- package/public/assets/fonts/Inter-Bold.woff +0 -0
- package/public/assets/fonts/Inter-Bold.woff2 +0 -0
- package/public/assets/fonts/Inter-Regular.woff +0 -0
- package/public/assets/fonts/Inter-Regular.woff2 +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<ObjectInspector::Accordion @mixin={{this.accordionMixin}} as |accordion|>
|
|
2
|
+
<div
|
|
3
|
+
class="mixin {{this.accordionMixin.type}} {{if accordion.isExpanded "mixin-state-expanded"}} {{if this.accordionMixin.properties.length "mixin-props-yes" "mixin-props-no"}}"
|
|
4
|
+
data-test-object-detail
|
|
5
|
+
>
|
|
6
|
+
{{#if this.accordionMixin.properties.length}}
|
|
7
|
+
<h2
|
|
8
|
+
data-test-object-detail-name
|
|
9
|
+
class="mixin-name sticky top-0 truncate select-none cursor-default text-base15 bg-base01"
|
|
10
|
+
role="button"
|
|
11
|
+
{{on "click" accordion.toggle}}
|
|
12
|
+
>
|
|
13
|
+
{{this.accordionMixin.name}}
|
|
14
|
+
</h2>
|
|
15
|
+
{{else}}
|
|
16
|
+
<h2
|
|
17
|
+
class="mixin-name mixin-name--no-props sticky top-0 truncate select-none text-base09 cursor-default bg-base01"
|
|
18
|
+
data-test-object-detail-name
|
|
19
|
+
>
|
|
20
|
+
{{this.accordionMixin.name}}
|
|
21
|
+
</h2>
|
|
22
|
+
{{/if}}
|
|
23
|
+
{{#if accordion.isExpanded}}
|
|
24
|
+
<ul class="mixin-properties m-0 text-base font-mono list-none">
|
|
25
|
+
{{#each this.parents as |parent|}}
|
|
26
|
+
<ComponentTreeItem @item={{parent}} />
|
|
27
|
+
{{else}}
|
|
28
|
+
<li class="mixin-property flex relative flex-row items-center truncate">No Properties</li>
|
|
29
|
+
{{/each}}
|
|
30
|
+
</ul>
|
|
31
|
+
{{/if}}
|
|
32
|
+
</div>
|
|
33
|
+
</ObjectInspector::Accordion>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import Component from '@glimmer/component';
|
|
2
|
+
import { RenderItem } from 'ember-inspector/controllers/component-tree';
|
|
3
|
+
|
|
4
|
+
class RenderItemNoParent extends RenderItem {
|
|
5
|
+
get level() {
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
get hasChildren() {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default class ComponentParents extends Component {
|
|
15
|
+
get accordionMixin() {
|
|
16
|
+
return {
|
|
17
|
+
name: 'rendered by',
|
|
18
|
+
expand: true,
|
|
19
|
+
properties: {
|
|
20
|
+
length: 1,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
get parents() {
|
|
25
|
+
const parents = [];
|
|
26
|
+
let item = this.args.item?.parentItem;
|
|
27
|
+
while (item) {
|
|
28
|
+
parents.push(
|
|
29
|
+
new RenderItemNoParent(
|
|
30
|
+
item.controller,
|
|
31
|
+
item.parentItem,
|
|
32
|
+
item.renderNode,
|
|
33
|
+
),
|
|
34
|
+
);
|
|
35
|
+
item = item.parentItem;
|
|
36
|
+
}
|
|
37
|
+
return parents;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
selectComponent = (item) => {
|
|
41
|
+
this.args.select(item);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -30,34 +30,36 @@
|
|
|
30
30
|
<span class="mixin-property-icon mixin-property-icon-{{this.iconInfo.type}} inline-block rounded font-mono text-md text-white text-center select-none"></span>
|
|
31
31
|
</span>
|
|
32
32
|
|
|
33
|
-
{{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
title="service"
|
|
41
|
-
class="mixin-property--group"
|
|
42
|
-
data-test-property-name-service
|
|
43
|
-
>
|
|
44
|
-
{{@model.name}}
|
|
45
|
-
</span>
|
|
46
|
-
{{else}}
|
|
47
|
-
{{#if this.hasDependentKeys}}
|
|
33
|
+
{{#unless this.isOwner}}
|
|
34
|
+
{{!-- Property Name --}}
|
|
35
|
+
<span
|
|
36
|
+
class="mixin-property-name text-base14 truncate"
|
|
37
|
+
data-test-object-property-name
|
|
38
|
+
>
|
|
39
|
+
{{#if this.isService}}
|
|
48
40
|
<span
|
|
49
|
-
title="
|
|
41
|
+
title="service"
|
|
50
42
|
class="mixin-property--group"
|
|
43
|
+
data-test-property-name-service
|
|
51
44
|
>
|
|
52
45
|
{{@model.name}}
|
|
53
46
|
</span>
|
|
54
47
|
{{else}}
|
|
55
|
-
{{
|
|
48
|
+
{{#if this.hasDependentKeys}}
|
|
49
|
+
<span
|
|
50
|
+
title="computed"
|
|
51
|
+
class="mixin-property--group"
|
|
52
|
+
>
|
|
53
|
+
{{@model.name}}
|
|
54
|
+
</span>
|
|
55
|
+
{{else}}
|
|
56
|
+
{{@model.name}}
|
|
57
|
+
{{/if}}
|
|
56
58
|
{{/if}}
|
|
57
|
-
|
|
58
|
-
</span>
|
|
59
|
+
</span>
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
<span class="mr-1">: </span>
|
|
62
|
+
{{/unless}}
|
|
61
63
|
|
|
62
64
|
{{#if this.isEdit}}
|
|
63
65
|
{{#if this.isDate}}
|
|
@@ -47,6 +47,10 @@ export default class ObjectInspectorProperty extends Component<ObjectInspectorPr
|
|
|
47
47
|
@equal('args.model.value.type', 'type-string')
|
|
48
48
|
isString!: boolean;
|
|
49
49
|
|
|
50
|
+
get isOwner() {
|
|
51
|
+
return this.args.model?.value?.type === 'type-owner';
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
get isService() {
|
|
51
55
|
return this.args.model?.isService;
|
|
52
56
|
}
|
|
@@ -116,6 +120,10 @@ export default class ObjectInspectorProperty extends Component<ObjectInspectorPr
|
|
|
116
120
|
return { type: 'getter', title: 'Getter' };
|
|
117
121
|
}
|
|
118
122
|
|
|
123
|
+
if (this.isOwner) {
|
|
124
|
+
return { type: 'owner', title: 'Owner' };
|
|
125
|
+
}
|
|
126
|
+
|
|
119
127
|
return { type: 'n/a', title: 'N/A' };
|
|
120
128
|
}
|
|
121
129
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<button
|
|
2
|
+
class="object-inspector-toggle toolbar-icon-button"
|
|
3
|
+
type="button"
|
|
4
|
+
title="{{if this.layout.inspectorExpanded "hide" "show"}} object inspector"
|
|
5
|
+
...attributes
|
|
6
|
+
{{on "click" this.layout.toggleInspector}}
|
|
7
|
+
>
|
|
8
|
+
{{svg-jar "sidebar-toggle-trailing" width="16" height="16"}}
|
|
9
|
+
</button>
|
|
@@ -110,6 +110,8 @@
|
|
|
110
110
|
{{else if (eq this.propDisplayType "grouped")}}
|
|
111
111
|
<ObjectInspector::PropertiesGrouped @model={{@mixinDetails}} />
|
|
112
112
|
{{/if}}
|
|
113
|
+
<Ui::ToolbarDivider />
|
|
114
|
+
<ObjectInspector::ComponentParents @select={{@selectComponent}} @item={{@item}}/>
|
|
113
115
|
</div>
|
|
114
116
|
{{else}}
|
|
115
117
|
<div class="split-panel-bd">
|
|
@@ -117,4 +119,4 @@
|
|
|
117
119
|
No object selected
|
|
118
120
|
</Ui::EmptyMessage>
|
|
119
121
|
</div>
|
|
120
|
-
{{/if}}
|
|
122
|
+
{{/if}}
|
|
@@ -1,4 +1,4 @@
|
|
|
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
4
|
import { debounce, schedule } from '@ember/runloop';
|
|
@@ -7,11 +7,13 @@ import { inject as service } from '@ember/service';
|
|
|
7
7
|
import { TrackedArray, TrackedObject } from 'tracked-built-ins';
|
|
8
8
|
|
|
9
9
|
export default class ApplicationController extends Controller {
|
|
10
|
+
@controller('component-tree') componentTreeController;
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Service used to broadcast changes to the application's layout
|
|
12
14
|
* such as toggling of the object inspector.
|
|
13
15
|
*/
|
|
14
|
-
@service
|
|
16
|
+
@service layout;
|
|
15
17
|
@service port;
|
|
16
18
|
|
|
17
19
|
// Indicates that the extension window is focused,
|
|
@@ -19,7 +21,6 @@ export default class ApplicationController extends Controller {
|
|
|
19
21
|
@tracked isDragging = false;
|
|
20
22
|
@tracked contentHeight = null;
|
|
21
23
|
@tracked deprecationCount = 0;
|
|
22
|
-
@tracked inspectorExpanded = false;
|
|
23
24
|
@tracked inspectorWidth = 360;
|
|
24
25
|
/**
|
|
25
26
|
* Indicates if the inspector has detected an ember app.
|
|
@@ -72,39 +73,6 @@ export default class ApplicationController extends Controller {
|
|
|
72
73
|
});
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
@action
|
|
76
|
-
showInspector() {
|
|
77
|
-
if (this.inspectorExpanded === false) {
|
|
78
|
-
this.inspectorExpanded = true;
|
|
79
|
-
// Broadcast that tables have been resized (used by `x-list`).
|
|
80
|
-
// eslint-disable-next-line ember/no-runloop
|
|
81
|
-
schedule('afterRender', () => {
|
|
82
|
-
this.layoutService.trigger('resize', { source: 'object-inspector' });
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
@action
|
|
88
|
-
hideInspector() {
|
|
89
|
-
if (this.inspectorExpanded === true) {
|
|
90
|
-
this.inspectorExpanded = false;
|
|
91
|
-
// Broadcast that tables have been resized (used by `x-list`).
|
|
92
|
-
// eslint-disable-next-line ember/no-runloop
|
|
93
|
-
schedule('afterRender', () => {
|
|
94
|
-
this.layoutService.trigger('resize', { source: 'object-inspector' });
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@action
|
|
100
|
-
toggleInspector() {
|
|
101
|
-
if (this.inspectorExpanded) {
|
|
102
|
-
this.hideInspector();
|
|
103
|
-
} else {
|
|
104
|
-
this.showInspector();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
76
|
@action
|
|
109
77
|
setActive(bool) {
|
|
110
78
|
// eslint-disable-next-line ember/no-runloop
|
|
@@ -116,7 +84,7 @@ export default class ApplicationController extends Controller {
|
|
|
116
84
|
@action
|
|
117
85
|
setupContentElement(element) {
|
|
118
86
|
this.contentElement = element;
|
|
119
|
-
this.
|
|
87
|
+
this.layout.updateContentHeight(this.contentElement.clientHeight);
|
|
120
88
|
}
|
|
121
89
|
|
|
122
90
|
@action
|
|
@@ -124,14 +92,12 @@ export default class ApplicationController extends Controller {
|
|
|
124
92
|
// eslint-disable-next-line ember/no-runloop
|
|
125
93
|
schedule('afterRender', () => {
|
|
126
94
|
if (!this.isDestroyed && !this.isDestroying) {
|
|
127
|
-
this.
|
|
95
|
+
this.layout.trigger('resize', {
|
|
128
96
|
source: 'application-controller',
|
|
129
97
|
});
|
|
130
98
|
|
|
131
99
|
if (this.contentElement) {
|
|
132
|
-
this.
|
|
133
|
-
this.contentElement.clientHeight,
|
|
134
|
-
);
|
|
100
|
+
this.layout.updateContentHeight(this.contentElement.clientHeight);
|
|
135
101
|
}
|
|
136
102
|
}
|
|
137
103
|
});
|
|
@@ -148,7 +114,7 @@ export default class ApplicationController extends Controller {
|
|
|
148
114
|
this.navIsCollapsed = !this.navIsCollapsed;
|
|
149
115
|
// eslint-disable-next-line ember/no-runloop
|
|
150
116
|
schedule('afterRender', () => {
|
|
151
|
-
this.
|
|
117
|
+
this.layout.trigger('resize', { source: 'navigation' });
|
|
152
118
|
});
|
|
153
119
|
}
|
|
154
120
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import 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,8 +14,8 @@ 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;
|
|
@@ -146,14 +146,14 @@ export default class ComponentTreeController extends Controller {
|
|
|
146
146
|
objectId: item.instance,
|
|
147
147
|
});
|
|
148
148
|
} else {
|
|
149
|
-
this.
|
|
149
|
+
this.layout.hideInspector();
|
|
150
150
|
}
|
|
151
151
|
} else {
|
|
152
152
|
this._pinned = undefined;
|
|
153
153
|
this._previewing = undefined;
|
|
154
154
|
|
|
155
155
|
this.port.send('view:hideInspection');
|
|
156
|
-
this.
|
|
156
|
+
this.layout.hideInspector();
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
this.syncInspection();
|
|
@@ -293,7 +293,7 @@ function arrowKeyPressed(keyCode) {
|
|
|
293
293
|
return [KEYS.up, KEYS.right, KEYS.down, KEYS.left].includes(keyCode);
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
-
class RenderItem {
|
|
296
|
+
export class RenderItem {
|
|
297
297
|
@tracked isExpanded;
|
|
298
298
|
@tracked renderNode;
|
|
299
299
|
|
package/app/index.html
CHANGED
|
@@ -8,24 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
{{content-for "head"}}
|
|
10
10
|
|
|
11
|
-
<style type="text/css">
|
|
12
|
-
@font-face {
|
|
13
|
-
font-display: swap;
|
|
14
|
-
font-family: 'Inter';
|
|
15
|
-
font-style: normal;
|
|
16
|
-
font-weight: 400;
|
|
17
|
-
src: url("{{rootURL}}assets/fonts/Inter-Regular.woff2?v=3.12") format("woff2"), url("{{rootURL}}assets/fonts/Inter-Regular.woff?v=3.12") format("woff");
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@font-face {
|
|
21
|
-
font-display: swap;
|
|
22
|
-
font-family: 'Inter';
|
|
23
|
-
font-style: normal;
|
|
24
|
-
font-weight: 700;
|
|
25
|
-
src: url("{{rootURL}}assets/fonts/Inter-Bold.woff2?v=3.12") format("woff2"), url("{{rootURL}}assets/fonts/Inter-Bold.woff?v=3.12") format("woff");
|
|
26
|
-
}
|
|
27
|
-
</style>
|
|
28
|
-
|
|
29
11
|
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css">
|
|
30
12
|
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/ember-inspector.css">
|
|
31
13
|
|
|
@@ -9,9 +9,11 @@ export default class ApplicationRoute extends Route {
|
|
|
9
9
|
@service adapter;
|
|
10
10
|
@service port;
|
|
11
11
|
@service router;
|
|
12
|
+
@service layout;
|
|
12
13
|
|
|
13
14
|
setupController(controller) {
|
|
14
15
|
controller.set('mixinStack', []);
|
|
16
|
+
|
|
15
17
|
let port = this.port;
|
|
16
18
|
port.on('objectInspector:updateObject', this, this.updateObject);
|
|
17
19
|
port.on('objectInspector:updateProperty', this, this.updateProperty);
|
|
@@ -63,7 +65,7 @@ export default class ApplicationRoute extends Route {
|
|
|
63
65
|
controller.activateMixinDetails(name, objectId, details, errors);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
|
-
this.
|
|
68
|
+
this.layout.showInspector();
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
setDeprecationCount(message) {
|
package/app/services/layout.ts
CHANGED
|
@@ -12,8 +12,11 @@ import { action } from '@ember/object';
|
|
|
12
12
|
import { tracked } from '@glimmer/tracking';
|
|
13
13
|
import { addListener, removeListener, sendEvent } from '@ember/object/events';
|
|
14
14
|
import type { AnyFn } from '@ember/-internals/utility-types';
|
|
15
|
+
import { schedule } from '@ember/runloop';
|
|
15
16
|
|
|
16
17
|
export default class LayoutService extends Service {
|
|
18
|
+
@tracked inspectorExpanded = false;
|
|
19
|
+
|
|
17
20
|
/**
|
|
18
21
|
* Stores the app's content height. This property is kept up-to-date
|
|
19
22
|
* by the `monitor-content-height` component.
|
|
@@ -85,4 +88,37 @@ export default class LayoutService extends Service {
|
|
|
85
88
|
trigger(eventName: string, ...args: Array<any>) {
|
|
86
89
|
sendEvent(this, eventName, args);
|
|
87
90
|
}
|
|
91
|
+
|
|
92
|
+
@action
|
|
93
|
+
showInspector() {
|
|
94
|
+
if (this.inspectorExpanded === false) {
|
|
95
|
+
this.inspectorExpanded = true;
|
|
96
|
+
// Broadcast that tables have been resized (used by `x-list`).
|
|
97
|
+
// eslint-disable-next-line ember/no-runloop
|
|
98
|
+
schedule('afterRender', () => {
|
|
99
|
+
this.trigger('resize', { source: 'object-inspector' });
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@action
|
|
105
|
+
hideInspector() {
|
|
106
|
+
if (this.inspectorExpanded === true) {
|
|
107
|
+
this.inspectorExpanded = false;
|
|
108
|
+
// Broadcast that tables have been resized (used by `x-list`).
|
|
109
|
+
// eslint-disable-next-line ember/no-runloop
|
|
110
|
+
schedule('afterRender', () => {
|
|
111
|
+
this.trigger('resize', { source: 'object-inspector' });
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@action
|
|
117
|
+
toggleInspector() {
|
|
118
|
+
if (this.inspectorExpanded) {
|
|
119
|
+
this.hideInspector();
|
|
120
|
+
} else {
|
|
121
|
+
this.showInspector();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
88
124
|
}
|
package/app/styles/base.scss
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
/* stylelint-disable value-keyword-case */
|
|
3
|
-
--font-sans-serif:
|
|
4
|
-
"Segoe UI
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
--font-sans-serif: system-ui, sans-serif, "Apple Color Emoji",
|
|
4
|
+
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
5
|
+
--font-monospace: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo,
|
|
6
|
+
Consolas, "DejaVu Sans Mono", monospace, "Apple Color Emoji",
|
|
7
|
+
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
7
8
|
/* stylelint-enable value-keyword-case */
|
|
9
|
+
|
|
8
10
|
--inherit: inherit;
|
|
9
11
|
--unit0: 0;
|
|
10
12
|
--unit1: 4px;
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
.object-inspector-toggle.toolbar-icon-button {
|
|
2
|
-
margin-right: 0; // .toolbar-icon-button override
|
|
3
2
|
max-height: var(--toolbar-height);
|
|
4
|
-
padding-
|
|
5
|
-
padding-left: 6px; // .toolbar-icon-button override
|
|
6
|
-
transform: scaleX(-1);
|
|
7
|
-
|
|
8
|
-
// use .toolbar-icon-button active style AND flip horizontally
|
|
9
|
-
&:active {
|
|
10
|
-
transform: translate(1px, 1px) scaleX(-1);
|
|
11
|
-
}
|
|
3
|
+
padding-inline: 6px; // .toolbar-icon-button override
|
|
12
4
|
}
|
|
@@ -69,6 +69,10 @@
|
|
|
69
69
|
|
|
70
70
|
/* Custom panels */
|
|
71
71
|
|
|
72
|
+
.split-panel-hd-row {
|
|
73
|
+
flex-flow: row;
|
|
74
|
+
}
|
|
75
|
+
|
|
72
76
|
.split-panel-sidebar-1 .split-panel-bd {
|
|
73
77
|
background: var(--base01);
|
|
74
78
|
}
|
|
@@ -85,3 +89,8 @@
|
|
|
85
89
|
.split-main > .split-panel-sidebar-1 > .split-panel-bd {
|
|
86
90
|
overflow-y: auto;
|
|
87
91
|
}
|
|
92
|
+
|
|
93
|
+
/* There is better ways to do this, but they create more complicated CSS */
|
|
94
|
+
.split-panel-hd-row .spacer {
|
|
95
|
+
flex: 1 1 100%;
|
|
96
|
+
}
|
|
@@ -45,16 +45,12 @@
|
|
|
45
45
|
</Ui::DraggableColumn>
|
|
46
46
|
|
|
47
47
|
<div class="split-panel">
|
|
48
|
-
<div class="split-panel-hd">
|
|
48
|
+
<div class="split-panel-hd split-panel-hd-row">
|
|
49
49
|
<div id="toolbar"></div>
|
|
50
|
-
|
|
51
|
-
class="
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
title="{{if this.inspectorExpanded "hide" "show"}} object inspector"
|
|
55
|
-
>
|
|
56
|
-
{{svg-jar "sidebar-toggle" width="16" height="16"}}
|
|
57
|
-
</button>
|
|
50
|
+
{{#unless this.layout.inspectorExpanded}}
|
|
51
|
+
<span class="spacer">{{!-- Spacer to shift the toggle to the end of the header --}}</span>
|
|
52
|
+
<ObjectInspector::Toggle />
|
|
53
|
+
{{/unless}}
|
|
58
54
|
</div>
|
|
59
55
|
|
|
60
56
|
<div class="split-panel-bd" {{did-insert this.setupContentElement}}>
|
|
@@ -64,16 +60,22 @@
|
|
|
64
60
|
</div>
|
|
65
61
|
</div>
|
|
66
62
|
|
|
67
|
-
{{#if this.inspectorExpanded}}
|
|
63
|
+
{{#if this.layout.inspectorExpanded}}
|
|
68
64
|
<Ui::DraggableColumn
|
|
69
65
|
@classes="split-panel"
|
|
70
66
|
@side="right"
|
|
71
67
|
@width={{this.inspectorWidth}}
|
|
72
68
|
>
|
|
69
|
+
<div class="split-panel-hd split-panel-hd-row">
|
|
70
|
+
<span class="spacer"></span>
|
|
71
|
+
<ObjectInspector::Toggle />
|
|
72
|
+
</div>
|
|
73
73
|
<ObjectInspector
|
|
74
74
|
@popMixinDetails={{this.popMixinDetails}}
|
|
75
75
|
@model={{this.mixinStack}}
|
|
76
76
|
@mixinDetails={{this.mixinDetails}}
|
|
77
|
+
@selectComponent={{mut this.componentTreeController.pinned}}
|
|
78
|
+
@item={{this.componentTreeController.currentItem}}
|
|
77
79
|
/>
|
|
78
80
|
</Ui::DraggableColumn>
|
|
79
81
|
{{/if}}
|
|
@@ -17,8 +17,8 @@ e.exports=require("@glimmer/tracking/primitives/cache")},3211:e=>{"use strict"
|
|
|
17
17
|
e.exports=require("ember")},8234:e=>{"use strict"
|
|
18
18
|
e.exports=require("ember-testing")},2394:e=>{"use strict"
|
|
19
19
|
e.exports=require("ember-testing/lib/test/pending_requests")},32:e=>{"use strict"
|
|
20
|
-
e.exports=require("ember-tracked-storage-polyfill")},7326:()=>{},
|
|
21
|
-
function n(e){return e&&e.__esModule?e:Object.assign({default:e},e)}window.emberAutoImportDynamic=function(e){return 1===arguments.length?r("_eai_dyn_"+e):r("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return r("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},e("@ember/string",[],(function(){return n(t(2654))})),e("ember-cli-page-object",["@ember/application","@ember/runloop","@ember/object","ember-testing","ember-testing/lib/test/pending_requests","ember","@ember/debug","@ember/destroyable","@ember/test-waiters","@ember/template-factory","@ember/version","@glimmer/manager","@ember/renderer","@ember/application/instance"],(function(){return n(t(3201))})),e("ember-cli-page-object/extend",["@ember/application","@ember/runloop","@ember/object","ember-testing","ember-testing/lib/test/pending_requests","ember","@ember/debug","@ember/destroyable","@ember/test-waiters","@ember/template-factory","@ember/version","@glimmer/manager","@ember/renderer","@ember/application/instance"],(function(){return n(t(7057))})),e("ember-cli-page-object/macros",[],(function(){return n(t(821))})),e("ember-load-initializers",[],(function(){return n(t(4338))})),e("ember-math-helpers/helpers/abs",["@ember/component/helper"],(function(){return n(t(7423))})),e("ember-math-helpers/helpers/acos",["@ember/component/helper"],(function(){return n(t(9485))})),e("ember-math-helpers/helpers/acosh",["@ember/component/helper"],(function(){return n(t(4393))})),e("ember-math-helpers/helpers/add",["@ember/component/helper"],(function(){return n(t(1336))})),e("ember-math-helpers/helpers/asin",["@ember/component/helper"],(function(){return n(t(3388))})),e("ember-math-helpers/helpers/asinh",["@ember/component/helper"],(function(){return n(t(7598))})),e("ember-math-helpers/helpers/atan",["@ember/component/helper"],(function(){return n(t(2521))})),e("ember-math-helpers/helpers/atan2",["@ember/component/helper"],(function(){return n(t(9363))})),e("ember-math-helpers/helpers/atanh",["@ember/component/helper"],(function(){return n(t(3837))})),e("ember-math-helpers/helpers/cbrt",["@ember/component/helper"],(function(){return n(t(5348))})),e("ember-math-helpers/helpers/ceil",["@ember/component/helper"],(function(){return n(t(610))})),e("ember-math-helpers/helpers/clz32",["@ember/component/helper"],(function(){return n(t(109))})),e("ember-math-helpers/helpers/cos",["@ember/component/helper"],(function(){return n(t(5040))})),e("ember-math-helpers/helpers/cosh",["@ember/component/helper"],(function(){return n(t(3594))})),e("ember-math-helpers/helpers/div",["@ember/component/helper"],(function(){return n(t(5664))})),e("ember-math-helpers/helpers/exp",["@ember/component/helper"],(function(){return n(t(292))})),e("ember-math-helpers/helpers/expm1",["@ember/component/helper"],(function(){return n(t(486))})),e("ember-math-helpers/helpers/floor",["@ember/component/helper"],(function(){return n(t(6209))})),e("ember-math-helpers/helpers/fround",["@ember/component/helper"],(function(){return n(t(5605))})),e("ember-math-helpers/helpers/gcd",["@ember/component/helper"],(function(){return n(t(6053))})),e("ember-math-helpers/helpers/hypot",["@ember/component/helper"],(function(){return n(t(37))})),e("ember-math-helpers/helpers/imul",["@ember/component/helper"],(function(){return n(t(4912))})),e("ember-math-helpers/helpers/lcm",["@ember/component/helper"],(function(){return n(t(9447))})),e("ember-math-helpers/helpers/log-e",["@ember/component/helper"],(function(){return n(t(1567))})),e("ember-math-helpers/helpers/log10",["@ember/component/helper"],(function(){return n(t(6088))})),e("ember-math-helpers/helpers/log1p",["@ember/component/helper"],(function(){return n(t(9864))})),e("ember-math-helpers/helpers/log2",["@ember/component/helper"],(function(){return n(t(8303))})),e("ember-math-helpers/helpers/max",["@ember/component/helper"],(function(){return n(t(7425))})),e("ember-math-helpers/helpers/min",["@ember/component/helper"],(function(){return n(t(867))})),e("ember-math-helpers/helpers/mod",["@ember/component/helper"],(function(){return n(t(8275))})),e("ember-math-helpers/helpers/mult",["@ember/component/helper"],(function(){return n(t(4801))})),e("ember-math-helpers/helpers/pow",["@ember/component/helper"],(function(){return n(t(6665))})),e("ember-math-helpers/helpers/random",["@ember/array","@ember/component/helper"],(function(){return n(t(7772))})),e("ember-math-helpers/helpers/round",["@ember/component/helper"],(function(){return n(t(2231))})),e("ember-math-helpers/helpers/sign",["@ember/component/helper"],(function(){return n(t(6626))})),e("ember-math-helpers/helpers/sin",["@ember/component/helper"],(function(){return n(t(4821))})),e("ember-math-helpers/helpers/sqrt",["@ember/component/helper"],(function(){return n(t(2841))})),e("ember-math-helpers/helpers/sub",["@ember/component/helper"],(function(){return n(t(4173))})),e("ember-math-helpers/helpers/sum",["@ember/component/helper"],(function(){return n(t(7472))})),e("ember-math-helpers/helpers/tan",["@ember/component/helper"],(function(){return n(t(5184))})),e("ember-math-helpers/helpers/tanh",["@ember/component/helper"],(function(){return n(t(1338))})),e("ember-math-helpers/helpers/trunc",["@ember/component/helper"],(function(){return n(t(7553))})),e("ember-resolver",[],(function(){return n(t(710))})),e("tracked-built-ins",["@glimmer/tracking","@ember/debug","ember-tracked-storage-polyfill"],(function(){return n(t(9929))})),e("tracked-toolbox",["@ember/debug","@ember/object","@glimmer/tracking","@glimmer/tracking/primitives/cache"],(function(){return n(t(2419))}))}()},
|
|
20
|
+
e.exports=require("ember-tracked-storage-polyfill")},7326:()=>{},5167:(e,r,t)=>{e.exports=function(){var e=_eai_d,r=_eai_r
|
|
21
|
+
function n(e){return e&&e.__esModule?e:Object.assign({default:e},e)}window.emberAutoImportDynamic=function(e){return 1===arguments.length?r("_eai_dyn_"+e):r("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return r("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},e("@ember/string",[],(function(){return n(t(2654))})),e("ember-cli-page-object",["@ember/application","@ember/runloop","@ember/object","ember-testing","ember-testing/lib/test/pending_requests","ember","@ember/debug","@ember/destroyable","@ember/test-waiters","@ember/template-factory","@ember/version","@glimmer/manager","@ember/renderer","@ember/application/instance"],(function(){return n(t(3201))})),e("ember-cli-page-object/extend",["@ember/application","@ember/runloop","@ember/object","ember-testing","ember-testing/lib/test/pending_requests","ember","@ember/debug","@ember/destroyable","@ember/test-waiters","@ember/template-factory","@ember/version","@glimmer/manager","@ember/renderer","@ember/application/instance"],(function(){return n(t(7057))})),e("ember-cli-page-object/macros",[],(function(){return n(t(821))})),e("ember-load-initializers",[],(function(){return n(t(4338))})),e("ember-math-helpers/helpers/abs",["@ember/component/helper"],(function(){return n(t(7423))})),e("ember-math-helpers/helpers/acos",["@ember/component/helper"],(function(){return n(t(9485))})),e("ember-math-helpers/helpers/acosh",["@ember/component/helper"],(function(){return n(t(4393))})),e("ember-math-helpers/helpers/add",["@ember/component/helper"],(function(){return n(t(1336))})),e("ember-math-helpers/helpers/asin",["@ember/component/helper"],(function(){return n(t(3388))})),e("ember-math-helpers/helpers/asinh",["@ember/component/helper"],(function(){return n(t(7598))})),e("ember-math-helpers/helpers/atan",["@ember/component/helper"],(function(){return n(t(2521))})),e("ember-math-helpers/helpers/atan2",["@ember/component/helper"],(function(){return n(t(9363))})),e("ember-math-helpers/helpers/atanh",["@ember/component/helper"],(function(){return n(t(3837))})),e("ember-math-helpers/helpers/cbrt",["@ember/component/helper"],(function(){return n(t(5348))})),e("ember-math-helpers/helpers/ceil",["@ember/component/helper"],(function(){return n(t(610))})),e("ember-math-helpers/helpers/clz32",["@ember/component/helper"],(function(){return n(t(109))})),e("ember-math-helpers/helpers/cos",["@ember/component/helper"],(function(){return n(t(5040))})),e("ember-math-helpers/helpers/cosh",["@ember/component/helper"],(function(){return n(t(3594))})),e("ember-math-helpers/helpers/div",["@ember/component/helper"],(function(){return n(t(5664))})),e("ember-math-helpers/helpers/exp",["@ember/component/helper"],(function(){return n(t(292))})),e("ember-math-helpers/helpers/expm1",["@ember/component/helper"],(function(){return n(t(486))})),e("ember-math-helpers/helpers/floor",["@ember/component/helper"],(function(){return n(t(6209))})),e("ember-math-helpers/helpers/fround",["@ember/component/helper"],(function(){return n(t(5605))})),e("ember-math-helpers/helpers/gcd",["@ember/component/helper"],(function(){return n(t(6053))})),e("ember-math-helpers/helpers/hypot",["@ember/component/helper"],(function(){return n(t(37))})),e("ember-math-helpers/helpers/imul",["@ember/component/helper"],(function(){return n(t(4912))})),e("ember-math-helpers/helpers/lcm",["@ember/component/helper"],(function(){return n(t(9447))})),e("ember-math-helpers/helpers/log-e",["@ember/component/helper"],(function(){return n(t(1567))})),e("ember-math-helpers/helpers/log10",["@ember/component/helper"],(function(){return n(t(6088))})),e("ember-math-helpers/helpers/log1p",["@ember/component/helper"],(function(){return n(t(9864))})),e("ember-math-helpers/helpers/log2",["@ember/component/helper"],(function(){return n(t(8303))})),e("ember-math-helpers/helpers/max",["@ember/component/helper"],(function(){return n(t(7425))})),e("ember-math-helpers/helpers/min",["@ember/component/helper"],(function(){return n(t(867))})),e("ember-math-helpers/helpers/mod",["@ember/component/helper"],(function(){return n(t(8275))})),e("ember-math-helpers/helpers/mult",["@ember/component/helper"],(function(){return n(t(4801))})),e("ember-math-helpers/helpers/pow",["@ember/component/helper"],(function(){return n(t(6665))})),e("ember-math-helpers/helpers/random",["@ember/array","@ember/component/helper"],(function(){return n(t(7772))})),e("ember-math-helpers/helpers/round",["@ember/component/helper"],(function(){return n(t(2231))})),e("ember-math-helpers/helpers/sign",["@ember/component/helper"],(function(){return n(t(6626))})),e("ember-math-helpers/helpers/sin",["@ember/component/helper"],(function(){return n(t(4821))})),e("ember-math-helpers/helpers/sqrt",["@ember/component/helper"],(function(){return n(t(2841))})),e("ember-math-helpers/helpers/sub",["@ember/component/helper"],(function(){return n(t(4173))})),e("ember-math-helpers/helpers/sum",["@ember/component/helper"],(function(){return n(t(7472))})),e("ember-math-helpers/helpers/tan",["@ember/component/helper"],(function(){return n(t(5184))})),e("ember-math-helpers/helpers/tanh",["@ember/component/helper"],(function(){return n(t(1338))})),e("ember-math-helpers/helpers/trunc",["@ember/component/helper"],(function(){return n(t(7553))})),e("ember-resolver",[],(function(){return n(t(710))})),e("tracked-built-ins",["@glimmer/tracking","@ember/debug","ember-tracked-storage-polyfill"],(function(){return n(t(9929))})),e("tracked-toolbox",["@ember/debug","@ember/object","@glimmer/tracking","@glimmer/tracking/primitives/cache"],(function(){return n(t(2419))}))}()},3282:function(e,r){window._eai_r=require,window._eai_d=define}},t={}
|
|
22
22
|
function n(e){var m=t[e]
|
|
23
23
|
if(void 0!==m)return m.exports
|
|
24
24
|
var o=t[e]={exports:{}}
|
|
@@ -35,6 +35,6 @@ var r=(r,t)=>{var m,o,[p,s,l]=t,i=0
|
|
|
35
35
|
if(p.some((r=>0!==e[r]))){for(m in s)n.o(s,m)&&(n.m[m]=s[m])
|
|
36
36
|
if(l)var u=l(n)}for(r&&r(t);i<p.length;i++)o=p[i],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0
|
|
37
37
|
return n.O(u)},t=globalThis.webpackChunk_ember_auto_import_=globalThis.webpackChunk_ember_auto_import_||[]
|
|
38
|
-
t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.O(void 0,[443],(()=>n(
|
|
39
|
-
var m=n.O(void 0,[443],(()=>n(
|
|
38
|
+
t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.O(void 0,[443],(()=>n(3282)))
|
|
39
|
+
var m=n.O(void 0,[443],(()=>n(5167)))
|
|
40
40
|
m=n.O(m),__ember_auto_import__=m})()
|