mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-07 17:04:58 +01:00
117 lines
4.1 KiB
JavaScript
117 lines
4.1 KiB
JavaScript
import * as LifecycleBundle from './lifecycleBundle';
|
|
import * as AppTabsBundle from '../dom/appTabsBundle';
|
|
import {DomBundle} from '../dom/domBundle';
|
|
import * as PickControlBundle from '../scene/controls/pickControlBundle';
|
|
import * as MouseEventSystemBundle from '../scene/controls/mouseEventSystemBundle';
|
|
import * as SceneBundle from '../scene/sceneBundle';
|
|
import * as MarkerBundle from '../scene/selectionMarker/markerBundle';
|
|
import * as ActionSystemBundle from '../actions/actionSystemBundle';
|
|
import * as UIBundle from '../dom/uiBundle';
|
|
import * as MenuBundle from '../dom/menu/menuBundle';
|
|
import * as KeyboardBundle from '../keyboard/keyboardBundle';
|
|
import * as WizardBundle from '../craft/wizard/wizardBundle';
|
|
import {WizardSelectionBundle} from '../craft/wizard/wizardSelectionBundle';
|
|
import * as PreviewBundle from '../preview/previewBundle';
|
|
import * as OperationBundle from '../craft/operationBundle';
|
|
import * as ExtensionsBundle from '../craft/extensionsBundle';
|
|
import * as CadRegistryBundle from '../craft/cadRegistryBundle';
|
|
import * as CraftBundle from '../craft/craftBundle';
|
|
import * as RemotePartsBundle from '../partImport/remotePartsBundle';
|
|
import * as CraftUIBundle from '../craft/craftUIBundle';
|
|
import * as StorageBundle from '../storage/storageBundle';
|
|
import * as ProjectBundle from '../projectBundle';
|
|
import * as ProjectManagerBundle from '../projectManager/projectManagerBundle';
|
|
import * as SketcherBundle from '../sketch/sketcherBundle';
|
|
import * as SketcherStorageBundle from '../sketch/sketchStorageBundle';
|
|
import * as ExportBundle from '../exportBundle';
|
|
import * as ExposureBundle from '../exposure/exposureBundle';
|
|
import {ViewSyncBundle} from '../scene/viewSyncBundle';
|
|
import * as EntityContextPlugin from '../scene/entityContextBundle';
|
|
import * as OCCTBundle from '../craft/e0/occtBundle';
|
|
import startReact from "../dom/startReact";
|
|
import * as UIConfigBundle from "../workbench/uiConfigBundle";
|
|
import * as DebugBundle from "../debugBundle";
|
|
import * as ExpressionsBundle from "../expressions/expressionsBundle";
|
|
import {WorkbenchBundle} from "../workbench/workbenchBundle";
|
|
import * as LocationBundle from "../location/LocationBundle";
|
|
import * as AssemblyBundle from "../assembly/assemblyBundle";
|
|
import {WorkbenchesLoaderBundle} from "cad/workbench/workbenchesLoaderBundle";
|
|
import {AttributesBundle} from "cad/attributes/attributesBundle";
|
|
import {HighlightBundle} from "cad/scene/highlightBundle";
|
|
import {LegacyStructureBundle} from "cad/context/LegacyStructureBundle";
|
|
import context from "cad/context";
|
|
import {BundleSystem} from "bundler/bundleSystem";
|
|
|
|
export default function startApplication(callback) {
|
|
|
|
const preUIBundles = [
|
|
LifecycleBundle,
|
|
ProjectBundle,
|
|
StorageBundle,
|
|
AppTabsBundle,
|
|
ActionSystemBundle,
|
|
UIBundle,
|
|
MenuBundle,
|
|
KeyboardBundle,
|
|
ExpressionsBundle,
|
|
OperationBundle,
|
|
CraftBundle,
|
|
ExtensionsBundle,
|
|
SketcherStorageBundle,
|
|
WizardBundle,
|
|
PreviewBundle,
|
|
CraftUIBundle,
|
|
CadRegistryBundle,
|
|
ExportBundle,
|
|
ExposureBundle,
|
|
OCCTBundle,
|
|
ProjectManagerBundle
|
|
];
|
|
|
|
const bundles = [
|
|
DomBundle,
|
|
SceneBundle,
|
|
MouseEventSystemBundle,
|
|
MarkerBundle,
|
|
PickControlBundle,
|
|
EntityContextPlugin,
|
|
WorkbenchesLoaderBundle,
|
|
WorkbenchBundle,
|
|
SketcherBundle,
|
|
UIConfigBundle,
|
|
DebugBundle,
|
|
LocationBundle,
|
|
AssemblyBundle,
|
|
RemotePartsBundle,
|
|
ViewSyncBundle,
|
|
WizardSelectionBundle,
|
|
AttributesBundle,
|
|
HighlightBundle
|
|
];
|
|
|
|
const allBundle = [...preUIBundles, ...bundles];
|
|
const bundleSystem = new BundleSystem(context);
|
|
|
|
bundleSystem.activate(LegacyStructureBundle);
|
|
allBundle.forEach(bundle => {
|
|
if (bundle.defineStreams) {
|
|
bundle.defineStreams(context);
|
|
}
|
|
});
|
|
|
|
preUIBundles.forEach(bundle => {
|
|
bundleSystem.activate(bundle);
|
|
});
|
|
|
|
startReact(context, () => {
|
|
bundles.forEach(bundle => {
|
|
bundleSystem.activate(bundle);
|
|
});
|
|
context.services.lifecycle.declareAppReady();
|
|
context.viewer.render();
|
|
callback(context);
|
|
});
|
|
|
|
bundleSystem.checkDanglingBundles();
|
|
bundleSystem.checkPerfectLoad();
|
|
}
|