@nvidia-elements/core 2.23.6 → 2.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/accordion/accordion-group.js.map +1 -1
- package/dist/accordion/accordion.js.map +1 -1
- package/dist/accordion/accordion2.js +4 -4
- package/dist/alert/alert-group2.js +1 -1
- package/dist/alert/alert2.js +1 -1
- package/dist/avatar/avatar-group2.js +1 -1
- package/dist/avatar/avatar2.js +1 -1
- package/dist/badge/badge2.js +1 -1
- package/dist/breadcrumb/breadcrumb2.js +1 -1
- package/dist/bundle.d.ts +2 -0
- package/dist/bundles/index.d.ts +323 -56
- package/dist/bundles/index.js +9 -9
- package/dist/button/button2.js +1 -1
- package/dist/button-group/button-group2.js +1 -1
- package/dist/card/card2.js +4 -4
- package/dist/chat-message/chat-message2.js +1 -1
- package/dist/checkbox/checkbox-group2.js +1 -1
- package/dist/checkbox/checkbox2.js +1 -1
- package/dist/color/color2.js +1 -1
- package/dist/combobox/combobox2.js +1 -1
- package/dist/copy-button/copy-button2.js +1 -1
- package/dist/custom-elements-jsx.d.ts +167 -1
- package/dist/custom-elements-vue.d.ts +161 -1
- package/dist/custom-elements.json +4211 -233
- package/dist/dashboard/controllers/arrangement.controller.d.ts +30 -0
- package/dist/dashboard/controllers/arrangement.controller.js +68 -0
- package/dist/dashboard/controllers/arrangement.controller.js.map +1 -0
- package/dist/dashboard/controllers/command.controller.d.ts +28 -0
- package/dist/dashboard/controllers/command.controller.js +69 -0
- package/dist/dashboard/controllers/command.controller.js.map +1 -0
- package/dist/dashboard/controllers/composition.controller.d.ts +61 -0
- package/dist/dashboard/controllers/composition.controller.js +285 -0
- package/dist/dashboard/controllers/composition.controller.js.map +1 -0
- package/dist/dashboard/controllers/fullscreen.controller.d.ts +23 -0
- package/dist/dashboard/controllers/fullscreen.controller.js +46 -0
- package/dist/dashboard/controllers/fullscreen.controller.js.map +1 -0
- package/dist/dashboard/controllers/interaction.controller.d.ts +53 -0
- package/dist/dashboard/controllers/interaction.controller.js +407 -0
- package/dist/dashboard/controllers/interaction.controller.js.map +1 -0
- package/dist/dashboard/controllers/measurement.controller.d.ts +28 -0
- package/dist/dashboard/controllers/measurement.controller.js +77 -0
- package/dist/dashboard/controllers/measurement.controller.js.map +1 -0
- package/dist/dashboard/dashboard.d.ts +83 -0
- package/dist/dashboard/dashboard.examples.js +5 -0
- package/dist/dashboard/dashboard.examples.js.map +1 -0
- package/dist/dashboard/dashboard.examples.json +138 -0
- package/dist/dashboard/dashboard.js +5 -0
- package/dist/dashboard/dashboard.js.map +1 -0
- package/dist/dashboard/dashboard.types.d.ts +33 -0
- package/dist/dashboard/dashboard2.js +352 -0
- package/dist/dashboard/dashboard2.js.map +1 -0
- package/dist/dashboard/define.d.ts +10 -0
- package/dist/dashboard/define.js +9 -0
- package/dist/dashboard/define.js.map +1 -0
- package/dist/dashboard/index.d.ts +8 -0
- package/dist/dashboard/index.js +6 -0
- package/dist/dashboard/panel/panel.d.ts +88 -0
- package/dist/dashboard/panel/panel.js +5 -0
- package/dist/dashboard/panel/panel.js.map +1 -0
- package/dist/dashboard/panel/panel2.js +110 -0
- package/dist/dashboard/panel/panel2.js.map +1 -0
- package/dist/dashboard/panel-content/panel-content.d.ts +20 -0
- package/dist/dashboard/panel-content/panel-content.js +5 -0
- package/dist/dashboard/panel-content/panel-content.js.map +1 -0
- package/dist/dashboard/panel-content/panel-content2.js +22 -0
- package/dist/dashboard/panel-content/panel-content2.js.map +1 -0
- package/dist/dashboard/panel-footer/panel-footer.d.ts +25 -0
- package/dist/dashboard/panel-footer/panel-footer.js +5 -0
- package/dist/dashboard/panel-footer/panel-footer.js.map +1 -0
- package/dist/dashboard/panel-footer/panel-footer2.js +28 -0
- package/dist/dashboard/panel-footer/panel-footer2.js.map +1 -0
- package/dist/dashboard/panel-header/panel-header.d.ts +27 -0
- package/dist/dashboard/panel-header/panel-header.js +5 -0
- package/dist/dashboard/panel-header/panel-header.js.map +1 -0
- package/dist/dashboard/panel-header/panel-header2.js +28 -0
- package/dist/dashboard/panel-header/panel-header2.js.map +1 -0
- package/dist/dashboard/utils/action.utils.d.ts +17 -0
- package/dist/dashboard/utils/action.utils.js +144 -0
- package/dist/dashboard/utils/action.utils.js.map +1 -0
- package/dist/dashboard/utils/geometry.utils.d.ts +110 -0
- package/dist/dashboard/utils/geometry.utils.js +208 -0
- package/dist/dashboard/utils/geometry.utils.js.map +1 -0
- package/dist/dashboard/utils/intent.types.d.ts +67 -0
- package/dist/dashboard/utils/layout.utils.d.ts +20 -0
- package/dist/dashboard/utils/layout.utils.js +224 -0
- package/dist/dashboard/utils/layout.utils.js.map +1 -0
- package/dist/dashboard/utils/movement.utils.d.ts +7 -0
- package/dist/dashboard/utils/movement.utils.js +15 -0
- package/dist/dashboard/utils/movement.utils.js.map +1 -0
- package/dist/dashboard/utils/mutation.utils.d.ts +2 -0
- package/dist/dashboard/utils/mutation.utils.js +19 -0
- package/dist/dashboard/utils/mutation.utils.js.map +1 -0
- package/dist/dashboard/utils/packing.utils.d.ts +13 -0
- package/dist/dashboard/utils/packing.utils.js +421 -0
- package/dist/dashboard/utils/packing.utils.js.map +1 -0
- package/dist/data.html.json +141 -1
- package/dist/date/date2.js +1 -1
- package/dist/datetime/datetime2.js +1 -1
- package/dist/dialog/dialog-footer2.js +1 -1
- package/dist/dialog/dialog-header2.js +1 -1
- package/dist/dialog/dialog2.js +1 -1
- package/dist/divider/divider2.js +1 -1
- package/dist/dot/dot2.js +1 -1
- package/dist/drag-handle/drag-handle2.js +1 -1
- package/dist/drawer/drawer-content2.js +1 -1
- package/dist/drawer/drawer-footer2.js +1 -1
- package/dist/drawer/drawer-header2.js +1 -1
- package/dist/drawer/drawer2.js +1 -1
- package/dist/dropdown/dropdown-footer2.js +1 -1
- package/dist/dropdown/dropdown-header2.js +1 -1
- package/dist/dropdown/dropdown.examples.js.map +1 -1
- package/dist/dropdown/dropdown2.js +1 -1
- package/dist/dropdown-group/dropdown-group.js +1 -1
- package/dist/dropzone/dropzone2.js +1 -1
- package/dist/file/file2.js +1 -1
- package/dist/format-bytes/format-bytes2.js +1 -1
- package/dist/format-datetime/format-datetime2.js +1 -1
- package/dist/format-number/format-number2.js +1 -1
- package/dist/format-relative-time/format-relative-time2.js +1 -1
- package/dist/format-truncate/format-truncate2.js +1 -1
- package/dist/forms/control/control2.js +1 -1
- package/dist/forms/control-group/control-group2.js +1 -1
- package/dist/forms/control-message/control-message2.js +1 -1
- package/dist/gauge/gauge2.js +1 -1
- package/dist/ghost/ghost2.js +1 -1
- package/dist/grid/cell/cell2.js +1 -1
- package/dist/grid/column/column2.js +1 -1
- package/dist/grid/footer/footer2.js +1 -1
- package/dist/grid/grid.js.map +1 -1
- package/dist/grid/grid2.js +1 -1
- package/dist/grid/header/header2.js +1 -1
- package/dist/grid/placeholder/placeholder2.js +1 -1
- package/dist/grid/row/row2.js +1 -1
- package/dist/icon/icon2.js +1 -1
- package/dist/icon-button/icon-button2.js +1 -1
- package/dist/iframe/iframe2.js +1 -1
- package/dist/index.js +1 -1
- package/dist/input/input-group2.js +1 -1
- package/dist/input/input2.js +1 -1
- package/dist/internal/controllers/native-fullscreen.controller.d.ts +13 -0
- package/dist/internal/controllers/native-fullscreen.controller.js +73 -0
- package/dist/internal/controllers/native-fullscreen.controller.js.map +1 -0
- package/dist/internal/index.d.ts +1 -0
- package/dist/internal/index.js +59 -57
- package/dist/internal/index.js.map +1 -1
- package/dist/joystick/joystick2.js +1 -1
- package/dist/logo/logo2.js +1 -1
- package/dist/menu/menu-group2.js +1 -1
- package/dist/menu/menu-item2.js +1 -1
- package/dist/menu/menu2.js +1 -1
- package/dist/month/month2.js +1 -1
- package/dist/notification/notification-group2.js +1 -1
- package/dist/notification/notification2.js +1 -1
- package/dist/page/page-panel/page-panel-content2.js +1 -1
- package/dist/page/page-panel/page-panel-footer2.js +1 -1
- package/dist/page/page-panel/page-panel-header2.js +1 -1
- package/dist/page/page-panel/page-panel2.js +1 -1
- package/dist/page/page2.js +1 -1
- package/dist/page-header/page-header2.js +1 -1
- package/dist/page-loader/page-loader2.js +1 -1
- package/dist/pagination/pagination2.js +1 -1
- package/dist/panel/panel2.js +4 -4
- package/dist/password/password2.js +1 -1
- package/dist/preferences-input/preferences-input2.js +1 -1
- package/dist/progress-bar/progress-bar2.js +1 -1
- package/dist/progress-dot/progress-dot2.js +1 -1
- package/dist/progress-ring/progress-ring2.js +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip2.js +1 -1
- package/dist/pulse/pulse2.js +1 -1
- package/dist/radio/radio-group2.js +1 -1
- package/dist/radio/radio2.js +1 -1
- package/dist/range/range2.js +1 -1
- package/dist/resize-handle/resize-handle2.js +1 -1
- package/dist/search/search2.js +1 -1
- package/dist/select/select2.js +1 -1
- package/dist/skeleton/skeleton2.js +1 -1
- package/dist/sort-button/sort-button2.js +1 -1
- package/dist/sparkline/sparkline2.js +1 -1
- package/dist/star-rating/star-rating2.js +1 -1
- package/dist/steps/steps2.js +2 -2
- package/dist/switch/switch-group2.js +1 -1
- package/dist/switch/switch2.js +1 -1
- package/dist/tabs/tabs-group2.js +1 -1
- package/dist/tabs/tabs-item-group2.js +1 -1
- package/dist/tabs/tabs2.js +2 -2
- package/dist/tag/tag2.js +1 -1
- package/dist/textarea/textarea2.js +1 -1
- package/dist/time/time2.js +1 -1
- package/dist/toast/toast2.js +1 -1
- package/dist/toggletip/toggletip-footer2.js +1 -1
- package/dist/toggletip/toggletip-header2.js +1 -1
- package/dist/toggletip/toggletip2.js +1 -1
- package/dist/toolbar/toolbar2.js +1 -1
- package/dist/tooltip/tooltip2.js +1 -1
- package/dist/tree/tree-node2.js +1 -1
- package/dist/tree/tree2.js +1 -1
- package/dist/week/week2.js +1 -1
- package/dist/workspace/controllers/workspace-fullscreen.controller.d.ts +2 -4
- package/dist/workspace/controllers/workspace-fullscreen.controller.js +17 -47
- package/dist/workspace/controllers/workspace-fullscreen.controller.js.map +1 -1
- package/dist/workspace/panel/panel2.js +1 -1
- package/dist/workspace/panel-content/panel-content2.js +1 -1
- package/dist/workspace/panel-footer/panel-footer2.js +1 -1
- package/dist/workspace/panel-header/panel-header2.js +1 -1
- package/dist/workspace/workspace.js.map +1 -1
- package/dist/workspace/workspace2.js +1 -1
- package/package.json +16 -4
package/dist/page/page2.js
CHANGED
package/dist/panel/panel2.js
CHANGED
|
@@ -26,7 +26,7 @@ var g = {
|
|
|
26
26
|
static {
|
|
27
27
|
this.metadata = {
|
|
28
28
|
tag: "nve-panel-header",
|
|
29
|
-
version: "2.
|
|
29
|
+
version: "2.24.0"
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
render() {
|
|
@@ -42,7 +42,7 @@ var g = {
|
|
|
42
42
|
static {
|
|
43
43
|
this.metadata = {
|
|
44
44
|
tag: "nve-panel-content",
|
|
45
|
-
version: "2.
|
|
45
|
+
version: "2.24.0"
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
render() {
|
|
@@ -55,7 +55,7 @@ var g = {
|
|
|
55
55
|
static {
|
|
56
56
|
this.metadata = {
|
|
57
57
|
tag: "nve-panel-footer",
|
|
58
|
-
version: "2.
|
|
58
|
+
version: "2.24.0"
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
@@ -74,7 +74,7 @@ var g = {
|
|
|
74
74
|
static {
|
|
75
75
|
this.metadata = {
|
|
76
76
|
tag: "nve-panel",
|
|
77
|
-
version: "2.
|
|
77
|
+
version: "2.24.0"
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
static {
|
package/dist/pulse/pulse2.js
CHANGED
package/dist/radio/radio2.js
CHANGED
package/dist/range/range2.js
CHANGED
package/dist/search/search2.js
CHANGED
package/dist/select/select2.js
CHANGED
package/dist/steps/steps2.js
CHANGED
|
@@ -23,7 +23,7 @@ var v = class extends m(l) {
|
|
|
23
23
|
static {
|
|
24
24
|
this.metadata = {
|
|
25
25
|
tag: "nve-steps-item",
|
|
26
|
-
version: "2.
|
|
26
|
+
version: "2.24.0",
|
|
27
27
|
parents: ["nve-steps"]
|
|
28
28
|
};
|
|
29
29
|
}
|
|
@@ -69,7 +69,7 @@ var y = class extends l {
|
|
|
69
69
|
static {
|
|
70
70
|
this.metadata = {
|
|
71
71
|
tag: "nve-steps",
|
|
72
|
-
version: "2.
|
|
72
|
+
version: "2.24.0",
|
|
73
73
|
children: ["nve-steps-item"]
|
|
74
74
|
};
|
|
75
75
|
}
|
package/dist/switch/switch2.js
CHANGED
package/dist/tabs/tabs-group2.js
CHANGED
package/dist/tabs/tabs2.js
CHANGED
|
@@ -21,7 +21,7 @@ var y = class extends _(p) {
|
|
|
21
21
|
static {
|
|
22
22
|
this.metadata = {
|
|
23
23
|
tag: "nve-tabs-item",
|
|
24
|
-
version: "2.
|
|
24
|
+
version: "2.24.0",
|
|
25
25
|
parents: ["nve-tabs", "nve-tabs-item-group"]
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -65,7 +65,7 @@ var b = class extends p {
|
|
|
65
65
|
static {
|
|
66
66
|
this.metadata = {
|
|
67
67
|
tag: "nve-tabs",
|
|
68
|
-
version: "2.
|
|
68
|
+
version: "2.24.0",
|
|
69
69
|
children: ["nve-tabs-item", "nve-tabs-item-group"]
|
|
70
70
|
};
|
|
71
71
|
}
|
package/dist/tag/tag2.js
CHANGED
package/dist/time/time2.js
CHANGED
package/dist/toast/toast2.js
CHANGED
package/dist/toolbar/toolbar2.js
CHANGED
package/dist/tooltip/tooltip2.js
CHANGED
package/dist/tree/tree-node2.js
CHANGED
package/dist/tree/tree2.js
CHANGED
package/dist/week/week2.js
CHANGED
|
@@ -3,19 +3,17 @@ interface WorkspaceFullscreenHost extends HTMLElement, ReactiveControllerHost {
|
|
|
3
3
|
readonly fullscreenable: boolean;
|
|
4
4
|
}
|
|
5
5
|
interface WorkspaceFullscreenDelegate {
|
|
6
|
-
readonly getGroup: (targetPanelId: string) => string[];
|
|
6
|
+
readonly getGroup: (targetPanelId: string) => readonly string[];
|
|
7
7
|
readonly cancelInteractions: () => void;
|
|
8
8
|
readonly invalidateCommandAvailability: () => void;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
10
|
+
/** Selects the fullscreen group and preserves surviving companions when its anchor disappears. */
|
|
11
11
|
export declare class WorkspaceFullscreenController {
|
|
12
12
|
#private;
|
|
13
13
|
constructor(host: WorkspaceFullscreenHost, delegate: WorkspaceFullscreenDelegate);
|
|
14
14
|
get active(): boolean;
|
|
15
15
|
get targetPanelId(): string | undefined;
|
|
16
16
|
get canExit(): boolean;
|
|
17
|
-
hostConnected(): void;
|
|
18
|
-
hostDisconnected(): void;
|
|
19
17
|
hostUpdate(): void;
|
|
20
18
|
isSelectedGroup(targetPanelId: string): boolean;
|
|
21
19
|
canEnter(targetPanelId: string): boolean;
|
|
@@ -1,28 +1,22 @@
|
|
|
1
|
+
import { NativeFullscreenController as e } from "../../internal/controllers/native-fullscreen.controller.js";
|
|
1
2
|
// src/workspace/controllers/workspace-fullscreen.controller.ts
|
|
2
|
-
var
|
|
3
|
+
var t = class {
|
|
3
4
|
#e;
|
|
4
5
|
#t;
|
|
5
6
|
#n;
|
|
6
7
|
#r;
|
|
7
8
|
#i = [];
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.#e = e, this.#t = t, e.addController(this);
|
|
9
|
+
constructor(t, n) {
|
|
10
|
+
this.#e = t, this.#t = n, this.#n = new e(t, this.#a), t.addController(this);
|
|
11
11
|
}
|
|
12
12
|
get active() {
|
|
13
|
-
return this.#r !== void 0 && this.#
|
|
13
|
+
return this.#r !== void 0 && this.#n.active;
|
|
14
14
|
}
|
|
15
15
|
get targetPanelId() {
|
|
16
16
|
return this.active ? this.#r : void 0;
|
|
17
17
|
}
|
|
18
18
|
get canExit() {
|
|
19
|
-
return this.#r !== void 0;
|
|
20
|
-
}
|
|
21
|
-
hostConnected() {
|
|
22
|
-
this.#n = this.#e.ownerDocument, this.#n.addEventListener("fullscreenchange", this.#l);
|
|
23
|
-
}
|
|
24
|
-
hostDisconnected() {
|
|
25
|
-
this.#n?.removeEventListener("fullscreenchange", this.#l), this.#n = void 0, this.exit();
|
|
19
|
+
return this.#r !== void 0 && this.#n.canExit;
|
|
26
20
|
}
|
|
27
21
|
hostUpdate() {
|
|
28
22
|
if (!this.#r) return;
|
|
@@ -32,53 +26,29 @@ var e = class {
|
|
|
32
26
|
return;
|
|
33
27
|
}
|
|
34
28
|
let t = this.#i.find((e) => this.#t.getGroup(e).length);
|
|
35
|
-
t ? (this.#r = t, this.#i = this.#t.getGroup(t), this.#
|
|
29
|
+
t ? (this.#r = t, this.#i = this.#t.getGroup(t), this.#o()) : this.exit();
|
|
36
30
|
}
|
|
37
31
|
isSelectedGroup(e) {
|
|
38
32
|
return this.#r !== void 0 && this.#t.getGroup(e).includes(this.#r);
|
|
39
33
|
}
|
|
40
34
|
canEnter(e) {
|
|
41
|
-
return this.isSelectedGroup(e) || !this.#e.fullscreenable || !this.#t.getGroup(e).length ? !1 : this
|
|
35
|
+
return this.isSelectedGroup(e) || !this.#e.fullscreenable || !this.#t.getGroup(e).length ? !1 : this.#n.canEnter;
|
|
42
36
|
}
|
|
43
37
|
enter(e) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
this.#t.cancelInteractions(), this.#r = e, this.#i = t, this.#t.invalidateCommandAvailability(), n || this.#o();
|
|
38
|
+
if (!this.canEnter(e)) return;
|
|
39
|
+
let t = this.#t.getGroup(e), n = this.#r !== void 0;
|
|
40
|
+
this.#t.cancelInteractions(), this.#r = e, this.#i = t, n ? this.#o() : this.#n.enter();
|
|
48
41
|
}
|
|
49
42
|
exit() {
|
|
50
|
-
this.#
|
|
51
|
-
}
|
|
52
|
-
async #o() {
|
|
53
|
-
let e = this.#e.requestFullscreen();
|
|
54
|
-
this.#a = e;
|
|
55
|
-
try {
|
|
56
|
-
await e, this.#a === e ? this.#l() : !this.#r && this.#c() && this.exit();
|
|
57
|
-
} catch {
|
|
58
|
-
this.#a === e && this.#u();
|
|
59
|
-
} finally {
|
|
60
|
-
this.#a === e && (this.#a = void 0);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async #s() {
|
|
64
|
-
try {
|
|
65
|
-
await this.#e.ownerDocument.exitFullscreen();
|
|
66
|
-
} catch {
|
|
67
|
-
this.#l();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
#c() {
|
|
71
|
-
let e = this.#e.getRootNode();
|
|
72
|
-
return (e instanceof ShadowRoot ? e.fullscreenElement : this.#e.ownerDocument.fullscreenElement) === this.#e;
|
|
43
|
+
this.#n.exit();
|
|
73
44
|
}
|
|
74
|
-
#
|
|
75
|
-
this.#
|
|
45
|
+
#a = () => {
|
|
46
|
+
this.#n.canExit || (this.#r = void 0, this.#i = []), this.#o();
|
|
76
47
|
};
|
|
77
|
-
#
|
|
78
|
-
|
|
79
|
-
this.#a = void 0, this.#r = void 0, this.#i = [], e && this.#t.invalidateCommandAvailability(), this.#e.requestUpdate();
|
|
48
|
+
#o() {
|
|
49
|
+
this.#t.invalidateCommandAvailability(), this.#e.requestUpdate();
|
|
80
50
|
}
|
|
81
51
|
};
|
|
82
|
-
export {
|
|
52
|
+
export { t as WorkspaceFullscreenController };
|
|
83
53
|
|
|
84
54
|
//# sourceMappingURL=workspace-fullscreen.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-fullscreen.controller.js","names":["WorkspaceFullscreenController","#host","host","#delegate","delegate","#
|
|
1
|
+
{"version":3,"file":"workspace-fullscreen.controller.js","names":["WorkspaceFullscreenController","#host","host","#delegate","delegate","#native","NativeFullscreenController","#nativeChanged","#targetPanelId","groupPanelIds","#groupPanelIds","fallback","id","#invalidate","targetPanelId","switching"],"sources":["../../../src/workspace/controllers/workspace-fullscreen.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveControllerHost } from 'lit';\n\nimport { NativeFullscreenController } from '@nvidia-elements/core/internal';\n\ninterface WorkspaceFullscreenHost extends HTMLElement, ReactiveControllerHost {\n readonly fullscreenable: boolean;\n}\n\ninterface WorkspaceFullscreenDelegate {\n readonly getGroup: (targetPanelId: string) => readonly string[];\n readonly cancelInteractions: () => void;\n readonly invalidateCommandAvailability: () => void;\n}\n\n/** Selects the fullscreen group and preserves surviving companions when its anchor disappears. */\nexport class WorkspaceFullscreenController {\n readonly #host: WorkspaceFullscreenHost;\n readonly #delegate: WorkspaceFullscreenDelegate;\n readonly #native: NativeFullscreenController;\n #targetPanelId?: string;\n #groupPanelIds: readonly string[] = [];\n\n constructor(host: WorkspaceFullscreenHost, delegate: WorkspaceFullscreenDelegate) {\n this.#host = host;\n this.#delegate = delegate;\n this.#native = new NativeFullscreenController(host, this.#nativeChanged);\n host.addController(this);\n }\n\n get active() {\n return this.#targetPanelId !== undefined && this.#native.active;\n }\n\n get targetPanelId() {\n return this.active ? this.#targetPanelId : undefined;\n }\n\n get canExit() {\n return this.#targetPanelId !== undefined && this.#native.canExit;\n }\n\n hostUpdate() {\n if (!this.#targetPanelId) return;\n const groupPanelIds = this.#delegate.getGroup(this.#targetPanelId);\n if (groupPanelIds.length) {\n this.#groupPanelIds = groupPanelIds;\n return;\n }\n const fallback = this.#groupPanelIds.find(id => this.#delegate.getGroup(id).length);\n if (fallback) {\n this.#targetPanelId = fallback;\n this.#groupPanelIds = this.#delegate.getGroup(fallback);\n this.#invalidate();\n } else this.exit();\n }\n\n isSelectedGroup(targetPanelId: string) {\n return this.#targetPanelId !== undefined && this.#delegate.getGroup(targetPanelId).includes(this.#targetPanelId);\n }\n\n canEnter(targetPanelId: string) {\n if (\n this.isSelectedGroup(targetPanelId) ||\n !this.#host.fullscreenable ||\n !this.#delegate.getGroup(targetPanelId).length\n )\n return false;\n return this.#native.canEnter;\n }\n\n enter(targetPanelId: string) {\n if (!this.canEnter(targetPanelId)) return;\n\n const groupPanelIds = this.#delegate.getGroup(targetPanelId);\n const switching = this.#targetPanelId !== undefined;\n this.#delegate.cancelInteractions();\n this.#targetPanelId = targetPanelId;\n this.#groupPanelIds = groupPanelIds;\n if (switching) this.#invalidate();\n else this.#native.enter();\n }\n\n exit() {\n this.#native.exit();\n }\n\n #nativeChanged = () => {\n if (!this.#native.canExit) {\n this.#targetPanelId = undefined;\n this.#groupPanelIds = [];\n }\n this.#invalidate();\n };\n\n #invalidate() {\n this.#delegate.invalidateCommandAvailability();\n this.#host.requestUpdate();\n }\n}\n"],"mappings":";;AAkBA,IAAaA,IAAb,MAA2C;CACzC;CACA;CACA;CACA;CACA,KAAoC,CAAC;CAErC,YAAY,GAA+B,GAAuC;EAIhF,AAHA,KAAKC,KAAQC,GACb,KAAKC,KAAYC,GACjB,KAAKC,KAAU,IAAIC,EAA2BJ,GAAM,KAAKK,EAAc,GACvEL,EAAK,cAAc,IAAI;CACzB;CAEA,IAAI,SAAS;EACX,OAAO,KAAKM,OAAmB,KAAA,KAAa,KAAKH,GAAQ;CAC3D;CAEA,IAAI,gBAAgB;EAClB,OAAO,KAAK,SAAS,KAAKG,KAAiB,KAAA;CAC7C;CAEA,IAAI,UAAU;EACZ,OAAO,KAAKA,OAAmB,KAAA,KAAa,KAAKH,GAAQ;CAC3D;CAEA,aAAa;EACX,IAAI,CAAC,KAAKG,IAAgB;EAC1B,IAAMC,IAAgB,KAAKN,GAAU,SAAS,KAAKK,EAAc;EACjE,IAAIC,EAAc,QAAQ;GACxB,KAAKC,KAAiBD;GACtB;EACF;EACA,IAAME,IAAW,KAAKD,GAAe,MAAK,MAAM,KAAKP,GAAU,SAASS,CAAE,CAAC,CAAC,MAAM;EAClF,AAAID,KACF,KAAKH,KAAiBG,GACtB,KAAKD,KAAiB,KAAKP,GAAU,SAASQ,CAAQ,GACtD,KAAKE,GAAY,KACZ,KAAK,KAAK;CACnB;CAEA,gBAAgB,GAAuB;EACrC,OAAO,KAAKL,OAAmB,KAAA,KAAa,KAAKL,GAAU,SAASW,CAAa,CAAC,CAAC,SAAS,KAAKN,EAAc;CACjH;CAEA,SAAS,GAAuB;EAO9B,OALE,KAAK,gBAAgBM,CAAa,KAClC,CAAC,KAAKb,GAAM,kBACZ,CAAC,KAAKE,GAAU,SAASW,CAAa,CAAC,CAAC,SAEjC,KACF,KAAKT,GAAQ;CACtB;CAEA,MAAM,GAAuB;EAC3B,IAAI,CAAC,KAAK,SAASS,CAAa,GAAG;EAEnC,IAAML,IAAgB,KAAKN,GAAU,SAASW,CAAa,GACrDC,IAAY,KAAKP,OAAmB,KAAA;EAI1C,AAHA,KAAKL,GAAU,mBAAmB,GAClC,KAAKK,KAAiBM,GACtB,KAAKJ,KAAiBD,GAClBM,IAAW,KAAKF,GAAY,IAC3B,KAAKR,GAAQ,MAAM;CAC1B;CAEA,OAAO;EACL,KAAKA,GAAQ,KAAK;CACpB;CAEA,WAAuB;EAKrB,AAJK,KAAKA,GAAQ,YAChB,KAAKG,KAAiB,KAAA,GACtB,KAAKE,KAAiB,CAAC,IAEzB,KAAKG,GAAY;CACnB;CAEA,KAAc;EAEZ,AADA,KAAKV,GAAU,8BAA8B,GAC7C,KAAKF,GAAM,cAAc;CAC3B;AACF"}
|