@flighthq/host-tauri 0.5.1-next.1069.554a2ac → 0.5.1-next.1201.9b49dee
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/README.md +3 -3
- package/dist/contract.d.ts +2 -5
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +2 -5
- package/dist/contract.js.map +1 -1
- package/dist/tauriApp.d.ts +9 -3
- package/dist/tauriApp.d.ts.map +1 -1
- package/dist/tauriApp.js +51 -33
- package/dist/tauriApp.js.map +1 -1
- package/dist/tauriClipboard.d.ts +3 -3
- package/dist/tauriClipboard.d.ts.map +1 -1
- package/dist/tauriClipboard.js +11 -10
- package/dist/tauriClipboard.js.map +1 -1
- package/dist/tauriDialog.d.ts +6 -9
- package/dist/tauriDialog.d.ts.map +1 -1
- package/dist/tauriDialog.js +20 -12
- package/dist/tauriDialog.js.map +1 -1
- package/dist/tauriHost.d.ts +3 -0
- package/dist/tauriHost.d.ts.map +1 -0
- package/dist/tauriHost.js +45 -0
- package/dist/tauriHost.js.map +1 -0
- package/dist/tauriMenu.d.ts +5 -3
- package/dist/tauriMenu.d.ts.map +1 -1
- package/dist/tauriMenu.js +40 -23
- package/dist/tauriMenu.js.map +1 -1
- package/dist/tauriNotification.d.ts +5 -3
- package/dist/tauriNotification.d.ts.map +1 -1
- package/dist/tauriNotification.js +33 -17
- package/dist/tauriNotification.js.map +1 -1
- package/dist/tauriPlatform.d.ts +3 -3
- package/dist/tauriPlatform.d.ts.map +1 -1
- package/dist/tauriPlatform.js +5 -8
- package/dist/tauriPlatform.js.map +1 -1
- package/dist/tauriShell.d.ts +5 -5
- package/dist/tauriShell.d.ts.map +1 -1
- package/dist/tauriShell.js +24 -23
- package/dist/tauriShell.js.map +1 -1
- package/dist/tauriShortcut.d.ts +4 -5
- package/dist/tauriShortcut.d.ts.map +1 -1
- package/dist/tauriShortcut.js +17 -16
- package/dist/tauriShortcut.js.map +1 -1
- package/dist/tauriTray.d.ts +10 -3
- package/dist/tauriTray.d.ts.map +1 -1
- package/dist/tauriTray.js +252 -211
- package/dist/tauriTray.js.map +1 -1
- package/dist/tauriUnsupportedHostGroups.d.ts +18 -0
- package/dist/tauriUnsupportedHostGroups.d.ts.map +1 -0
- package/dist/tauriUnsupportedHostGroups.js +51 -0
- package/dist/tauriUnsupportedHostGroups.js.map +1 -0
- package/dist/tauriWindow.d.ts +2 -3
- package/dist/tauriWindow.d.ts.map +1 -1
- package/dist/tauriWindow.js +5 -5
- package/dist/tauriWindow.js.map +1 -1
- package/package.json +18 -15
- package/src/tauriApp.test.ts +48 -9
- package/src/tauriClipboard.test.ts +13 -10
- package/src/tauriDialog.test.ts +34 -52
- package/src/tauriHost.test.ts +212 -0
- package/src/tauriMenu.test.ts +28 -14
- package/src/tauriNotification.test.ts +28 -10
- package/src/tauriPackage.test.ts +299 -0
- package/src/tauriPlatform.test.ts +11 -8
- package/src/tauriShell.test.ts +22 -30
- package/src/tauriShortcut.test.ts +16 -23
- package/src/tauriTray.test.ts +89 -38
- package/src/tauriUnsupportedHostGroups.test.ts +41 -0
- package/src/tauriWindow.test.ts +15 -20
- package/dist/tauriRegister.d.ts +0 -4
- package/dist/tauriRegister.d.ts.map +0 -1
- package/dist/tauriRegister.js +0 -69
- package/dist/tauriRegister.js.map +0 -1
- package/src/tauriRegister.test.ts +0 -91
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @flighthq/host-tauri
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Dependency-injected Tauri Host providers over a minimal TauriApi
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/host-tauri`. The `@f
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/host-tauri@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/host-tauri@0.5.1-next.1201.9b49dee](https://github.com/flighthq/flight/tree/9b49dee3f22f6b2838c3d237edcc77bca65734f2/packages/host-tauri)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/9b49dee3f22f6b2838c3d237edcc77bca65734f2/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
export * from './tauriApp';
|
|
2
2
|
export * from './tauriClipboard';
|
|
3
3
|
export * from './tauriDialog';
|
|
4
|
+
export * from './tauriHost';
|
|
4
5
|
export * from './tauriMenu';
|
|
5
6
|
export * from './tauriNotification';
|
|
6
7
|
export * from './tauriPlatform';
|
|
7
|
-
export * from './tauriRegister';
|
|
8
8
|
export * from './tauriShell';
|
|
9
9
|
export * from './tauriShortcut';
|
|
10
10
|
export * from './tauriTray';
|
|
11
|
+
export * from './tauriUnsupportedHostGroups';
|
|
11
12
|
export * from './tauriWindow';
|
|
12
|
-
export { initializeTauriDirectoryOpenDialogBackend, initializeTauriFileOpenDialogBackend, initializeTauriFileSaveDialogBackend, initializeTauriMessageDialogBackend, } from './tauriDialog';
|
|
13
|
-
export { initializeTauriWindowBackend } from './tauriWindow';
|
|
14
|
-
export { initializeTauriPlatformBackend } from './tauriPlatform';
|
|
15
|
-
export { initializeTauriNotificationCapabilities } from './tauriNotification';
|
|
16
13
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
export * from './tauriApp';
|
|
2
2
|
export * from './tauriClipboard';
|
|
3
3
|
export * from './tauriDialog';
|
|
4
|
+
export * from './tauriHost';
|
|
4
5
|
export * from './tauriMenu';
|
|
5
6
|
export * from './tauriNotification';
|
|
6
7
|
export * from './tauriPlatform';
|
|
7
|
-
export * from './tauriRegister';
|
|
8
8
|
export * from './tauriShell';
|
|
9
9
|
export * from './tauriShortcut';
|
|
10
10
|
export * from './tauriTray';
|
|
11
|
+
export * from './tauriUnsupportedHostGroups';
|
|
11
12
|
export * from './tauriWindow';
|
|
12
|
-
export { initializeTauriDirectoryOpenDialogBackend, initializeTauriFileOpenDialogBackend, initializeTauriFileSaveDialogBackend, initializeTauriMessageDialogBackend, } from './tauriDialog';
|
|
13
|
-
export { initializeTauriWindowBackend } from './tauriWindow';
|
|
14
|
-
export { initializeTauriPlatformBackend } from './tauriPlatform';
|
|
15
|
-
export { initializeTauriNotificationCapabilities } from './tauriNotification';
|
|
16
13
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC"}
|
package/dist/tauriApp.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
import type { HostAppHideProvider, HostAppLocaleProvider, HostAppNameProvider, HostAppQuitProvider, HostAppRelaunchProvider, HostAppShowProvider, HostAppVersionProvider, TauriApi, TauriAppCapabilities } from '@flighthq/types/contract';
|
|
2
|
+
export declare function tauriHostApp(tauri: TauriApi): TauriAppCapabilities;
|
|
3
|
+
export declare function tauriHostAppHide(tauri: TauriApi): HostAppHideProvider;
|
|
4
|
+
export declare function tauriHostAppLocale(tauri: TauriApi): HostAppLocaleProvider;
|
|
5
|
+
export declare function tauriHostAppName(tauri: TauriApi): HostAppNameProvider;
|
|
6
|
+
export declare function tauriHostAppQuit(tauri: TauriApi): HostAppQuitProvider;
|
|
7
|
+
export declare function tauriHostAppRelaunch(tauri: TauriApi): HostAppRelaunchProvider;
|
|
8
|
+
export declare function tauriHostAppShow(tauri: TauriApi): HostAppShowProvider;
|
|
9
|
+
export declare function tauriHostAppVersion(tauri: TauriApi): HostAppVersionProvider;
|
|
4
10
|
//# sourceMappingURL=tauriApp.d.ts.map
|
package/dist/tauriApp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriApp.d.ts","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tauriApp.d.ts","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CAUlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CAIrE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAWzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CASrE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CAIrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,uBAAuB,CAI7E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CAIrE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,sBAAsB,CAS3E"}
|
package/dist/tauriApp.js
CHANGED
|
@@ -1,47 +1,65 @@
|
|
|
1
1
|
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
|
-
export function
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function tauriHostApp(tauri) {
|
|
3
|
+
const group = allocateEntity();
|
|
4
|
+
group.hide = tauriHostAppHide(tauri);
|
|
5
|
+
group.locale = tauriHostAppLocale(tauri);
|
|
6
|
+
group.name = tauriHostAppName(tauri);
|
|
7
|
+
group.quit = tauriHostAppQuit(tauri);
|
|
8
|
+
group.relaunch = tauriHostAppRelaunch(tauri);
|
|
9
|
+
group.show = tauriHostAppShow(tauri);
|
|
10
|
+
group.version = tauriHostAppVersion(tauri);
|
|
11
|
+
return finishEntity(group);
|
|
6
12
|
}
|
|
7
|
-
export function
|
|
13
|
+
export function tauriHostAppHide(tauri) {
|
|
14
|
+
const provider = allocateEntity();
|
|
15
|
+
provider.hideApp = () => void tauri.app.hide().catch(() => { });
|
|
16
|
+
return finishEntity(provider);
|
|
17
|
+
}
|
|
18
|
+
export function tauriHostAppLocale(tauri) {
|
|
8
19
|
let locale = '';
|
|
20
|
+
void tauri.os
|
|
21
|
+
.locale()
|
|
22
|
+
.then((value) => (locale = value ?? ''))
|
|
23
|
+
.catch(() => { });
|
|
24
|
+
const provider = allocateEntity();
|
|
25
|
+
provider.getLocale = () => locale;
|
|
26
|
+
provider.getPreferredSystemLanguages = () => (locale === '' ? [] : [locale]);
|
|
27
|
+
provider.getSystemLocale = () => locale;
|
|
28
|
+
return finishEntity(provider);
|
|
29
|
+
}
|
|
30
|
+
export function tauriHostAppName(tauri) {
|
|
9
31
|
let name = '';
|
|
10
|
-
let version = '';
|
|
11
32
|
void tauri.app
|
|
12
33
|
.getName()
|
|
13
34
|
.then((value) => (name = value))
|
|
14
35
|
.catch(() => { });
|
|
36
|
+
const provider = allocateEntity();
|
|
37
|
+
provider.getName = () => name;
|
|
38
|
+
return finishEntity(provider);
|
|
39
|
+
}
|
|
40
|
+
export function tauriHostAppQuit(tauri) {
|
|
41
|
+
const provider = allocateEntity();
|
|
42
|
+
provider.quit = () => void tauri.process.exit(0).catch(() => { });
|
|
43
|
+
return finishEntity(provider);
|
|
44
|
+
}
|
|
45
|
+
export function tauriHostAppRelaunch(tauri) {
|
|
46
|
+
const provider = allocateEntity();
|
|
47
|
+
provider.relaunch = () => void tauri.process.relaunch().catch(() => { });
|
|
48
|
+
return finishEntity(provider);
|
|
49
|
+
}
|
|
50
|
+
export function tauriHostAppShow(tauri) {
|
|
51
|
+
const provider = allocateEntity();
|
|
52
|
+
provider.showApp = () => void tauri.app.show().catch(() => { });
|
|
53
|
+
return finishEntity(provider);
|
|
54
|
+
}
|
|
55
|
+
export function tauriHostAppVersion(tauri) {
|
|
56
|
+
let version = '';
|
|
15
57
|
void tauri.app
|
|
16
58
|
.getVersion()
|
|
17
59
|
.then((value) => (version = value))
|
|
18
60
|
.catch(() => { });
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
.catch(() => { });
|
|
23
|
-
const hideBackend = allocateEntity();
|
|
24
|
-
hideBackend.hideApp = () => void tauri.app.hide().catch(() => { });
|
|
25
|
-
out.hide = finishEntity(hideBackend);
|
|
26
|
-
const localeBackend = allocateEntity();
|
|
27
|
-
localeBackend.getLocale = () => locale;
|
|
28
|
-
localeBackend.getPreferredSystemLanguages = () => (locale === '' ? [] : [locale]);
|
|
29
|
-
localeBackend.getSystemLocale = () => locale;
|
|
30
|
-
out.locale = finishEntity(localeBackend);
|
|
31
|
-
const nameBackend = allocateEntity();
|
|
32
|
-
nameBackend.getName = () => name;
|
|
33
|
-
out.name = finishEntity(nameBackend);
|
|
34
|
-
const quitBackend = allocateEntity();
|
|
35
|
-
quitBackend.quit = () => void tauri.process.exit(0).catch(() => { });
|
|
36
|
-
out.quit = finishEntity(quitBackend);
|
|
37
|
-
const relaunchBackend = allocateEntity();
|
|
38
|
-
relaunchBackend.relaunch = () => void tauri.process.relaunch().catch(() => { });
|
|
39
|
-
out.relaunch = finishEntity(relaunchBackend);
|
|
40
|
-
const showBackend = allocateEntity();
|
|
41
|
-
showBackend.showApp = () => void tauri.app.show().catch(() => { });
|
|
42
|
-
out.show = finishEntity(showBackend);
|
|
43
|
-
const versionBackend = allocateEntity();
|
|
44
|
-
versionBackend.getVersion = () => version;
|
|
45
|
-
out.version = finishEntity(versionBackend);
|
|
61
|
+
const provider = allocateEntity();
|
|
62
|
+
provider.getVersion = () => version;
|
|
63
|
+
return finishEntity(provider);
|
|
46
64
|
}
|
|
47
65
|
//# sourceMappingURL=tauriApp.js.map
|
package/dist/tauriApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriApp.js","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"tauriApp.js","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"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"}
|
package/dist/tauriClipboard.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
import type { HostClipboardCapabilities, HostClipboardTextProvider, TauriApi } from '@flighthq/types/contract';
|
|
2
|
+
export declare function tauriHostClipboard(tauri: TauriApi): HostClipboardCapabilities & Required<Pick<HostClipboardCapabilities, 'text'>>;
|
|
3
|
+
export declare function tauriHostClipboardText(tauri: TauriApi): HostClipboardTextProvider;
|
|
4
4
|
//# sourceMappingURL=tauriClipboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriClipboard.d.ts","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tauriClipboard.d.ts","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE/G,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,GACd,yBAAyB,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAE/E;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,yBAAyB,CAkCjF"}
|
package/dist/tauriClipboard.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
|
+
export function tauriHostClipboard(tauri) {
|
|
3
|
+
return { text: tauriHostClipboardText(tauri) };
|
|
4
|
+
}
|
|
2
5
|
// Tauri's clipboard-manager coverage is the text/clear capability vector. Other clipboard
|
|
3
6
|
// capability slots are deliberately absent from the Tauri host rather than simulated by sentinels.
|
|
4
|
-
export function
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
export function initializeTauriClipboardBackend(out, clipboard) {
|
|
10
|
-
out.clear = async () => {
|
|
7
|
+
export function tauriHostClipboardText(tauri) {
|
|
8
|
+
const clipboard = tauri.clipboard;
|
|
9
|
+
const provider = allocateEntity();
|
|
10
|
+
provider.clear = async () => {
|
|
11
11
|
try {
|
|
12
12
|
await clipboard.clear();
|
|
13
13
|
return true;
|
|
@@ -16,7 +16,7 @@ export function initializeTauriClipboardBackend(out, clipboard) {
|
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
provider.hasText = async () => {
|
|
20
20
|
try {
|
|
21
21
|
return (await clipboard.readText()).length > 0;
|
|
22
22
|
}
|
|
@@ -24,7 +24,7 @@ export function initializeTauriClipboardBackend(out, clipboard) {
|
|
|
24
24
|
return false;
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
provider.readText = async () => {
|
|
28
28
|
try {
|
|
29
29
|
return await clipboard.readText();
|
|
30
30
|
}
|
|
@@ -32,7 +32,7 @@ export function initializeTauriClipboardBackend(out, clipboard) {
|
|
|
32
32
|
return '';
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
provider.writeText = async (text) => {
|
|
36
36
|
try {
|
|
37
37
|
await clipboard.writeText(text);
|
|
38
38
|
return true;
|
|
@@ -41,5 +41,6 @@ export function initializeTauriClipboardBackend(out, clipboard) {
|
|
|
41
41
|
return false;
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
+
return finishEntity(provider);
|
|
44
45
|
}
|
|
45
46
|
//# sourceMappingURL=tauriClipboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriClipboard.js","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,
|
|
1
|
+
{"version":3,"file":"tauriClipboard.js","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,MAAM,UAAU,kBAAkB,CAChC,KAAe;IAEf,OAAO,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,0FAA0F;AAC1F,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,KAAe;IACpD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,QAAQ,GAAG,cAAc,EAA6B,CAAC;IAC7D,QAAQ,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/tauriDialog.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function initializeTauriFileOpenDialogBackend(out: EntityConstruction<FileOpenDialogBackend>, tauri: TauriApi): void;
|
|
8
|
-
export declare function initializeTauriFileSaveDialogBackend(out: EntityConstruction<FileSaveDialogBackend>, tauri: TauriApi): void;
|
|
9
|
-
export declare function initializeTauriMessageDialogBackend(out: EntityConstruction<MessageDialogBackend>, tauri: TauriApi): void;
|
|
1
|
+
import type { HostDirectoryOpenDialogProvider, Entity, HostFileOpenDialogProvider, HostFileSaveDialogProvider, HostMessageDialogProvider, HostDialogCapabilities, TauriApi } from '@flighthq/types/contract';
|
|
2
|
+
export declare function tauriHostDialog(tauri: TauriApi): HostDialogCapabilities & Required<Pick<HostDialogCapabilities, 'directoryOpen' | 'fileOpen' | 'fileSave' | 'message'>>;
|
|
3
|
+
export declare function tauriHostDirectoryOpenDialog(tauri: TauriApi): HostDirectoryOpenDialogProvider & Entity;
|
|
4
|
+
export declare function tauriHostFileOpenDialog(tauri: TauriApi): HostFileOpenDialogProvider & Entity;
|
|
5
|
+
export declare function tauriHostFileSaveDialog(tauri: TauriApi): HostFileSaveDialogProvider & Entity;
|
|
6
|
+
export declare function tauriHostMessageDialog(tauri: TauriApi): HostMessageDialogProvider & Entity;
|
|
10
7
|
//# sourceMappingURL=tauriDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriDialog.d.ts","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"tauriDialog.d.ts","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAE/B,MAAM,EAEN,0BAA0B,EAE1B,0BAA0B,EAE1B,yBAAyB,EACzB,sBAAsB,EAEtB,QAAQ,EAGT,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,GACd,sBAAsB,GACvB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,CAO9F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,QAAQ,GAAG,+BAA+B,GAAG,MAAM,CAItG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,0BAA0B,GAAG,MAAM,CAI5F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,0BAA0B,GAAG,MAAM,CAI5F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,yBAAyB,GAAG,MAAM,CAI1F"}
|
package/dist/tauriDialog.js
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
1
|
import { createFileDialogHandle } from '@flighthq/dialog/contract';
|
|
2
2
|
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
3
|
-
export function
|
|
3
|
+
export function tauriHostDialog(tauri) {
|
|
4
|
+
return {
|
|
5
|
+
directoryOpen: tauriHostDirectoryOpenDialog(tauri),
|
|
6
|
+
fileOpen: tauriHostFileOpenDialog(tauri),
|
|
7
|
+
fileSave: tauriHostFileSaveDialog(tauri),
|
|
8
|
+
message: tauriHostMessageDialog(tauri),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export function tauriHostDirectoryOpenDialog(tauri) {
|
|
4
12
|
const out = allocateEntity();
|
|
5
|
-
|
|
13
|
+
configureDirectoryOpenDialog(out, tauri);
|
|
6
14
|
return finishEntity(out);
|
|
7
15
|
}
|
|
8
|
-
export function
|
|
16
|
+
export function tauriHostFileOpenDialog(tauri) {
|
|
9
17
|
const out = allocateEntity();
|
|
10
|
-
|
|
18
|
+
configureFileOpenDialog(out, tauri);
|
|
11
19
|
return finishEntity(out);
|
|
12
20
|
}
|
|
13
|
-
export function
|
|
21
|
+
export function tauriHostFileSaveDialog(tauri) {
|
|
14
22
|
const out = allocateEntity();
|
|
15
|
-
|
|
23
|
+
configureFileSaveDialog(out, tauri);
|
|
16
24
|
return finishEntity(out);
|
|
17
25
|
}
|
|
18
|
-
export function
|
|
26
|
+
export function tauriHostMessageDialog(tauri) {
|
|
19
27
|
const out = allocateEntity();
|
|
20
|
-
|
|
28
|
+
configureMessageDialog(out, tauri);
|
|
21
29
|
return finishEntity(out);
|
|
22
30
|
}
|
|
23
|
-
|
|
31
|
+
function configureDirectoryOpenDialog(out, tauri) {
|
|
24
32
|
out.open = async (options) => {
|
|
25
33
|
if (options?.signal?.aborted)
|
|
26
34
|
return { outcome: 'cancelled' };
|
|
@@ -45,7 +53,7 @@ export function initializeTauriDirectoryOpenDialogBackend(out, tauri) {
|
|
|
45
53
|
}
|
|
46
54
|
};
|
|
47
55
|
}
|
|
48
|
-
|
|
56
|
+
function configureFileOpenDialog(out, tauri) {
|
|
49
57
|
out.open = async (options) => {
|
|
50
58
|
if (options.signal?.aborted)
|
|
51
59
|
return { outcome: 'cancelled' };
|
|
@@ -74,7 +82,7 @@ export function initializeTauriFileOpenDialogBackend(out, tauri) {
|
|
|
74
82
|
}
|
|
75
83
|
};
|
|
76
84
|
}
|
|
77
|
-
|
|
85
|
+
function configureFileSaveDialog(out, tauri) {
|
|
78
86
|
out.save = async (options) => {
|
|
79
87
|
if (options.signal?.aborted)
|
|
80
88
|
return { outcome: 'cancelled' };
|
|
@@ -99,7 +107,7 @@ export function initializeTauriFileSaveDialogBackend(out, tauri) {
|
|
|
99
107
|
}
|
|
100
108
|
// Tauri provides message and confirmation surfaces but no native text-input prompt. Consumers can
|
|
101
109
|
// therefore assemble dialog.message while leaving dialog.prompt absent.
|
|
102
|
-
|
|
110
|
+
function configureMessageDialog(out, tauri) {
|
|
103
111
|
const dialog = tauri.dialog;
|
|
104
112
|
out.message = async (options) => {
|
|
105
113
|
if (options.signal?.aborted) {
|
package/dist/tauriDialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriDialog.js","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"tauriDialog.js","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tauriHost.d.ts","sourceRoot":"","sources":["../src/tauriHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiCtF,wBAAgB,SAAS,CAAC,OAAO,SAAS,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CA6BjH"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createHost } from '@flighthq/entity/contract';
|
|
2
|
+
import { tauriHostApp } from './tauriApp';
|
|
3
|
+
import { tauriHostClipboard } from './tauriClipboard';
|
|
4
|
+
import { tauriHostDialog } from './tauriDialog';
|
|
5
|
+
import { tauriHostMenu } from './tauriMenu';
|
|
6
|
+
import { tauriHostNotification } from './tauriNotification';
|
|
7
|
+
import { tauriHostSystem } from './tauriPlatform';
|
|
8
|
+
import { tauriHostShell } from './tauriShell';
|
|
9
|
+
import { tauriHostShortcut } from './tauriShortcut';
|
|
10
|
+
import { tauriHostTray } from './tauriTray';
|
|
11
|
+
import { tauriHostAccessibility, tauriHostConnectivity, tauriHostGraphics, tauriHostInput, tauriHostIpc, tauriHostMedia, tauriHostMidi, tauriHostNet, tauriHostPower, tauriHostProtocol, tauriHostScreen, tauriHostShare, tauriHostStorage, tauriHostText, tauriHostUi, tauriHostUpdater, } from './tauriUnsupportedHostGroups';
|
|
12
|
+
import { tauriHostWindow } from './tauriWindow';
|
|
13
|
+
// Builds the explicit Tauri host from an injected aggregate of the Tauri v2 JS API modules and
|
|
14
|
+
// plugins. Unsupported groups are constructed explicitly so capability absence remains honest.
|
|
15
|
+
export function tauriHost(tauri, profile) {
|
|
16
|
+
return createHost({
|
|
17
|
+
accessibility: tauriHostAccessibility(),
|
|
18
|
+
app: tauriHostApp(tauri),
|
|
19
|
+
clipboard: tauriHostClipboard(tauri),
|
|
20
|
+
connectivity: tauriHostConnectivity(),
|
|
21
|
+
dialog: tauriHostDialog(tauri),
|
|
22
|
+
graphics: tauriHostGraphics(),
|
|
23
|
+
input: tauriHostInput(),
|
|
24
|
+
ipc: tauriHostIpc(),
|
|
25
|
+
media: tauriHostMedia(),
|
|
26
|
+
menu: tauriHostMenu(tauri),
|
|
27
|
+
midi: tauriHostMidi(),
|
|
28
|
+
net: tauriHostNet(),
|
|
29
|
+
notification: tauriHostNotification(tauri),
|
|
30
|
+
power: tauriHostPower(),
|
|
31
|
+
protocol: tauriHostProtocol(),
|
|
32
|
+
screen: tauriHostScreen(),
|
|
33
|
+
share: tauriHostShare(),
|
|
34
|
+
shell: tauriHostShell(tauri),
|
|
35
|
+
shortcut: tauriHostShortcut(tauri),
|
|
36
|
+
storage: tauriHostStorage(),
|
|
37
|
+
system: tauriHostSystem(tauri),
|
|
38
|
+
text: tauriHostText(),
|
|
39
|
+
tray: tauriHostTray(tauri, profile),
|
|
40
|
+
ui: tauriHostUi(),
|
|
41
|
+
updater: tauriHostUpdater(),
|
|
42
|
+
window: tauriHostWindow(tauri),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=tauriHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tauriHost.js","sourceRoot":"","sources":["../src/tauriHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,+FAA+F;AAC/F,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAmC,KAAe,EAAE,OAAgB;IAC3F,OAAO,UAAU,CAAC;QAChB,aAAa,EAAE,sBAAsB,EAAE;QACvC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACpC,YAAY,EAAE,qBAAqB,EAAE;QACrC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,KAAK,EAAE,cAAc,EAAE;QACvB,GAAG,EAAE,YAAY,EAAE;QACnB,KAAK,EAAE,cAAc,EAAE;QACvB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,IAAI,EAAE,aAAa,EAAE;QACrB,GAAG,EAAE,YAAY,EAAE;QACnB,YAAY,EAAE,qBAAqB,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,cAAc,EAAE;QACvB,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,MAAM,EAAE,eAAe,EAAE;QACzB,KAAK,EAAE,cAAc,EAAE;QACvB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,gBAAgB,EAAE;QAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9B,IAAI,EAAE,aAAa,EAAE;QACrB,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;QACnC,EAAE,EAAE,WAAW,EAAE;QACjB,OAAO,EAAE,gBAAgB,EAAE;QAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tauriMenu.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
import type { HostMenuApplicationProvider, HostMenuPopupProvider, HostMenuSelectProvider, TauriApi, TauriMenuCapabilities } from '@flighthq/types/contract';
|
|
2
|
+
export declare function tauriHostMenu(tauri: TauriApi): TauriMenuCapabilities;
|
|
3
|
+
export declare function tauriHostMenuApplication(tauri: TauriApi): HostMenuApplicationProvider;
|
|
4
|
+
export declare function tauriHostMenuPopup(tauri: TauriApi): HostMenuPopupProvider;
|
|
5
|
+
export declare function tauriHostMenuSelect(tauri: TauriApi): HostMenuSelectProvider;
|
|
4
6
|
//# sourceMappingURL=tauriMenu.d.ts.map
|
package/dist/tauriMenu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tauriMenu.d.ts","sourceRoot":"","sources":["../src/tauriMenu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"tauriMenu.d.ts","sourceRoot":"","sources":["../src/tauriMenu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAE3B,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAUlC,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAOpE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,2BAA2B,CAErF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAEzE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,sBAAsB,CAG3E"}
|
package/dist/tauriMenu.js
CHANGED
|
@@ -7,31 +7,43 @@ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
|
7
7
|
// seam. popup resolves null only if the async build/popup throws; otherwise it resolves on the first item
|
|
8
8
|
// click (Tauri exposes no menu-dismiss event).
|
|
9
9
|
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export function createTauriMenuBackends(tauri) {
|
|
10
|
+
export function tauriHostMenu(tauri) {
|
|
11
|
+
const state = createMenuState();
|
|
13
12
|
const out = allocateEntity();
|
|
14
|
-
|
|
13
|
+
out.application = createMenuApplication(tauri, state);
|
|
14
|
+
out.popup = createMenuPopup(tauri);
|
|
15
|
+
out.select = createMenuSelect(state);
|
|
15
16
|
return finishEntity(out);
|
|
16
17
|
}
|
|
17
|
-
export function
|
|
18
|
+
export function tauriHostMenuApplication(tauri) {
|
|
19
|
+
return createMenuApplication(tauri, createMenuState());
|
|
20
|
+
}
|
|
21
|
+
export function tauriHostMenuPopup(tauri) {
|
|
22
|
+
return createMenuPopup(tauri);
|
|
23
|
+
}
|
|
24
|
+
export function tauriHostMenuSelect(tauri) {
|
|
25
|
+
void tauri;
|
|
26
|
+
return createMenuSelect(createMenuState());
|
|
27
|
+
}
|
|
28
|
+
function createMenuState() {
|
|
29
|
+
return { destroyed: false, selectListener: null };
|
|
30
|
+
}
|
|
31
|
+
function createMenuApplication(tauri, state) {
|
|
18
32
|
const menuModule = tauri.menu;
|
|
19
|
-
let selectListener = null;
|
|
20
|
-
let destroyed = false;
|
|
21
33
|
// Tauri's menu API is entirely async — there is no synchronous path to clear the native app menu.
|
|
22
34
|
// A fire-and-forget async clear races with a replacement's setApplicationMenu: the outgoing
|
|
23
35
|
// destroy's empty-menu promise can settle AFTER the successor installs its real menu, overwriting
|
|
24
36
|
// it with an empty one. Destroy therefore releases JS-owned state only; the native menu stays
|
|
25
37
|
// until a replacement installs its own.
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
if (destroyed)
|
|
38
|
+
const applicationProvider = allocateEntity();
|
|
39
|
+
applicationProvider.destroy = () => {
|
|
40
|
+
if (state.destroyed)
|
|
29
41
|
return;
|
|
30
|
-
destroyed = true;
|
|
42
|
+
state.destroyed = true;
|
|
31
43
|
};
|
|
32
|
-
|
|
44
|
+
applicationProvider.setApplicationMenu = (items) => {
|
|
33
45
|
void (async () => {
|
|
34
|
-
const built = await buildItems(menuModule, items, (id) => selectListener?.(id));
|
|
46
|
+
const built = await buildItems(menuModule, items, (id) => state.selectListener?.(id));
|
|
35
47
|
const menu = await menuModule.Menu.new({ items: built });
|
|
36
48
|
await menu.setAsAppMenu();
|
|
37
49
|
})().catch(() => {
|
|
@@ -39,9 +51,12 @@ export function initializeTauriMenuBackends(out, tauri) {
|
|
|
39
51
|
});
|
|
40
52
|
return true;
|
|
41
53
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
54
|
+
return finishEntity(applicationProvider);
|
|
55
|
+
}
|
|
56
|
+
function createMenuPopup(tauri) {
|
|
57
|
+
const menuModule = tauri.menu;
|
|
58
|
+
const popupProvider = allocateEntity();
|
|
59
|
+
popupProvider.popup = (items, x, y) => {
|
|
45
60
|
return new Promise((resolve) => {
|
|
46
61
|
void (async () => {
|
|
47
62
|
const built = await buildItems(menuModule, items, (id) => resolve(id));
|
|
@@ -50,16 +65,18 @@ export function initializeTauriMenuBackends(out, tauri) {
|
|
|
50
65
|
})().catch(() => resolve(null));
|
|
51
66
|
});
|
|
52
67
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
68
|
+
return finishEntity(popupProvider);
|
|
69
|
+
}
|
|
70
|
+
function createMenuSelect(state) {
|
|
71
|
+
const selectProvider = allocateEntity();
|
|
72
|
+
selectProvider.subscribe = (listener) => {
|
|
73
|
+
state.selectListener = listener;
|
|
57
74
|
return () => {
|
|
58
|
-
if (selectListener === listener)
|
|
59
|
-
selectListener = null;
|
|
75
|
+
if (state.selectListener === listener)
|
|
76
|
+
state.selectListener = null;
|
|
60
77
|
};
|
|
61
78
|
};
|
|
62
|
-
|
|
79
|
+
return finishEntity(selectProvider);
|
|
63
80
|
}
|
|
64
81
|
// Recursively builds Tauri menu item handles from Flight templates. Separators become a predefined
|
|
65
82
|
// item; submenus recurse; a selectable leaf with an id gets an `action` that reports its id through
|