@jskit-ai/workspaces-web 0.1.41 → 0.1.42
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/package.descriptor.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default Object.freeze({
|
|
2
2
|
packageVersion: 1,
|
|
3
3
|
packageId: "@jskit-ai/workspaces-web",
|
|
4
|
-
version: "0.1.
|
|
4
|
+
version: "0.1.42",
|
|
5
5
|
kind: "runtime",
|
|
6
6
|
description: "Workspace web module: workspace selector, tools widget, workspace surfaces, and members/settings UI.",
|
|
7
7
|
dependsOn: [
|
|
@@ -69,39 +69,93 @@ export default Object.freeze({
|
|
|
69
69
|
outlets: [
|
|
70
70
|
{
|
|
71
71
|
target: "admin-settings:primary-menu",
|
|
72
|
-
defaultLinkComponentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
73
72
|
surfaces: ["admin"],
|
|
74
73
|
source: "templates/src/pages/admin/workspace/settings.vue"
|
|
75
74
|
},
|
|
76
75
|
{
|
|
77
76
|
target: "admin-cog:primary-menu",
|
|
78
|
-
defaultLinkComponentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
79
77
|
surfaces: ["admin"],
|
|
80
78
|
source: "src/client/components/UsersWorkspaceToolsWidget.vue"
|
|
81
79
|
}
|
|
82
80
|
],
|
|
81
|
+
topology: {
|
|
82
|
+
placements: [
|
|
83
|
+
{
|
|
84
|
+
id: "page.section-nav",
|
|
85
|
+
owner: "admin-settings",
|
|
86
|
+
description: "Navigation between workspace admin settings child pages.",
|
|
87
|
+
surfaces: ["admin"],
|
|
88
|
+
variants: {
|
|
89
|
+
compact: {
|
|
90
|
+
outlet: "admin-settings:primary-menu",
|
|
91
|
+
renderers: {
|
|
92
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
medium: {
|
|
96
|
+
outlet: "admin-settings:primary-menu",
|
|
97
|
+
renderers: {
|
|
98
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
expanded: {
|
|
102
|
+
outlet: "admin-settings:primary-menu",
|
|
103
|
+
renderers: {
|
|
104
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: "admin.tools-menu",
|
|
111
|
+
description: "Admin surface tools menu actions.",
|
|
112
|
+
surfaces: ["admin"],
|
|
113
|
+
variants: {
|
|
114
|
+
compact: {
|
|
115
|
+
outlet: "admin-cog:primary-menu",
|
|
116
|
+
renderers: {
|
|
117
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
medium: {
|
|
121
|
+
outlet: "admin-cog:primary-menu",
|
|
122
|
+
renderers: {
|
|
123
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
expanded: {
|
|
127
|
+
outlet: "admin-cog:primary-menu",
|
|
128
|
+
renderers: {
|
|
129
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
},
|
|
83
136
|
contributions: [
|
|
84
137
|
{
|
|
85
138
|
id: "workspaces.workspace.menu.app",
|
|
86
|
-
target: "shell
|
|
139
|
+
target: "shell.primary-nav",
|
|
140
|
+
kind: "link",
|
|
87
141
|
surfaces: ["app"],
|
|
88
142
|
order: 50,
|
|
89
|
-
componentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
90
143
|
when: "auth.authenticated === true",
|
|
91
144
|
source: "mutations.text#workspaces-web-placement-block"
|
|
92
145
|
},
|
|
93
146
|
{
|
|
94
147
|
id: "workspaces.workspace.menu.admin",
|
|
95
|
-
target: "shell
|
|
148
|
+
target: "shell.primary-nav",
|
|
149
|
+
kind: "link",
|
|
96
150
|
surfaces: ["admin"],
|
|
97
151
|
order: 60,
|
|
98
|
-
componentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
99
152
|
when: "auth.authenticated === true",
|
|
100
153
|
source: "mutations.text#workspaces-web-placement-block"
|
|
101
154
|
},
|
|
102
155
|
{
|
|
103
156
|
id: "workspaces.profile.menu.surface-switch",
|
|
104
|
-
target: "auth
|
|
157
|
+
target: "auth.profile-menu",
|
|
158
|
+
kind: "component",
|
|
105
159
|
surfaces: ["*"],
|
|
106
160
|
order: 100,
|
|
107
161
|
componentToken: "workspaces.web.profile.menu.surface-switch-item",
|
|
@@ -110,7 +164,8 @@ export default Object.freeze({
|
|
|
110
164
|
},
|
|
111
165
|
{
|
|
112
166
|
id: "workspaces.workspace.selector",
|
|
113
|
-
target: "shell
|
|
167
|
+
target: "shell.identity",
|
|
168
|
+
kind: "component",
|
|
114
169
|
surfaces: ["*"],
|
|
115
170
|
order: 200,
|
|
116
171
|
componentToken: "workspaces.web.workspace.selector",
|
|
@@ -119,7 +174,8 @@ export default Object.freeze({
|
|
|
119
174
|
},
|
|
120
175
|
{
|
|
121
176
|
id: "workspaces.account.invites.cue",
|
|
122
|
-
target: "shell
|
|
177
|
+
target: "shell.status",
|
|
178
|
+
kind: "component",
|
|
123
179
|
surfaces: ["*"],
|
|
124
180
|
order: 850,
|
|
125
181
|
componentToken: "local.main.account.pending-invites.cue",
|
|
@@ -128,7 +184,9 @@ export default Object.freeze({
|
|
|
128
184
|
},
|
|
129
185
|
{
|
|
130
186
|
id: "workspaces.account.settings.invites",
|
|
131
|
-
target: "
|
|
187
|
+
target: "settings.sections",
|
|
188
|
+
owner: "account-settings",
|
|
189
|
+
kind: "component",
|
|
132
190
|
surfaces: ["account"],
|
|
133
191
|
order: 400,
|
|
134
192
|
componentToken: "local.main.account-settings.section.invites",
|
|
@@ -137,7 +195,8 @@ export default Object.freeze({
|
|
|
137
195
|
},
|
|
138
196
|
{
|
|
139
197
|
id: "workspaces.workspace.tools.widget",
|
|
140
|
-
target: "shell
|
|
198
|
+
target: "shell.status",
|
|
199
|
+
kind: "component",
|
|
141
200
|
surfaces: ["admin"],
|
|
142
201
|
order: 900,
|
|
143
202
|
componentToken: "workspaces.web.workspace.tools.widget",
|
|
@@ -145,7 +204,8 @@ export default Object.freeze({
|
|
|
145
204
|
},
|
|
146
205
|
{
|
|
147
206
|
id: "workspaces.workspace.menu.workspace-settings",
|
|
148
|
-
target: "admin-
|
|
207
|
+
target: "admin.tools-menu",
|
|
208
|
+
kind: "component",
|
|
149
209
|
surfaces: ["admin"],
|
|
150
210
|
order: 100,
|
|
151
211
|
componentToken: "workspaces.web.workspace-settings.menu-item",
|
|
@@ -153,7 +213,8 @@ export default Object.freeze({
|
|
|
153
213
|
},
|
|
154
214
|
{
|
|
155
215
|
id: "workspaces.workspace.menu.members",
|
|
156
|
-
target: "admin-
|
|
216
|
+
target: "admin.tools-menu",
|
|
217
|
+
kind: "component",
|
|
157
218
|
surfaces: ["admin"],
|
|
158
219
|
order: 200,
|
|
159
220
|
componentToken: "workspaces.web.workspace-members.menu-item",
|
|
@@ -166,8 +227,8 @@ export default Object.freeze({
|
|
|
166
227
|
mutations: {
|
|
167
228
|
dependencies: {
|
|
168
229
|
runtime: {
|
|
169
|
-
"@jskit-ai/workspaces-core": "0.1.
|
|
170
|
-
"@jskit-ai/users-web": "0.1.
|
|
230
|
+
"@jskit-ai/workspaces-core": "0.1.42",
|
|
231
|
+
"@jskit-ai/users-web": "0.1.81",
|
|
171
232
|
"vuetify": "^4.0.0"
|
|
172
233
|
},
|
|
173
234
|
dev: {}
|
|
@@ -310,7 +371,7 @@ export default Object.freeze({
|
|
|
310
371
|
position: "bottom",
|
|
311
372
|
skipIfContains: "id: \"workspaces.profile.menu.surface-switch\"",
|
|
312
373
|
value:
|
|
313
|
-
"\naddPlacement({\n id: \"workspaces.profile.menu.surface-switch\",\n target: \"auth
|
|
374
|
+
"\naddPlacement({\n id: \"workspaces.profile.menu.surface-switch\",\n target: \"auth.profile-menu\",\n kind: \"component\",\n surfaces: [\"*\"],\n order: 100,\n componentToken: \"workspaces.web.profile.menu.surface-switch-item\",\n when: ({ auth }) => auth?.authenticated === true\n});\n",
|
|
314
375
|
reason: "Append workspaces-web profile surface switch placement into app-owned placement registry.",
|
|
315
376
|
category: "workspaces-web",
|
|
316
377
|
id: "workspaces-web-profile-surface-switch-placement",
|
|
@@ -324,7 +385,7 @@ export default Object.freeze({
|
|
|
324
385
|
file: "src/placement.js",
|
|
325
386
|
position: "bottom",
|
|
326
387
|
skipIfContains: "id: \"workspaces.workspace.selector\"",
|
|
327
|
-
value: "\naddPlacement({\n id: \"workspaces.workspace.menu.app\",\n target: \"shell
|
|
388
|
+
value: "\naddPlacement({\n id: \"workspaces.workspace.menu.app\",\n target: \"shell.primary-nav\",\n kind: \"link\",\n surfaces: [\"app\"],\n order: 50,\n props: {\n label: \"Home\",\n surface: \"app\",\n scopedSuffix: \"/\",\n unscopedSuffix: \"/\",\n exact: true\n },\n when: ({ auth }) => auth?.authenticated === true\n});\n\naddPlacement({\n id: \"workspaces.workspace.menu.admin\",\n target: \"shell.primary-nav\",\n kind: \"link\",\n surfaces: [\"admin\"],\n order: 60,\n props: {\n label: \"Home\",\n surface: \"admin\",\n scopedSuffix: \"/\",\n unscopedSuffix: \"/\",\n exact: true\n },\n when: ({ auth }) => auth?.authenticated === true\n});\n\naddPlacement({\n id: \"workspaces.workspace.selector\",\n target: \"shell.identity\",\n kind: \"component\",\n surfaces: [\"*\"],\n order: 200,\n componentToken: \"workspaces.web.workspace.selector\",\n props: {\n allowOnNonWorkspaceSurface: true,\n targetSurfaceId: \"app\"\n },\n when: ({ auth }) => auth?.authenticated === true\n});\n\naddPlacement({\n id: \"workspaces.account.invites.cue\",\n target: \"shell.status\",\n kind: \"component\",\n surfaces: [\"*\"],\n order: 850,\n componentToken: \"local.main.account.pending-invites.cue\",\n when: ({ auth }) => auth?.authenticated === true\n});\n\naddPlacement({\n id: \"workspaces.workspace.tools.widget\",\n target: \"shell.status\",\n kind: \"component\",\n surfaces: [\"admin\"],\n order: 900,\n componentToken: \"workspaces.web.workspace.tools.widget\"\n});\n\naddPlacement({\n id: \"workspaces.workspace.menu.workspace-settings\",\n target: \"admin.tools-menu\",\n kind: \"component\",\n surfaces: [\"admin\"],\n order: 100,\n componentToken: \"workspaces.web.workspace-settings.menu-item\"\n});\n\naddPlacement({\n id: \"workspaces.workspace.menu.members\",\n target: \"admin.tools-menu\",\n kind: \"component\",\n surfaces: [\"admin\"],\n order: 200,\n componentToken: \"workspaces.web.workspace-members.menu-item\"\n});\n",
|
|
328
389
|
reason: "Append workspace placement entries into app-owned placement registry.",
|
|
329
390
|
category: "workspaces-web",
|
|
330
391
|
id: "workspaces-web-placement-block",
|
|
@@ -333,13 +394,27 @@ export default Object.freeze({
|
|
|
333
394
|
in: ["personal", "workspaces"]
|
|
334
395
|
}
|
|
335
396
|
},
|
|
397
|
+
{
|
|
398
|
+
op: "append-text",
|
|
399
|
+
file: "src/placementTopology.js",
|
|
400
|
+
position: "bottom",
|
|
401
|
+
skipIfContains: "id: \"admin.tools-menu\"",
|
|
402
|
+
value: "\naddPlacementTopology({\n id: \"page.section-nav\",\n owner: \"admin-settings\",\n description: \"Navigation between workspace admin settings child pages.\",\n surfaces: [\"admin\"],\n variants: {\n compact: {\n outlet: \"admin-settings:primary-menu\",\n renderers: {\n link: \"local.main.ui.surface-aware-menu-link-item\"\n }\n },\n medium: {\n outlet: \"admin-settings:primary-menu\",\n renderers: {\n link: \"local.main.ui.surface-aware-menu-link-item\"\n }\n },\n expanded: {\n outlet: \"admin-settings:primary-menu\",\n renderers: {\n link: \"local.main.ui.surface-aware-menu-link-item\"\n }\n }\n }\n});\n\naddPlacementTopology({\n id: \"admin.tools-menu\",\n description: \"Admin surface tools menu actions.\",\n surfaces: [\"admin\"],\n variants: {\n compact: {\n outlet: \"admin-cog:primary-menu\",\n renderers: {\n link: \"local.main.ui.surface-aware-menu-link-item\"\n }\n },\n medium: {\n outlet: \"admin-cog:primary-menu\",\n renderers: {\n link: \"local.main.ui.surface-aware-menu-link-item\"\n }\n },\n expanded: {\n outlet: \"admin-cog:primary-menu\",\n renderers: {\n link: \"local.main.ui.surface-aware-menu-link-item\"\n }\n }\n }\n});\n",
|
|
403
|
+
reason: "Append workspaces-web admin semantic topology into app-owned placement topology.",
|
|
404
|
+
category: "workspaces-web",
|
|
405
|
+
id: "workspaces-web-admin-placement-topology",
|
|
406
|
+
when: {
|
|
407
|
+
config: "tenancyMode",
|
|
408
|
+
in: ["personal", "workspaces"]
|
|
409
|
+
}
|
|
410
|
+
},
|
|
336
411
|
{
|
|
337
412
|
op: "append-text",
|
|
338
413
|
file: "src/placement.js",
|
|
339
414
|
position: "bottom",
|
|
340
415
|
skipIfContains: "id: \"workspaces.account.settings.invites\"",
|
|
341
416
|
value:
|
|
342
|
-
"\naddPlacement({\n id: \"workspaces.account.settings.invites\",\n target: \"account-settings:
|
|
417
|
+
"\naddPlacement({\n id: \"workspaces.account.settings.invites\",\n target: \"settings.sections\",\n owner: \"account-settings\",\n kind: \"component\",\n surfaces: [\"account\"],\n order: 400,\n componentToken: \"local.main.account-settings.section.invites\",\n props: {\n title: \"Invites\",\n value: \"invites\",\n usesSharedRuntime: false\n },\n when: ({ auth, workspaceInvitesEnabled }) => auth?.authenticated === true && workspaceInvitesEnabled === true\n});\n",
|
|
343
418
|
reason: "Append workspaces-web account settings invites section placement into app-owned placement registry.",
|
|
344
419
|
category: "workspaces-web",
|
|
345
420
|
id: "workspaces-web-account-settings-placement",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jskit-ai/workspaces-web",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.42",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "node --test"
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@tanstack/vue-query": "5.92.12",
|
|
17
17
|
"@mdi/js": "^7.4.47",
|
|
18
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
19
|
-
"@jskit-ai/kernel": "0.1.
|
|
20
|
-
"@jskit-ai/shell-web": "0.1.
|
|
21
|
-
"@jskit-ai/users-core": "0.1.
|
|
22
|
-
"@jskit-ai/users-web": "0.1.
|
|
23
|
-
"@jskit-ai/workspaces-core": "0.1.
|
|
18
|
+
"@jskit-ai/http-runtime": "0.1.65",
|
|
19
|
+
"@jskit-ai/kernel": "0.1.66",
|
|
20
|
+
"@jskit-ai/shell-web": "0.1.65",
|
|
21
|
+
"@jskit-ai/users-core": "0.1.76",
|
|
22
|
+
"@jskit-ai/users-web": "0.1.81",
|
|
23
|
+
"@jskit-ai/workspaces-core": "0.1.42",
|
|
24
24
|
"vuetify": "^4.0.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
@@ -6,7 +6,6 @@ import { ADMIN_COG_OUTLET } from "../../shared/toolsOutletContracts.js";
|
|
|
6
6
|
<template>
|
|
7
7
|
<ShellOutletMenuWidget
|
|
8
8
|
:target="ADMIN_COG_OUTLET.target"
|
|
9
|
-
:default-link-component-token="ADMIN_COG_OUTLET.defaultLinkComponentToken"
|
|
10
9
|
:aria-label="ADMIN_COG_OUTLET.ariaLabel"
|
|
11
10
|
/>
|
|
12
11
|
</template>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
const DEFAULT_COG_LINK_COMPONENT_TOKEN = "local.main.ui.surface-aware-menu-link-item";
|
|
2
|
-
|
|
3
1
|
const ADMIN_COG_OUTLET = Object.freeze({
|
|
4
2
|
target: "admin-cog:primary-menu",
|
|
5
|
-
defaultLinkComponentToken: DEFAULT_COG_LINK_COMPONENT_TOKEN,
|
|
6
3
|
ariaLabel: "Admin cog"
|
|
7
4
|
});
|
|
8
5
|
|
|
9
|
-
export {
|
|
6
|
+
export { ADMIN_COG_OUTLET };
|
|
@@ -15,10 +15,7 @@ import { RouterView } from "vue-router";
|
|
|
15
15
|
<v-row no-gutters>
|
|
16
16
|
<v-col cols="12" md="3" lg="2" class="pr-md-4 mb-4 mb-md-0">
|
|
17
17
|
<v-list nav density="comfortable" rounded="lg" border>
|
|
18
|
-
<ShellOutlet
|
|
19
|
-
target="admin-settings:primary-menu"
|
|
20
|
-
default-link-component-token="local.main.ui.surface-aware-menu-link-item"
|
|
21
|
-
/>
|
|
18
|
+
<ShellOutlet target="admin-settings:primary-menu" />
|
|
22
19
|
</v-list>
|
|
23
20
|
</v-col>
|
|
24
21
|
|
|
@@ -16,6 +16,19 @@ function readOutlets(target = "") {
|
|
|
16
16
|
: [];
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
function findTopology(id, owner = "") {
|
|
20
|
+
const placements = descriptor?.metadata?.ui?.placements?.topology?.placements;
|
|
21
|
+
const normalizedId = String(id || "").trim();
|
|
22
|
+
const normalizedOwner = String(owner || "").trim();
|
|
23
|
+
return Array.isArray(placements)
|
|
24
|
+
? placements.find((entry) => {
|
|
25
|
+
const entryId = String(entry?.id || "").trim();
|
|
26
|
+
const entryOwner = String(entry?.owner || "").trim();
|
|
27
|
+
return entryId === normalizedId && entryOwner === normalizedOwner;
|
|
28
|
+
}) || null
|
|
29
|
+
: null;
|
|
30
|
+
}
|
|
31
|
+
|
|
19
32
|
function findContribution(id) {
|
|
20
33
|
const contributions = descriptor?.metadata?.ui?.placements?.contributions;
|
|
21
34
|
return Array.isArray(contributions)
|
|
@@ -44,7 +57,7 @@ test("workspaces-web admin settings template exposes surface-derived settings ou
|
|
|
44
57
|
);
|
|
45
58
|
|
|
46
59
|
assert.match(source, /target="admin-settings:primary-menu"/);
|
|
47
|
-
assert.
|
|
60
|
+
assert.doesNotMatch(source, /default-link-component-token/);
|
|
48
61
|
assert.match(source, /<RouterView \/>/);
|
|
49
62
|
});
|
|
50
63
|
|
|
@@ -102,7 +115,6 @@ test("workspaces-web descriptor metadata advertises admin settings outlets", ()
|
|
|
102
115
|
[
|
|
103
116
|
{
|
|
104
117
|
target: "admin-settings:primary-menu",
|
|
105
|
-
defaultLinkComponentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
106
118
|
surfaces: ["admin"],
|
|
107
119
|
source: "templates/src/pages/admin/workspace/settings.vue"
|
|
108
120
|
}
|
|
@@ -113,28 +125,78 @@ test("workspaces-web descriptor metadata advertises admin settings outlets", ()
|
|
|
113
125
|
[
|
|
114
126
|
{
|
|
115
127
|
target: "admin-cog:primary-menu",
|
|
116
|
-
defaultLinkComponentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
117
128
|
surfaces: ["admin"],
|
|
118
129
|
source: "src/client/components/UsersWorkspaceToolsWidget.vue"
|
|
119
130
|
}
|
|
120
131
|
]
|
|
121
132
|
);
|
|
133
|
+
assert.deepEqual(findTopology("page.section-nav", "admin-settings"), {
|
|
134
|
+
id: "page.section-nav",
|
|
135
|
+
owner: "admin-settings",
|
|
136
|
+
description: "Navigation between workspace admin settings child pages.",
|
|
137
|
+
surfaces: ["admin"],
|
|
138
|
+
variants: {
|
|
139
|
+
compact: {
|
|
140
|
+
outlet: "admin-settings:primary-menu",
|
|
141
|
+
renderers: {
|
|
142
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
medium: {
|
|
146
|
+
outlet: "admin-settings:primary-menu",
|
|
147
|
+
renderers: {
|
|
148
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
expanded: {
|
|
152
|
+
outlet: "admin-settings:primary-menu",
|
|
153
|
+
renderers: {
|
|
154
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
assert.deepEqual(findTopology("admin.tools-menu"), {
|
|
160
|
+
id: "admin.tools-menu",
|
|
161
|
+
description: "Admin surface tools menu actions.",
|
|
162
|
+
surfaces: ["admin"],
|
|
163
|
+
variants: {
|
|
164
|
+
compact: {
|
|
165
|
+
outlet: "admin-cog:primary-menu",
|
|
166
|
+
renderers: {
|
|
167
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
medium: {
|
|
171
|
+
outlet: "admin-cog:primary-menu",
|
|
172
|
+
renderers: {
|
|
173
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
expanded: {
|
|
177
|
+
outlet: "admin-cog:primary-menu",
|
|
178
|
+
renderers: {
|
|
179
|
+
link: "local.main.ui.surface-aware-menu-link-item"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
122
184
|
assert.equal(findContribution("workspaces.workspace.settings.general"), null);
|
|
123
185
|
assert.deepEqual(findContribution("workspaces.workspace.menu.app"), {
|
|
124
186
|
id: "workspaces.workspace.menu.app",
|
|
125
|
-
target: "shell
|
|
187
|
+
target: "shell.primary-nav",
|
|
188
|
+
kind: "link",
|
|
126
189
|
surfaces: ["app"],
|
|
127
190
|
order: 50,
|
|
128
|
-
componentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
129
191
|
when: "auth.authenticated === true",
|
|
130
192
|
source: "mutations.text#workspaces-web-placement-block"
|
|
131
193
|
});
|
|
132
194
|
assert.deepEqual(findContribution("workspaces.workspace.menu.admin"), {
|
|
133
195
|
id: "workspaces.workspace.menu.admin",
|
|
134
|
-
target: "shell
|
|
196
|
+
target: "shell.primary-nav",
|
|
197
|
+
kind: "link",
|
|
135
198
|
surfaces: ["admin"],
|
|
136
199
|
order: 60,
|
|
137
|
-
componentToken: "local.main.ui.surface-aware-menu-link-item",
|
|
138
200
|
when: "auth.authenticated === true",
|
|
139
201
|
source: "mutations.text#workspaces-web-placement-block"
|
|
140
202
|
});
|
|
@@ -142,7 +204,8 @@ test("workspaces-web descriptor metadata advertises admin settings outlets", ()
|
|
|
142
204
|
assert.match(findTextMutation("workspaces-web-placement-block")?.value || "", /id: "workspaces\.workspace\.menu\.admin"[\s\S]*surfaces: \["admin"\][\s\S]*label: "Home"/);
|
|
143
205
|
assert.deepEqual(findContribution("workspaces.profile.menu.surface-switch"), {
|
|
144
206
|
id: "workspaces.profile.menu.surface-switch",
|
|
145
|
-
target: "auth
|
|
207
|
+
target: "auth.profile-menu",
|
|
208
|
+
kind: "component",
|
|
146
209
|
surfaces: ["*"],
|
|
147
210
|
order: 100,
|
|
148
211
|
componentToken: "workspaces.web.profile.menu.surface-switch-item",
|
|
@@ -151,7 +214,8 @@ test("workspaces-web descriptor metadata advertises admin settings outlets", ()
|
|
|
151
214
|
});
|
|
152
215
|
assert.deepEqual(findContribution("workspaces.workspace.selector"), {
|
|
153
216
|
id: "workspaces.workspace.selector",
|
|
154
|
-
target: "shell
|
|
217
|
+
target: "shell.identity",
|
|
218
|
+
kind: "component",
|
|
155
219
|
surfaces: ["*"],
|
|
156
220
|
order: 200,
|
|
157
221
|
componentToken: "workspaces.web.workspace.selector",
|
|
@@ -160,7 +224,9 @@ test("workspaces-web descriptor metadata advertises admin settings outlets", ()
|
|
|
160
224
|
});
|
|
161
225
|
assert.deepEqual(findContribution("workspaces.account.settings.invites"), {
|
|
162
226
|
id: "workspaces.account.settings.invites",
|
|
163
|
-
target: "
|
|
227
|
+
target: "settings.sections",
|
|
228
|
+
owner: "account-settings",
|
|
229
|
+
kind: "component",
|
|
164
230
|
surfaces: ["account"],
|
|
165
231
|
order: 400,
|
|
166
232
|
componentToken: "local.main.account-settings.section.invites",
|
|
@@ -168,8 +234,15 @@ test("workspaces-web descriptor metadata advertises admin settings outlets", ()
|
|
|
168
234
|
source: "mutations.text#workspaces-web-account-settings-placement"
|
|
169
235
|
});
|
|
170
236
|
assert.match(findTextMutation("workspaces-web-account-settings-placement")?.value || "", /id: "workspaces\.account\.settings\.invites"/);
|
|
171
|
-
assert.match(findTextMutation("workspaces-web-account-settings-placement")?.value || "", /target: "
|
|
237
|
+
assert.match(findTextMutation("workspaces-web-account-settings-placement")?.value || "", /target: "settings\.sections"/);
|
|
238
|
+
assert.match(findTextMutation("workspaces-web-account-settings-placement")?.value || "", /owner: "account-settings"/);
|
|
172
239
|
assert.match(findTextMutation("workspaces-web-account-settings-placement")?.value || "", /componentToken: "local\.main\.account-settings\.section\.invites"/);
|
|
240
|
+
assert.equal(findTextMutation("workspaces-web-admin-placement-topology")?.file, "src/placementTopology.js");
|
|
241
|
+
assert.match(findTextMutation("workspaces-web-admin-placement-topology")?.value || "", /id: "page\.section-nav"/);
|
|
242
|
+
assert.match(findTextMutation("workspaces-web-admin-placement-topology")?.value || "", /owner: "admin-settings"/);
|
|
243
|
+
assert.match(findTextMutation("workspaces-web-admin-placement-topology")?.value || "", /outlet: "admin-settings:primary-menu"/);
|
|
244
|
+
assert.match(findTextMutation("workspaces-web-admin-placement-topology")?.value || "", /id: "admin\.tools-menu"/);
|
|
245
|
+
assert.match(findTextMutation("workspaces-web-admin-placement-topology")?.value || "", /outlet: "admin-cog:primary-menu"/);
|
|
173
246
|
assert.deepEqual(findFileMutation("users-web-page-admin-workspace-settings"), {
|
|
174
247
|
from: "templates/src/pages/admin/workspace/settings/index.vue",
|
|
175
248
|
toSurface: "admin",
|