@interopio/iocd-cli 0.0.1
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 +40 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +96 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/apps.command.d.ts +3 -0
- package/dist/commands/apps.command.d.ts.map +1 -0
- package/dist/commands/apps.command.js +110 -0
- package/dist/commands/apps.command.js.map +1 -0
- package/dist/commands/components.command.d.ts +3 -0
- package/dist/commands/components.command.d.ts.map +1 -0
- package/dist/commands/components.command.js +116 -0
- package/dist/commands/components.command.js.map +1 -0
- package/dist/commands/create.command.d.ts +3 -0
- package/dist/commands/create.command.d.ts.map +1 -0
- package/dist/commands/create.command.js +19 -0
- package/dist/commands/create.command.js.map +1 -0
- package/dist/commands/dev.command.d.ts +4 -0
- package/dist/commands/dev.command.d.ts.map +1 -0
- package/dist/commands/dev.command.js +25 -0
- package/dist/commands/dev.command.js.map +1 -0
- package/dist/commands/installer.command.d.ts +3 -0
- package/dist/commands/installer.command.d.ts.map +1 -0
- package/dist/commands/installer.command.js +19 -0
- package/dist/commands/installer.command.js.map +1 -0
- package/dist/commands/license.command.d.ts +3 -0
- package/dist/commands/license.command.d.ts.map +1 -0
- package/dist/commands/license.command.js +23 -0
- package/dist/commands/license.command.js.map +1 -0
- package/dist/commands/modifications.command.d.ts +3 -0
- package/dist/commands/modifications.command.d.ts.map +1 -0
- package/dist/commands/modifications.command.js +28 -0
- package/dist/commands/modifications.command.js.map +1 -0
- package/dist/commands/setup.command.d.ts +4 -0
- package/dist/commands/setup.command.d.ts.map +1 -0
- package/dist/commands/setup.command.js +34 -0
- package/dist/commands/setup.command.js.map +1 -0
- package/dist/services/app-builder.service.d.ts +2 -0
- package/dist/services/app-builder.service.d.ts.map +1 -0
- package/dist/services/app-builder.service.js +3 -0
- package/dist/services/app-builder.service.js.map +1 -0
- package/dist/services/app.service.d.ts +74 -0
- package/dist/services/app.service.d.ts.map +1 -0
- package/dist/services/app.service.js +328 -0
- package/dist/services/app.service.js.map +1 -0
- package/dist/services/components/component.config.d.ts +11 -0
- package/dist/services/components/component.config.d.ts.map +1 -0
- package/dist/services/components/component.config.js +101 -0
- package/dist/services/components/component.config.js.map +1 -0
- package/dist/services/components/component.d.ts +12 -0
- package/dist/services/components/component.d.ts.map +1 -0
- package/dist/services/components/component.js +3 -0
- package/dist/services/components/component.js.map +1 -0
- package/dist/services/components/components.registry.d.ts +40 -0
- package/dist/services/components/components.registry.d.ts.map +1 -0
- package/dist/services/components/components.registry.js +72 -0
- package/dist/services/components/components.registry.js.map +1 -0
- package/dist/services/components/components.service.d.ts +20 -0
- package/dist/services/components/components.service.d.ts.map +1 -0
- package/dist/services/components/components.service.js +171 -0
- package/dist/services/components/components.service.js.map +1 -0
- package/dist/services/components/file.helper.d.ts +12 -0
- package/dist/services/components/file.helper.d.ts.map +1 -0
- package/dist/services/components/file.helper.js +124 -0
- package/dist/services/components/file.helper.js.map +1 -0
- package/dist/services/components/platform.utils.d.ts +72 -0
- package/dist/services/components/platform.utils.d.ts.map +1 -0
- package/dist/services/components/platform.utils.js +156 -0
- package/dist/services/components/platform.utils.js.map +1 -0
- package/dist/services/components/stores/github.store.d.ts +35 -0
- package/dist/services/components/stores/github.store.d.ts.map +1 -0
- package/dist/services/components/stores/github.store.js +157 -0
- package/dist/services/components/stores/github.store.js.map +1 -0
- package/dist/services/components/stores/local.store.d.ts +69 -0
- package/dist/services/components/stores/local.store.d.ts.map +1 -0
- package/dist/services/components/stores/local.store.js +300 -0
- package/dist/services/components/stores/local.store.js.map +1 -0
- package/dist/services/components/stores/s3.store.d.ts +98 -0
- package/dist/services/components/stores/s3.store.d.ts.map +1 -0
- package/dist/services/components/stores/s3.store.js +368 -0
- package/dist/services/components/stores/s3.store.js.map +1 -0
- package/dist/services/components/stores/store.d.ts +11 -0
- package/dist/services/components/stores/store.d.ts.map +1 -0
- package/dist/services/components/stores/store.js +3 -0
- package/dist/services/components/stores/store.js.map +1 -0
- package/dist/services/config/cli.config.d.ts +57 -0
- package/dist/services/config/cli.config.d.ts.map +1 -0
- package/dist/services/config/cli.config.js +3 -0
- package/dist/services/config/cli.config.js.map +1 -0
- package/dist/services/config/config.service.d.ts +14 -0
- package/dist/services/config/config.service.d.ts.map +1 -0
- package/dist/services/config/config.service.js +170 -0
- package/dist/services/config/config.service.js.map +1 -0
- package/dist/services/create.service.d.ts +58 -0
- package/dist/services/create.service.d.ts.map +1 -0
- package/dist/services/create.service.js +318 -0
- package/dist/services/create.service.js.map +1 -0
- package/dist/services/dev.service.d.ts +2 -0
- package/dist/services/dev.service.d.ts.map +1 -0
- package/dist/services/dev.service.js +78 -0
- package/dist/services/dev.service.js.map +1 -0
- package/dist/services/installer/electronBuilder.d.ts +2 -0
- package/dist/services/installer/electronBuilder.d.ts.map +1 -0
- package/dist/services/installer/electronBuilder.js +3 -0
- package/dist/services/installer/electronBuilder.js.map +1 -0
- package/dist/services/installer/electronForge.d.ts +2 -0
- package/dist/services/installer/electronForge.d.ts.map +1 -0
- package/dist/services/installer/electronForge.js +248 -0
- package/dist/services/installer/electronForge.js.map +1 -0
- package/dist/services/installer/installer.service.d.ts +5 -0
- package/dist/services/installer/installer.service.d.ts.map +1 -0
- package/dist/services/installer/installer.service.js +101 -0
- package/dist/services/installer/installer.service.js.map +1 -0
- package/dist/services/installer/macOS.helper.d.ts +3 -0
- package/dist/services/installer/macOS.helper.d.ts.map +1 -0
- package/dist/services/installer/macOS.helper.js +244 -0
- package/dist/services/installer/macOS.helper.js.map +1 -0
- package/dist/services/installer/prerequisites.d.ts +2 -0
- package/dist/services/installer/prerequisites.d.ts.map +1 -0
- package/dist/services/installer/prerequisites.js +73 -0
- package/dist/services/installer/prerequisites.js.map +1 -0
- package/dist/services/installer/windows.helper.d.ts +10 -0
- package/dist/services/installer/windows.helper.d.ts.map +1 -0
- package/dist/services/installer/windows.helper.js +394 -0
- package/dist/services/installer/windows.helper.js.map +1 -0
- package/dist/services/license.service.d.ts +7 -0
- package/dist/services/license.service.d.ts.map +1 -0
- package/dist/services/license.service.js +14 -0
- package/dist/services/license.service.js.map +1 -0
- package/dist/services/modifications/macOS.helper.d.ts +13 -0
- package/dist/services/modifications/macOS.helper.d.ts.map +1 -0
- package/dist/services/modifications/macOS.helper.js +274 -0
- package/dist/services/modifications/macOS.helper.js.map +1 -0
- package/dist/services/modifications/modifications.service.d.ts +2 -0
- package/dist/services/modifications/modifications.service.d.ts.map +1 -0
- package/dist/services/modifications/modifications.service.js +376 -0
- package/dist/services/modifications/modifications.service.js.map +1 -0
- package/dist/services/modifications/windows.helper.d.ts +2 -0
- package/dist/services/modifications/windows.helper.d.ts.map +1 -0
- package/dist/services/modifications/windows.helper.js +83 -0
- package/dist/services/modifications/windows.helper.js.map +1 -0
- package/dist/services/template.service.d.ts +116 -0
- package/dist/services/template.service.d.ts.map +1 -0
- package/dist/services/template.service.js +354 -0
- package/dist/services/template.service.js.map +1 -0
- package/dist/templates/auto-tests/README.md +31 -0
- package/dist/templates/auto-tests/playwright.config.js +19 -0
- package/dist/templates/auto-tests/template.json +12 -0
- package/dist/templates/auto-tests/tests/basic.test.js +15 -0
- package/dist/templates/ioconnect-desktop/.env.example +29 -0
- package/dist/templates/ioconnect-desktop/.github/workflows/build-installers.yml +170 -0
- package/dist/templates/ioconnect-desktop/LICENSE +0 -0
- package/dist/templates/ioconnect-desktop/README.md +0 -0
- package/dist/templates/ioconnect-desktop/config/mac-build/entitlements.mac.plist +44 -0
- package/dist/templates/ioconnect-desktop/config/win-build/template.nuspectemplate +33 -0
- package/dist/templates/ioconnect-desktop/forge.config.js +47 -0
- package/dist/templates/ioconnect-desktop/iocd.cli.config.json +45 -0
- package/dist/templates/ioconnect-desktop/modifications/iocd/assets/images/logo.icns +0 -0
- package/dist/templates/ioconnect-desktop/modifications/iocd/assets/images/logo.ico +0 -0
- package/dist/templates/ioconnect-desktop/modifications/iocd/assets/images/logo.png +0 -0
- package/dist/templates/ioconnect-desktop/modifications/iocd/config/system.json.merge +3 -0
- package/dist/templates/ioconnect-desktop/package.json +43 -0
- package/dist/templates/ioconnect-desktop/template.json +7 -0
- package/dist/templates/launchpad/apps/launchpad/.eslintrc.json +3 -0
- package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.dev.json +57 -0
- package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.prod.json +2 -0
- package/dist/templates/launchpad/apps/launchpad/config/iocd.system.dev.json +3 -0
- package/dist/templates/launchpad/apps/launchpad/config/iocd.system.prod.json +3 -0
- package/dist/templates/launchpad/apps/launchpad/index.html +16 -0
- package/dist/templates/launchpad/apps/launchpad/iocd.app.json +32 -0
- package/dist/templates/launchpad/apps/launchpad/package-lock.json +2778 -0
- package/dist/templates/launchpad/apps/launchpad/package.json +21 -0
- package/dist/templates/launchpad/apps/launchpad/public/favicon.ico +0 -0
- package/dist/templates/launchpad/apps/launchpad/src/app/app.tsx +39 -0
- package/dist/templates/launchpad/apps/launchpad/src/app/constants.ts +27 -0
- package/dist/templates/launchpad/apps/launchpad/src/components/logo.tsx +11 -0
- package/dist/templates/launchpad/apps/launchpad/src/components/main-context-menu.tsx +162 -0
- package/dist/templates/launchpad/apps/launchpad/src/components/notifications-button.tsx +44 -0
- package/dist/templates/launchpad/apps/launchpad/src/main.tsx +6 -0
- package/dist/templates/launchpad/apps/launchpad/src/styles.css +17 -0
- package/dist/templates/launchpad/apps/launchpad/tsconfig.json +10 -0
- package/dist/templates/launchpad/apps/launchpad/vite.config.ts +13 -0
- package/dist/templates/launchpad/template.json +12 -0
- package/dist/templates/splash-screen/apps/splash-screen/README.md +119 -0
- package/dist/templates/splash-screen/apps/splash-screen/config/system-dev.json +9 -0
- package/dist/templates/splash-screen/apps/splash-screen/config/system-prod.json +8 -0
- package/dist/templates/splash-screen/apps/splash-screen/index.html +55 -0
- package/dist/templates/splash-screen/apps/splash-screen/iocd.app.json +20 -0
- package/dist/templates/splash-screen/apps/splash-screen/package-lock.json +1059 -0
- package/dist/templates/splash-screen/apps/splash-screen/package.json +17 -0
- package/dist/templates/splash-screen/apps/splash-screen/public/assets/fonts/PTSans-Regular.ttf +0 -0
- package/dist/templates/splash-screen/apps/splash-screen/public/assets/images/logo-light.svg +85 -0
- package/dist/templates/splash-screen/apps/splash-screen/public/assets/images/splash-bg.png +0 -0
- package/dist/templates/splash-screen/apps/splash-screen/public/assets/styles/style.css +149 -0
- package/dist/templates/splash-screen/apps/splash-screen/public/assets/styles/style.css.map +1 -0
- package/dist/templates/splash-screen/apps/splash-screen/public/assets/styles/style.scss +90 -0
- package/dist/templates/splash-screen/apps/splash-screen/src/main.ts +93 -0
- package/dist/templates/splash-screen/apps/splash-screen/src/types.ts +28 -0
- package/dist/templates/splash-screen/apps/splash-screen/tsconfig.json +25 -0
- package/dist/templates/splash-screen/apps/splash-screen/vite.config.ts +27 -0
- package/dist/templates/splash-screen/template.json +12 -0
- package/dist/templates/web-groups/apps/web-groups/README.md +15 -0
- package/dist/templates/web-groups/apps/web-groups/config/web-group-dev.json +13 -0
- package/dist/templates/web-groups/apps/web-groups/config/web-group-prod.json +12 -0
- package/dist/templates/web-groups/apps/web-groups/index.html +18 -0
- package/dist/templates/web-groups/apps/web-groups/iocd.app.json +24 -0
- package/dist/templates/web-groups/apps/web-groups/package.json +28 -0
- package/dist/templates/web-groups/apps/web-groups/public/favicon.ico +0 -0
- package/dist/templates/web-groups/apps/web-groups/public/logo192.png +0 -0
- package/dist/templates/web-groups/apps/web-groups/public/logo512.png +0 -0
- package/dist/templates/web-groups/apps/web-groups/public/manifest.json +25 -0
- package/dist/templates/web-groups/apps/web-groups/public/robots.txt +3 -0
- package/dist/templates/web-groups/apps/web-groups/src/App.css +38 -0
- package/dist/templates/web-groups/apps/web-groups/src/App.tsx +11 -0
- package/dist/templates/web-groups/apps/web-groups/src/index.css +13 -0
- package/dist/templates/web-groups/apps/web-groups/src/index.tsx +25 -0
- package/dist/templates/web-groups/apps/web-groups/src/logo.svg +1 -0
- package/dist/templates/web-groups/apps/web-groups/src/reportWebVitals.ts +15 -0
- package/dist/templates/web-groups/apps/web-groups/tsconfig.json +26 -0
- package/dist/templates/web-groups/apps/web-groups/vite.config.ts +8 -0
- package/dist/templates/web-groups/template.json +12 -0
- package/dist/templates/workspaces/apps/workspaces/README.md +15 -0
- package/dist/templates/workspaces/apps/workspaces/config/workspaces-dev.json +21 -0
- package/dist/templates/workspaces/apps/workspaces/config/workspaces-prod.json +20 -0
- package/dist/templates/workspaces/apps/workspaces/index.html +17 -0
- package/dist/templates/workspaces/apps/workspaces/iocd.app.json +24 -0
- package/dist/templates/workspaces/apps/workspaces/package.json +29 -0
- package/dist/templates/workspaces/apps/workspaces/public/favicon.ico +0 -0
- package/dist/templates/workspaces/apps/workspaces/public/logo192.png +0 -0
- package/dist/templates/workspaces/apps/workspaces/public/logo512.png +0 -0
- package/dist/templates/workspaces/apps/workspaces/public/manifest.json +25 -0
- package/dist/templates/workspaces/apps/workspaces/public/robots.txt +3 -0
- package/dist/templates/workspaces/apps/workspaces/src/AddWindowButton.tsx +33 -0
- package/dist/templates/workspaces/apps/workspaces/src/AfterTabs.tsx +27 -0
- package/dist/templates/workspaces/apps/workspaces/src/App.css +38 -0
- package/dist/templates/workspaces/apps/workspaces/src/App.tsx +103 -0
- package/dist/templates/workspaces/apps/workspaces/src/GroupHeaderButtons.tsx +9 -0
- package/dist/templates/workspaces/apps/workspaces/src/index.css +4 -0
- package/dist/templates/workspaces/apps/workspaces/src/index.tsx +28 -0
- package/dist/templates/workspaces/apps/workspaces/src/logo.svg +7 -0
- package/dist/templates/workspaces/apps/workspaces/src/reportWebVitals.ts +15 -0
- package/dist/templates/workspaces/apps/workspaces/src/setupTests.ts +5 -0
- package/dist/templates/workspaces/apps/workspaces/src/useAddWindowButtonVisible.tsx +30 -0
- package/dist/templates/workspaces/apps/workspaces/tsconfig.json +26 -0
- package/dist/templates/workspaces/apps/workspaces/vite.config.ts +8 -0
- package/dist/templates/workspaces/template.json +12 -0
- package/dist/tools/rcedit-x64.exe +0 -0
- package/dist/utils/colors.d.ts +57 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +151 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/deep.merge.d.ts +5 -0
- package/dist/utils/deep.merge.d.ts.map +1 -0
- package/dist/utils/deep.merge.js +27 -0
- package/dist/utils/deep.merge.js.map +1 -0
- package/dist/utils/electron.builder.config.helper.d.ts +6 -0
- package/dist/utils/electron.builder.config.helper.d.ts.map +1 -0
- package/dist/utils/electron.builder.config.helper.js +25 -0
- package/dist/utils/electron.builder.config.helper.js.map +1 -0
- package/dist/utils/ensure.iocd.exists.d.ts +2 -0
- package/dist/utils/ensure.iocd.exists.d.ts.map +1 -0
- package/dist/utils/ensure.iocd.exists.js +27 -0
- package/dist/utils/ensure.iocd.exists.js.map +1 -0
- package/dist/utils/error.handler.d.ts +30 -0
- package/dist/utils/error.handler.d.ts.map +1 -0
- package/dist/utils/error.handler.js +104 -0
- package/dist/utils/error.handler.js.map +1 -0
- package/dist/utils/file.d.ts +10 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +40 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/find.package.dir.d.ts +2 -0
- package/dist/utils/find.package.dir.d.ts.map +1 -0
- package/dist/utils/find.package.dir.js +23 -0
- package/dist/utils/find.package.dir.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +184 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/nextSteps.d.ts +2 -0
- package/dist/utils/nextSteps.d.ts.map +1 -0
- package/dist/utils/nextSteps.js +44 -0
- package/dist/utils/nextSteps.js.map +1 -0
- package/dist/utils/pacakge.json.helper.d.ts +9 -0
- package/dist/utils/pacakge.json.helper.d.ts.map +1 -0
- package/dist/utils/pacakge.json.helper.js +71 -0
- package/dist/utils/pacakge.json.helper.js.map +1 -0
- package/dist/utils/path.d.ts +19 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +81 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +16 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +69 -0
- package/tools/rcedit-x64.exe +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dev-launchpad",
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"homepage": "./",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "vite",
|
|
8
|
+
"build": "vite build"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@interopio/components-react": "^0.7.3",
|
|
12
|
+
"@interopio/home-ui-react": "^2.0.4",
|
|
13
|
+
"@interopio/react-hooks": "^4.0.3",
|
|
14
|
+
"@interopio/workspaces-ui-react": "^4.0.4"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@vitejs/plugin-react": "^5.0.2",
|
|
18
|
+
"vite": "^7.1.5",
|
|
19
|
+
"vite-plugin-environment": "^1.1.3"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Launchpad, PlatformPrefsProvider } from "@interopio/home-ui-react";
|
|
2
|
+
import { IOConnectProvider } from "@interopio/react-hooks";
|
|
3
|
+
import { ioConfig } from "./constants";
|
|
4
|
+
import { ThemeProvider, IONotifications } from "@interopio/components-react";
|
|
5
|
+
import Logo from "../components/logo";
|
|
6
|
+
import NotificationsButton from "../components/notifications-button";
|
|
7
|
+
import MainContextMenu from "../components/main-context-menu";
|
|
8
|
+
import "@interopio/workspaces-ui-react/dist/styles/workspaces.css";
|
|
9
|
+
import "@interopio/home-ui-react/index.css";
|
|
10
|
+
|
|
11
|
+
export function App() {
|
|
12
|
+
const { NotificationsProvider } = IONotifications;
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<IOConnectProvider settings={ioConfig}>
|
|
16
|
+
<PlatformPrefsProvider>
|
|
17
|
+
<ThemeProvider>
|
|
18
|
+
<NotificationsProvider>
|
|
19
|
+
<Launchpad
|
|
20
|
+
components={{
|
|
21
|
+
header: {
|
|
22
|
+
BeforeSearch: () => <Logo />,
|
|
23
|
+
AfterSearch: () => (
|
|
24
|
+
<>
|
|
25
|
+
<NotificationsButton />
|
|
26
|
+
<MainContextMenu />
|
|
27
|
+
</>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
}}
|
|
31
|
+
/>
|
|
32
|
+
</NotificationsProvider>
|
|
33
|
+
</ThemeProvider>
|
|
34
|
+
</PlatformPrefsProvider>
|
|
35
|
+
</IOConnectProvider>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default App;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import IODesktop from "@interopio/desktop";
|
|
2
|
+
import IOSearch from "@interopio/search-api";
|
|
3
|
+
import IOWorkspaces from "@interopio/workspaces-api";
|
|
4
|
+
import { IOConnectInitSettings } from "@interopio/react-hooks";
|
|
5
|
+
|
|
6
|
+
export const ioConfig = {
|
|
7
|
+
desktop: {
|
|
8
|
+
factory: IODesktop,
|
|
9
|
+
config: {
|
|
10
|
+
gateway: {
|
|
11
|
+
logging: {
|
|
12
|
+
level: "warn"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
libraries: [IOWorkspaces, IOSearch],
|
|
16
|
+
appManager: "full",
|
|
17
|
+
layouts: "full",
|
|
18
|
+
activities: "trackAll",
|
|
19
|
+
channels: false,
|
|
20
|
+
metrics: false,
|
|
21
|
+
contexts: true,
|
|
22
|
+
systemLogger: {
|
|
23
|
+
level: "warn"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
} as IOConnectInitSettings;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { useCallback, useContext, useMemo } from "react";
|
|
2
|
+
import { IOConnectDesktop } from "@interopio/desktop";
|
|
3
|
+
import { IOConnectContext } from "@interopio/react-hooks";
|
|
4
|
+
import { Dropdown, Icon, IconProps, Separator } from "@interopio/components-react";
|
|
5
|
+
|
|
6
|
+
const PLATFORM_UTILITY_PAGES = {
|
|
7
|
+
ABOUT: "about",
|
|
8
|
+
HOTKEYS: "hotkeys",
|
|
9
|
+
FEEDBACK: "feedback",
|
|
10
|
+
} as const;
|
|
11
|
+
|
|
12
|
+
const PLATFORM_APPS = {
|
|
13
|
+
DOWNLOAD_MANAGER: "io-connect-download-manager",
|
|
14
|
+
} as const;
|
|
15
|
+
|
|
16
|
+
type PageKey = keyof typeof PLATFORM_UTILITY_PAGES;
|
|
17
|
+
type PageName = typeof PLATFORM_UTILITY_PAGES[PageKey];
|
|
18
|
+
type AppKey = keyof typeof PLATFORM_APPS;
|
|
19
|
+
type AppName = typeof PLATFORM_APPS[AppKey];
|
|
20
|
+
|
|
21
|
+
function MainContextMenu() {
|
|
22
|
+
const io = useContext(IOConnectContext) as IOConnectDesktop.API;
|
|
23
|
+
|
|
24
|
+
const startPage = useCallback(async (pageName: PageName) => {
|
|
25
|
+
if (!io) {
|
|
26
|
+
console.warn("IOConnectContext not available");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
try {
|
|
31
|
+
await io.interop.invoke("T42.GD.Execute", {
|
|
32
|
+
command: "open-utility-page",
|
|
33
|
+
args: { name: pageName },
|
|
34
|
+
});
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.warn("Failed to open utility page", pageName, error);
|
|
37
|
+
}
|
|
38
|
+
}, [io]);
|
|
39
|
+
|
|
40
|
+
const startApp = useCallback(async (appName: AppName) => {
|
|
41
|
+
if (!io) {
|
|
42
|
+
console.warn("IOConnectContext not available");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const app = io.appManager.application(appName);
|
|
48
|
+
if (!app) {
|
|
49
|
+
throw new Error(`Cannot find app with name "${appName}"`);
|
|
50
|
+
}
|
|
51
|
+
await app.start();
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.warn("Failed to start app", appName, error);
|
|
54
|
+
}
|
|
55
|
+
}, [io]);
|
|
56
|
+
|
|
57
|
+
const openDownloads = useCallback(() => {
|
|
58
|
+
startApp(PLATFORM_APPS.DOWNLOAD_MANAGER);
|
|
59
|
+
}, [startApp]);
|
|
60
|
+
|
|
61
|
+
const openFeedback = useCallback(() => {
|
|
62
|
+
startPage(PLATFORM_UTILITY_PAGES.FEEDBACK);
|
|
63
|
+
}, [startPage]);
|
|
64
|
+
|
|
65
|
+
const openHotkeys = useCallback(() => {
|
|
66
|
+
startPage(PLATFORM_UTILITY_PAGES.HOTKEYS);
|
|
67
|
+
}, [startPage]);
|
|
68
|
+
|
|
69
|
+
const handleMinimize = useCallback(async () => {
|
|
70
|
+
if (!io) {
|
|
71
|
+
console.warn("IOConnectContext not available");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const myWindow = io.windows.my();
|
|
76
|
+
|
|
77
|
+
if (!myWindow) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
await myWindow.minimize();
|
|
83
|
+
} catch (error) {
|
|
84
|
+
console.error("Failed to minimize window", error);
|
|
85
|
+
}
|
|
86
|
+
}, [io]);
|
|
87
|
+
|
|
88
|
+
const handleRestart = useCallback(async () => {
|
|
89
|
+
if (!io) {
|
|
90
|
+
console.warn("IOConnectContext not available");
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
await io.appManager.restart({
|
|
96
|
+
autoSave: true,
|
|
97
|
+
showDialog: true,
|
|
98
|
+
});
|
|
99
|
+
} catch (error) {
|
|
100
|
+
console.error("Failed to restart io.Connect Desktop", error);
|
|
101
|
+
}
|
|
102
|
+
}, [io]);
|
|
103
|
+
|
|
104
|
+
const handleShutdown = useCallback(async () => {
|
|
105
|
+
if (!io) {
|
|
106
|
+
console.warn("IOConnectContext not available");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
try {
|
|
111
|
+
await io.appManager.exit({
|
|
112
|
+
autoSave: true,
|
|
113
|
+
showDialog: true,
|
|
114
|
+
});
|
|
115
|
+
} catch (error) {
|
|
116
|
+
console.error("Failed to shutdown io.Connect Desktop", error);
|
|
117
|
+
}
|
|
118
|
+
}, [io]);
|
|
119
|
+
|
|
120
|
+
const menuItems = useMemo(() => [
|
|
121
|
+
{ label: "Pin Launchpad", icon: "pin", onClick: () => null, disabled: true },
|
|
122
|
+
{ label: "Dock Launchpad", onClick: () => null, disabled: true },
|
|
123
|
+
{ separator: true },
|
|
124
|
+
{ label: "Platform Preferences", icon: "cog", onClick: () => null, disabled: true },
|
|
125
|
+
{ label: "Notification Settings", icon: "bell", onClick: () => null, disabled: true },
|
|
126
|
+
{ label: "Intent Resolver Settings", icon: "list-ul", onClick: () => null, disabled: true },
|
|
127
|
+
{ separator: true },
|
|
128
|
+
{ label: "Profile", icon: "user", onClick: () => null, disabled: true },
|
|
129
|
+
{ separator: true },
|
|
130
|
+
{ label: "Downloads", onClick: openDownloads },
|
|
131
|
+
{ separator: true },
|
|
132
|
+
{ label: "Feedback", icon: "feedback", onClick: openFeedback },
|
|
133
|
+
{ label: "Keyboard Shortcuts", icon: "keyboard", onClick: openHotkeys },
|
|
134
|
+
{ separator: true },
|
|
135
|
+
{ label: "Minimize", icon: "minimize-down", onClick: handleMinimize },
|
|
136
|
+
{ label: "Restart", icon: "rotate-right", onClick: handleRestart },
|
|
137
|
+
{ label: "Shut Down", icon: "power-off", onClick: handleShutdown },
|
|
138
|
+
], [openDownloads, openFeedback, openHotkeys, handleMinimize, handleRestart, handleShutdown]);
|
|
139
|
+
|
|
140
|
+
return (
|
|
141
|
+
<div className="launchpad-header-actions">
|
|
142
|
+
<Dropdown>
|
|
143
|
+
<Dropdown.ButtonIcon variant='circle' icon="ellipsis-vertical" title='More' />
|
|
144
|
+
<Dropdown.Content>
|
|
145
|
+
<Dropdown.List>
|
|
146
|
+
{ menuItems.map((item, idx) =>
|
|
147
|
+
item.separator ? (
|
|
148
|
+
<Separator key={`sep-${idx}`} />
|
|
149
|
+
) : (
|
|
150
|
+
<Dropdown.Item key={item.label} prepend={<Icon variant={item.icon as IconProps["variant"]} />} onClick={item.onClick} disabled={item.disabled}>
|
|
151
|
+
{item.label}
|
|
152
|
+
</Dropdown.Item>
|
|
153
|
+
)
|
|
154
|
+
)}
|
|
155
|
+
</Dropdown.List>
|
|
156
|
+
</Dropdown.Content>
|
|
157
|
+
</Dropdown>
|
|
158
|
+
</div>
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export default MainContextMenu;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useEffect, useContext, useCallback, useState } from "react";
|
|
2
|
+
import { IOConnectDesktop } from "@interopio/desktop";
|
|
3
|
+
import { IOConnectContext } from "@interopio/react-hooks";
|
|
4
|
+
import { Badge, ButtonIcon } from "@interopio/components-react";
|
|
5
|
+
|
|
6
|
+
function NotificationsButton() {
|
|
7
|
+
const io = useContext(IOConnectContext) as IOConnectDesktop.API;
|
|
8
|
+
const [notificationsCount, setNotificationsCount] = useState(0);
|
|
9
|
+
|
|
10
|
+
const openNotificationPanel = useCallback(async () => {
|
|
11
|
+
const isPanelVisible = await io.notifications.panel.isVisible();
|
|
12
|
+
|
|
13
|
+
if (isPanelVisible) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
await io.notifications.panel.show();
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.error("Failed to open notifications panel.", error);
|
|
21
|
+
}
|
|
22
|
+
}, []);
|
|
23
|
+
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
const unCounterChanged = io.notifications.onCounterChanged(info => setNotificationsCount(info.count));
|
|
26
|
+
|
|
27
|
+
return () => {
|
|
28
|
+
unCounterChanged();
|
|
29
|
+
};
|
|
30
|
+
}, [io]);
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div className="launchpad-header-notifications-button">
|
|
34
|
+
{notificationsCount > 0 && (
|
|
35
|
+
<Badge variant="primary">
|
|
36
|
+
{notificationsCount > 99 ? "99+" : notificationsCount}
|
|
37
|
+
</Badge>
|
|
38
|
+
)}
|
|
39
|
+
<ButtonIcon variant="circle" icon="bell" size='32' onClick={openNotificationPanel} />
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default NotificationsButton;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* You can add global styles to this file, and also import other style files */
|
|
2
|
+
.launchpad-header-notifications-button {
|
|
3
|
+
position: relative;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.launchpad-header-notifications-button .io-badge {
|
|
7
|
+
position: absolute;
|
|
8
|
+
top: 7px;
|
|
9
|
+
right: -2px;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
min-width: var(--spacing-16);
|
|
14
|
+
height: var(--spacing-16);
|
|
15
|
+
margin: calc(var(--spacing-10) * -1) auto 0 calc(var(--spacing-4) * -1);
|
|
16
|
+
font-size: var(--spacing-10);
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import react from "@vitejs/plugin-react";
|
|
3
|
+
import EnvironmentPlugin from "vite-plugin-environment";
|
|
4
|
+
|
|
5
|
+
export default defineConfig({
|
|
6
|
+
server: {
|
|
7
|
+
port: 5178,
|
|
8
|
+
host: "localhost"
|
|
9
|
+
},
|
|
10
|
+
base: "./",
|
|
11
|
+
plugins: [react(), EnvironmentPlugin("all")]
|
|
12
|
+
});
|
|
13
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "launchpad",
|
|
3
|
+
"displayName": "Launchpad",
|
|
4
|
+
"description": "Adds custom application launchpad interface to io.Connect Desktop",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"type": "application",
|
|
7
|
+
"setupUI": {
|
|
8
|
+
"text": "Add a custom launchpad",
|
|
9
|
+
"separate": false,
|
|
10
|
+
"selected": false
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# io.Connect Desktop Splash Screen
|
|
2
|
+
|
|
3
|
+
A modern TypeScript-based splash screen application built with Vite for io.Connect Desktop.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This splash screen application is built using Vite with TypeScript and replicates the functionality of the original JavaScript-based splash screen. It provides a loading interface during application startup with status updates and gateway connectivity testing.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **TypeScript Support**: Full type safety with proper interfaces
|
|
12
|
+
- **Modern Build System**: Vite for fast development and optimized builds
|
|
13
|
+
- **Status Updates**: Displays loading messages and progress
|
|
14
|
+
- **Gateway Testing**: Tests WebSocket connectivity to the gateway
|
|
15
|
+
- **URL Parameter Support**: Configurable via query parameters
|
|
16
|
+
- **Responsive Design**: Maintains the original visual design
|
|
17
|
+
|
|
18
|
+
## Development
|
|
19
|
+
|
|
20
|
+
### Prerequisites
|
|
21
|
+
|
|
22
|
+
- Node.js (v16 or higher)
|
|
23
|
+
- npm
|
|
24
|
+
|
|
25
|
+
### Getting Started
|
|
26
|
+
|
|
27
|
+
1. Install dependencies:
|
|
28
|
+
```bash
|
|
29
|
+
npm install
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
2. Start development server:
|
|
33
|
+
```bash
|
|
34
|
+
npm run dev
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
3. Build for production:
|
|
38
|
+
```bash
|
|
39
|
+
npm run build
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
4. Preview production build:
|
|
43
|
+
```bash
|
|
44
|
+
npm run preview
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Type Checking
|
|
48
|
+
|
|
49
|
+
Run TypeScript type checking:
|
|
50
|
+
```bash
|
|
51
|
+
npm run type-check
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## URL Parameters
|
|
55
|
+
|
|
56
|
+
The splash screen accepts the following URL parameters:
|
|
57
|
+
|
|
58
|
+
- `message`: Initial status message to display
|
|
59
|
+
- `version`: Application version number
|
|
60
|
+
- `env`: Environment name (e.g., "DEMO", "PROD")
|
|
61
|
+
- `region`: Region identifier (e.g., "INTEROP.IO")
|
|
62
|
+
|
|
63
|
+
Example:
|
|
64
|
+
```
|
|
65
|
+
splash.html?message=Starting&env=DEMO®ion=INTEROP.IO&version=9.0.0.25
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## API Integration
|
|
69
|
+
|
|
70
|
+
The splash screen integrates with the main application via the `glue42splash` global object:
|
|
71
|
+
|
|
72
|
+
### Events
|
|
73
|
+
|
|
74
|
+
- **updateStatus**: Updates the status message
|
|
75
|
+
```typescript
|
|
76
|
+
glue42splash.on("updateStatus", (arg: { text: string }) => {
|
|
77
|
+
// Updates status display
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- **pingGW**: Tests gateway connectivity
|
|
82
|
+
```typescript
|
|
83
|
+
glue42splash.on("pingGW", (arg: { gwURL: string }) => {
|
|
84
|
+
// Tests WebSocket connection to gateway
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## File Structure
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
src/
|
|
92
|
+
├── main.ts # Main application logic
|
|
93
|
+
├── types.ts # TypeScript type definitions
|
|
94
|
+
public/
|
|
95
|
+
├── assets/ # Copied from original splash screen
|
|
96
|
+
│ ├── images/ # Logo and background images
|
|
97
|
+
│ ├── styles/ # CSS styles
|
|
98
|
+
│ └── fonts/ # Custom fonts
|
|
99
|
+
└── index.html # Main HTML template
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Build Output
|
|
103
|
+
|
|
104
|
+
The build process generates optimized files in the `dist/` directory:
|
|
105
|
+
- `index.html` - Main HTML file
|
|
106
|
+
- `assets/` - Bundled and optimized JavaScript/CSS files
|
|
107
|
+
- `assets/` - Static assets (images, fonts, styles)
|
|
108
|
+
|
|
109
|
+
## Migration from Original
|
|
110
|
+
|
|
111
|
+
This Vite-based implementation maintains 100% functional compatibility with the original JavaScript-based splash screen while adding:
|
|
112
|
+
|
|
113
|
+
- TypeScript type safety
|
|
114
|
+
- Modern ES6+ syntax and features
|
|
115
|
+
- Optimized build process
|
|
116
|
+
- Better development experience
|
|
117
|
+
- Modular code organization
|
|
118
|
+
|
|
119
|
+
The visual appearance and all functionality remain identical to ensure seamless integration with existing io.Connect Desktop applications.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" http-equiv="CACHE-CONTROL" content="NO-CACHE" />
|
|
5
|
+
<meta
|
|
6
|
+
name="viewport"
|
|
7
|
+
content="width=device-width, initial-scale=1,
|
|
8
|
+
shrink-to-fit=no"
|
|
9
|
+
/>
|
|
10
|
+
<meta name="description" content="io.Connect Desktop" />
|
|
11
|
+
<meta name="author" content="interop.io" />
|
|
12
|
+
<link rel="stylesheet" href="/assets/styles/style.css" />
|
|
13
|
+
<title>io.Connect Desktop</title>
|
|
14
|
+
</head>
|
|
15
|
+
|
|
16
|
+
<body style="-webkit-app-region: drag">
|
|
17
|
+
<div class="splash-wrapper">
|
|
18
|
+
<div class="logo-wrapper">
|
|
19
|
+
<img
|
|
20
|
+
src="/assets/images/logo-light.svg"
|
|
21
|
+
width="160"
|
|
22
|
+
class="logo"
|
|
23
|
+
/>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="version" id="version"><span> </span></div>
|
|
26
|
+
<div class="status" id="status">...</div>
|
|
27
|
+
<div class="loader">
|
|
28
|
+
<div></div>
|
|
29
|
+
<div></div>
|
|
30
|
+
<div></div>
|
|
31
|
+
<div></div>
|
|
32
|
+
<div></div>
|
|
33
|
+
<div></div>
|
|
34
|
+
<div></div>
|
|
35
|
+
<div></div>
|
|
36
|
+
<div></div>
|
|
37
|
+
<div></div>
|
|
38
|
+
<div></div>
|
|
39
|
+
<div></div>
|
|
40
|
+
<div></div>
|
|
41
|
+
<div></div>
|
|
42
|
+
<div></div>
|
|
43
|
+
<div></div>
|
|
44
|
+
<div></div>
|
|
45
|
+
<div></div>
|
|
46
|
+
<div></div>
|
|
47
|
+
<div></div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="copyright" id="copyright">
|
|
50
|
+
Interop Inc All rights reserved.
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
<script type="module" src="/src/main.ts"></script>
|
|
54
|
+
</body>
|
|
55
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dev": {
|
|
3
|
+
"script": "start",
|
|
4
|
+
"modifications": [
|
|
5
|
+
{
|
|
6
|
+
"source": "/config/system-dev.json",
|
|
7
|
+
"destination": "/modifications/iocd/config/system.json.merge-splash"
|
|
8
|
+
}
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"prod": {
|
|
12
|
+
"script": "build",
|
|
13
|
+
"modifications": [
|
|
14
|
+
{
|
|
15
|
+
"source": "/config/system-prod.json",
|
|
16
|
+
"destination": "/modifications/iocd/config/system.json.merge-splash"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
}
|