vim-web 0.3.44-dev.46 → 0.3.44-dev.50

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.
Files changed (206) hide show
  1. package/dist/style.css +16 -1
  2. package/dist/types/core-viewers/index.d.ts +3 -0
  3. package/dist/types/core-viewers/shared/baseInputHandler.d.ts +29 -0
  4. package/dist/types/core-viewers/shared/index.d.ts +9 -0
  5. package/dist/types/core-viewers/shared/inputHandler.d.ts +115 -28
  6. package/dist/types/core-viewers/shared/keyboardHandler.d.ts +2 -2
  7. package/dist/types/core-viewers/shared/mouseHandler.d.ts +9 -9
  8. package/dist/types/core-viewers/shared/raycaster.d.ts +13 -0
  9. package/dist/types/core-viewers/shared/selection.d.ts +45 -0
  10. package/dist/types/core-viewers/shared/touchHandler.d.ts +2 -2
  11. package/dist/types/core-viewers/shared/vim.d.ts +35 -0
  12. package/dist/types/core-viewers/ultra/{viewer/camera.d.ts → camera.d.ts} +14 -5
  13. package/dist/types/core-viewers/ultra/{viewer/colorManager.d.ts → colorManager.d.ts} +6 -6
  14. package/dist/types/core-viewers/ultra/{viewer/decoder.d.ts → decoder.d.ts} +0 -8
  15. package/dist/types/core-viewers/ultra/element3d.d.ts +15 -0
  16. package/dist/types/core-viewers/ultra/index.d.ts +28 -9
  17. package/dist/types/core-viewers/ultra/inputAdapter.d.ts +5 -0
  18. package/dist/types/core-viewers/ultra/nodeState.d.ts +113 -0
  19. package/dist/types/core-viewers/ultra/raycaster.d.ts +52 -0
  20. package/dist/types/core-viewers/ultra/{viewer/color.d.ts → remoteColor.d.ts} +3 -3
  21. package/dist/types/core-viewers/ultra/{viewer/renderer.d.ts → renderer.d.ts} +9 -3
  22. package/dist/types/core-viewers/ultra/{viewer/rpcClient.d.ts → rpcClient.d.ts} +27 -28
  23. package/dist/types/core-viewers/ultra/rpcMarshal.d.ts +62 -0
  24. package/dist/types/core-viewers/ultra/{viewer/rpcSafeClient.d.ts → rpcSafeClient.d.ts} +22 -23
  25. package/dist/types/core-viewers/{utils/math3d.d.ts → ultra/rpcTypes.d.ts} +22 -22
  26. package/dist/types/core-viewers/ultra/selection.d.ts +4 -0
  27. package/dist/types/core-viewers/ultra/{viewer/socketClient.d.ts → socketClient.d.ts} +4 -11
  28. package/dist/types/core-viewers/ultra/{viewer/ultraCoreViewer.d.ts → viewer.d.ts} +18 -15
  29. package/dist/types/core-viewers/ultra/vim.d.ts +48 -0
  30. package/dist/types/core-viewers/webgl/index.d.ts +2 -20
  31. package/dist/types/core-viewers/webgl/loader/{colorAttributes.d.ts → colorAttribute.d.ts} +4 -4
  32. package/dist/types/core-viewers/webgl/loader/{object3D.d.ts → element3d.d.ts} +12 -9
  33. package/dist/types/core-viewers/webgl/loader/geometry.d.ts +76 -78
  34. package/dist/types/core-viewers/webgl/loader/index.d.ts +23 -0
  35. package/dist/types/core-viewers/webgl/loader/materials/index.d.ts +9 -0
  36. package/dist/types/core-viewers/webgl/loader/materials/{viewerMaterials.d.ts → materials.d.ts} +4 -4
  37. package/dist/types/core-viewers/webgl/loader/mesh.d.ts +7 -7
  38. package/dist/types/core-viewers/webgl/loader/progressive/insertableGeometry.d.ts +2 -2
  39. package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +1 -1
  40. package/dist/types/core-viewers/webgl/loader/progressive/insertableSubmesh.d.ts +1 -1
  41. package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +1 -1
  42. package/dist/types/core-viewers/webgl/loader/progressive/instancedSubmesh.d.ts +1 -1
  43. package/dist/types/core-viewers/webgl/loader/progressive/legacyMeshFactory.d.ts +2 -2
  44. package/dist/types/core-viewers/webgl/loader/progressive/subsetBuilder.d.ts +2 -2
  45. package/dist/types/core-viewers/webgl/loader/progressive/subsetRequest.d.ts +2 -2
  46. package/dist/types/core-viewers/webgl/loader/progressive/vimRequest.d.ts +3 -3
  47. package/dist/types/core-viewers/webgl/loader/scene.d.ts +11 -14
  48. package/dist/types/core-viewers/webgl/loader/vim.d.ts +15 -19
  49. package/dist/types/core-viewers/webgl/loader/vimSettings.d.ts +2 -2
  50. package/dist/types/core-viewers/webgl/loader/{objectAttributes.d.ts → webglAttribute.d.ts} +4 -4
  51. package/dist/types/core-viewers/webgl/viewer/camera/camera.d.ts +8 -102
  52. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovement.d.ts +5 -5
  53. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementLerp.d.ts +2 -2
  54. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementSnap.d.ts +2 -2
  55. package/dist/types/core-viewers/webgl/viewer/camera/{orthographic.d.ts → cameraOrthographic.d.ts} +1 -1
  56. package/dist/types/core-viewers/webgl/viewer/camera/{perspective.d.ts → cameraPerspective.d.ts} +1 -1
  57. package/dist/types/core-viewers/webgl/viewer/camera/index.d.ts +7 -0
  58. package/dist/types/core-viewers/webgl/viewer/environment/environment.d.ts +5 -5
  59. package/dist/types/core-viewers/webgl/viewer/environment/index.d.ts +3 -0
  60. package/dist/types/core-viewers/webgl/viewer/environment/{cameraLight.d.ts → light.d.ts} +2 -2
  61. package/dist/types/core-viewers/webgl/viewer/environment/skybox.d.ts +3 -3
  62. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/axesSettings.d.ts +3 -2
  63. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/gizmoAxes.d.ts +1 -1
  64. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/index.d.ts +3 -0
  65. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoOrbit.d.ts +2 -2
  66. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmos.d.ts +0 -5
  67. package/dist/types/core-viewers/webgl/viewer/gizmos/index.d.ts +7 -0
  68. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +63 -15
  69. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarkers.d.ts +30 -7
  70. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/index.d.ts +2 -0
  71. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/index.d.ts +3 -0
  72. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measure.d.ts +4 -3
  73. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/index.d.ts +7 -0
  74. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +1 -1
  75. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandle.d.ts +4 -4
  76. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandles.d.ts +1 -1
  77. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +1 -7
  78. package/dist/types/core-viewers/webgl/viewer/index.d.ts +10 -0
  79. package/dist/types/core-viewers/webgl/viewer/inputsAdapter.d.ts +3 -0
  80. package/dist/types/core-viewers/webgl/viewer/raycaster.d.ts +34 -43
  81. package/dist/types/core-viewers/webgl/viewer/rendering/index.d.ts +4 -0
  82. package/dist/types/core-viewers/webgl/viewer/rendering/mergePass.d.ts +2 -2
  83. package/dist/types/core-viewers/webgl/viewer/rendering/renderScene.d.ts +7 -7
  84. package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +8 -5
  85. package/dist/types/core-viewers/webgl/viewer/rendering/renderingComposer.d.ts +2 -2
  86. package/dist/types/core-viewers/webgl/viewer/rendering/renderingSection.d.ts +2 -2
  87. package/dist/types/core-viewers/webgl/viewer/selection.d.ts +6 -89
  88. package/dist/types/core-viewers/webgl/viewer/settings/index.d.ts +3 -0
  89. package/dist/types/core-viewers/webgl/viewer/settings/{defaultViewerSettings.d.ts → viewerDefaultSettings.d.ts} +1 -1
  90. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettings.d.ts +2 -9
  91. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettingsParsing.d.ts +1 -1
  92. package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +13 -13
  93. package/dist/types/index.d.ts +2 -3
  94. package/dist/types/react-viewers/bim/bimInfoData.d.ts +2 -2
  95. package/dist/types/react-viewers/bim/bimInfoObject.d.ts +4 -4
  96. package/dist/types/react-viewers/bim/bimInfoPanel.d.ts +3 -3
  97. package/dist/types/react-viewers/bim/bimInfoVim.d.ts +4 -4
  98. package/dist/types/react-viewers/bim/bimPanel.d.ts +10 -10
  99. package/dist/types/react-viewers/bim/bimSearch.d.ts +2 -2
  100. package/dist/types/react-viewers/bim/bimTree.d.ts +8 -6
  101. package/dist/types/react-viewers/bim/bimTreeData.d.ts +5 -4
  102. package/dist/types/react-viewers/bim/index.d.ts +8 -0
  103. package/dist/types/react-viewers/container.d.ts +3 -3
  104. package/dist/types/react-viewers/controlbar/controlBar.d.ts +0 -4
  105. package/dist/types/react-viewers/controlbar/controlBarButton.d.ts +1 -4
  106. package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +36 -30
  107. package/dist/types/react-viewers/controlbar/controlBarSection.d.ts +2 -4
  108. package/dist/types/react-viewers/controlbar/index.d.ts +5 -0
  109. package/dist/types/react-viewers/controlbar/style.d.ts +10 -0
  110. package/dist/types/react-viewers/errors/index.d.ts +3 -0
  111. package/dist/types/react-viewers/helpers/cameraObserver.d.ts +2 -2
  112. package/dist/types/react-viewers/helpers/cursor.d.ts +5 -3
  113. package/dist/types/react-viewers/helpers/element.d.ts +3 -2
  114. package/dist/types/react-viewers/helpers/index.d.ts +10 -0
  115. package/dist/types/react-viewers/helpers/loadRequest.d.ts +6 -6
  116. package/dist/types/react-viewers/helpers/reactUtils.d.ts +8 -2
  117. package/dist/types/react-viewers/helpers/utils.d.ts +1 -1
  118. package/dist/types/react-viewers/{panels/icons.d.ts → icons.d.ts} +7 -0
  119. package/dist/types/react-viewers/index.d.ts +9 -11
  120. package/dist/types/react-viewers/panels/axesPanel.d.ts +2 -2
  121. package/dist/types/react-viewers/panels/contextMenu.d.ts +8 -8
  122. package/dist/types/react-viewers/panels/genericPanel.d.ts +22 -0
  123. package/dist/types/react-viewers/panels/index.d.ts +14 -0
  124. package/dist/types/react-viewers/panels/loadingBox.d.ts +2 -2
  125. package/dist/types/react-viewers/panels/modal.d.ts +5 -5
  126. package/dist/types/react-viewers/panels/renderSettingsPanel.d.ts +4 -0
  127. package/dist/types/react-viewers/panels/restOfScreen.d.ts +1 -1
  128. package/dist/types/react-viewers/{sidePanel → panels}/sidePanel.d.ts +3 -3
  129. package/dist/types/react-viewers/panels/toast.d.ts +3 -3
  130. package/dist/types/react-viewers/settings/index.d.ts +5 -0
  131. package/dist/types/react-viewers/settings/menuSettings.d.ts +2 -2
  132. package/dist/types/react-viewers/settings/settings.d.ts +10 -49
  133. package/dist/types/react-viewers/settings/settingsState.d.ts +8 -8
  134. package/dist/types/react-viewers/settings/settingsStorage.d.ts +6 -6
  135. package/dist/types/react-viewers/settings/userBoolean.d.ts +17 -0
  136. package/dist/types/react-viewers/state/cameraState.d.ts +2 -1
  137. package/dist/types/react-viewers/state/controlBarState.d.ts +21 -30
  138. package/dist/types/react-viewers/state/index.d.ts +9 -0
  139. package/dist/types/react-viewers/state/measureState.d.ts +2 -2
  140. package/dist/types/react-viewers/state/pointerState.d.ts +5 -5
  141. package/dist/types/react-viewers/state/sharedIsolation.d.ts +36 -0
  142. package/dist/types/react-viewers/state/viewerInputs.d.ts +3 -0
  143. package/dist/types/react-viewers/ultra/camera.d.ts +3 -0
  144. package/dist/types/react-viewers/ultra/controlBar.d.ts +6 -0
  145. package/dist/types/react-viewers/ultra/errors/ultraErrors.d.ts +3 -3
  146. package/dist/types/react-viewers/ultra/index.d.ts +2 -2
  147. package/dist/types/react-viewers/ultra/isolation.d.ts +3 -0
  148. package/dist/types/react-viewers/ultra/modal.d.ts +5 -0
  149. package/dist/types/react-viewers/ultra/sectionBox.d.ts +3 -0
  150. package/dist/types/react-viewers/ultra/viewer.d.ts +21 -0
  151. package/dist/types/react-viewers/ultra/{ultraComponentRef.d.ts → viewerRef.d.ts} +9 -7
  152. package/dist/types/react-viewers/webgl/camera.d.ts +3 -0
  153. package/dist/types/react-viewers/webgl/index.d.ts +3 -8
  154. package/dist/types/react-viewers/webgl/inputsBindings.d.ts +8 -0
  155. package/dist/types/react-viewers/webgl/isolation.d.ts +2 -0
  156. package/dist/types/react-viewers/webgl/{webglLoading.d.ts → loading.d.ts} +8 -8
  157. package/dist/types/react-viewers/webgl/sectionBox.d.ts +3 -0
  158. package/dist/types/react-viewers/webgl/viewer.d.ts +28 -0
  159. package/dist/types/react-viewers/webgl/{webglComponentRef.d.ts → viewerRef.d.ts} +20 -20
  160. package/dist/types/react-viewers/webgl/viewerState.d.ts +7 -5
  161. package/dist/types/utils/index.d.ts +11 -0
  162. package/dist/types/utils/interfaces.d.ts +3 -0
  163. package/dist/types/utils/math3d.d.ts +19 -0
  164. package/dist/types/utils/partial.d.ts +7 -0
  165. package/dist/types/{core-viewers/utils/requestResult.d.ts → utils/result.d.ts} +1 -1
  166. package/dist/types/utils/strings.d.ts +7 -0
  167. package/dist/types/{core-viewers/ultra/viewer → utils}/validation.d.ts +11 -10
  168. package/dist/vim-web.iife.js +21034 -20967
  169. package/dist/vim-web.iife.js.map +1 -1
  170. package/dist/vim-web.js +21068 -21001
  171. package/dist/vim-web.js.map +1 -1
  172. package/package.json +1 -1
  173. package/dist/types/core-viewers/shared/coreInputHandler.d.ts +0 -110
  174. package/dist/types/core-viewers/ultra/viewer/marshal.d.ts +0 -86
  175. package/dist/types/core-viewers/ultra/viewer/selection.d.ts +0 -99
  176. package/dist/types/core-viewers/ultra/viewer/ultraInputsAdapter.d.ts +0 -5
  177. package/dist/types/core-viewers/ultra/viewer/vim.d.ts +0 -111
  178. package/dist/types/core-viewers/utils/result.d.ts +0 -11
  179. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoRectangle.d.ts +0 -51
  180. package/dist/types/core-viewers/webgl/viewer/webglInputsAdapter.d.ts +0 -3
  181. package/dist/types/react-viewers/helpers/isolation.d.ts +0 -128
  182. package/dist/types/react-viewers/ultra/ultraCameraState.d.ts +0 -3
  183. package/dist/types/react-viewers/ultra/ultraComponent.d.ts +0 -23
  184. package/dist/types/react-viewers/ultra/ultraControlBarState.d.ts +0 -8
  185. package/dist/types/react-viewers/ultra/ultraModal.d.ts +0 -4
  186. package/dist/types/react-viewers/ultra/ultraSectionBoxState.d.ts +0 -3
  187. package/dist/types/react-viewers/webgl/webgInputsBindings.d.ts +0 -8
  188. package/dist/types/react-viewers/webgl/webglCameraState.d.ts +0 -2
  189. package/dist/types/react-viewers/webgl/webglComponent.d.ts +0 -28
  190. package/dist/types/react-viewers/webgl/webglSectionBoxState.d.ts +0 -3
  191. /package/dist/types/core-viewers/ultra/{viewer/decoderWithWorker.d.ts → decoderWithWorker.d.ts} +0 -0
  192. /package/dist/types/core-viewers/ultra/{viewer/loadRequest.d.ts → loadRequest.d.ts} +0 -0
  193. /package/dist/types/core-viewers/ultra/{viewer/logger.d.ts → logger.d.ts} +0 -0
  194. /package/dist/types/core-viewers/ultra/{viewer/protocol.d.ts → protocol.d.ts} +0 -0
  195. /package/dist/types/core-viewers/ultra/{viewer/sectionBox.d.ts → sectionBox.d.ts} +0 -0
  196. /package/dist/types/core-viewers/ultra/{viewer/streamLogger.d.ts → streamLogger.d.ts} +0 -0
  197. /package/dist/types/core-viewers/ultra/{viewer/streamRenderer.d.ts → streamRenderer.d.ts} +0 -0
  198. /package/dist/types/core-viewers/ultra/{viewer/viewport.d.ts → viewport.d.ts} +0 -0
  199. /package/dist/types/core-viewers/ultra/{viewer/vimCollection.d.ts → vimCollection.d.ts} +0 -0
  200. /package/dist/types/core-viewers/webgl/viewer/camera/{ICamera.d.ts → cameraInterface.d.ts} +0 -0
  201. /package/dist/types/react-viewers/{sidePanel → state}/sideState.d.ts +0 -0
  202. /package/dist/types/{core-viewers/utils → utils}/array.d.ts +0 -0
  203. /package/dist/types/{core-viewers/utils → utils}/debounce.d.ts +0 -0
  204. /package/dist/types/{core-viewers/utils → utils}/promise.d.ts +0 -0
  205. /package/dist/types/{core-viewers/utils → utils}/threeUtils.d.ts +0 -0
  206. /package/dist/types/{core-viewers/utils → utils}/url.d.ts +0 -0
@@ -1,7 +1,7 @@
1
- import * as VIM from '../../core-viewers/webgl/index';
2
- import { LoadingError } from '../webgl/webglLoading';
1
+ import * as Core from '../../core-viewers';
2
+ import { LoadingError } from '../webgl/loading';
3
3
  type RequestCallbacks = {
4
- onProgress: (p: VIM.IProgressLogs) => void;
4
+ onProgress: (p: Core.Webgl.IProgressLogs) => void;
5
5
  onError: (e: LoadingError) => void;
6
6
  onDone: () => void;
7
7
  };
@@ -16,14 +16,14 @@ export declare class LoadRequest {
16
16
  private _progressPromise;
17
17
  private _isDone;
18
18
  private _completionPromise;
19
- constructor(callbacks: RequestCallbacks, source: VIM.RequestSource, settings?: VIM.VimPartialSettings);
19
+ constructor(callbacks: RequestCallbacks, source: Core.Webgl.RequestSource, settings?: Core.Webgl.VimPartialSettings);
20
20
  private startRequest;
21
21
  private onProgress;
22
22
  private onSuccess;
23
23
  private onError;
24
24
  private end;
25
- getProgress(): AsyncGenerator<VIM.IProgressLogs, void, void>;
26
- getResult(): Promise<import("../../core-viewers/utils/requestResult").RequestResult<VIM.Vim>>;
25
+ getProgress(): AsyncGenerator<Core.Webgl.IProgressLogs, void, void>;
26
+ getResult(): Promise<import("../../utils").Result<Core.Webgl.Vim>>;
27
27
  abort(): void;
28
28
  }
29
29
  export {};
@@ -32,6 +32,10 @@ export interface StateRef<T> {
32
32
  */
33
33
  confirm(): void;
34
34
  }
35
+ export interface StateRefresher {
36
+ refresh: () => void;
37
+ }
38
+ export declare function useRefresher(): StateRefresher;
35
39
  /**
36
40
  * A custom hook that creates a state reference.
37
41
  * The reference provides access to the state, along with event dispatching, validation, and confirmation logic.
@@ -39,7 +43,7 @@ export interface StateRef<T> {
39
43
  * @param initialValue - The initial state value.
40
44
  * @returns An object implementing StateRef along with additional helper hooks.
41
45
  */
42
- export declare function useStateRef<T>(initialValue: T): {
46
+ export declare function useStateRef<T>(initialValue: T | (() => T)): {
43
47
  /**
44
48
  * Returns the current state value.
45
49
  */
@@ -51,9 +55,11 @@ export declare function useStateRef<T>(initialValue: T): {
51
55
  confirm(): void;
52
56
  /**
53
57
  * Registers a callback to be invoked when the state changes.
58
+ * Accepts a sync function, a cleanup function, or a function returning a Promise<void> (which will be ignored).
59
+ *
54
60
  * @param on - The callback function that receives the new state value.
55
61
  */
56
- useOnChange(on: (value: T) => void | (() => void)): void;
62
+ useOnChange(on: (value: T) => void | (() => void) | Promise<void>): void;
57
63
  /**
58
64
  * Memoizes a value based on the current state and additional dependencies.
59
65
  * @param on - A function that computes a value based on the current state.
@@ -1,4 +1,4 @@
1
- import { UserBoolean } from '../settings/settings';
1
+ import { UserBoolean } from '../settings';
2
2
  export declare function whenTrue(value: UserBoolean | boolean, element: JSX.Element): JSX.Element;
3
3
  export declare function whenFalse(value: UserBoolean | boolean, element: JSX.Element): JSX.Element;
4
4
  export declare function whenAllTrue(value: (UserBoolean | boolean)[], element: JSX.Element): JSX.Element;
@@ -10,6 +10,8 @@ export type IconOptions = {
10
10
  fill: string;
11
11
  className?: string;
12
12
  };
13
+ export declare function pointer({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
14
+ export declare function filter({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
13
15
  export declare function slidersHoriz({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
14
16
  export declare function settings({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
15
17
  export declare function help({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
@@ -38,6 +40,11 @@ export declare function pan({ height, width, fill, className }: IconOptions): im
38
40
  export declare function zoom({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
39
41
  export declare function frameRect({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
40
42
  export declare function frameSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
43
+ export declare function showAll({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
44
+ export declare function showSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
45
+ export declare function hideSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
46
+ export declare function isolateSelection({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
47
+ export declare function autoIsolate({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
41
48
  export declare function toggleIsolation({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
42
49
  export declare function measure({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
43
50
  export declare function sectionBoxSettings({ height, width, fill, className }: IconOptions): import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,11 @@
1
1
  import './style.css';
2
- export * as WebglReact from './webgl/index';
3
- export * as UltraReact from './ultra/index';
4
- export * as ErrorStyle from './errors/errorStyle';
5
- export * as Errors from './errors/errors';
6
- export * as Urls from './urls';
7
- export * as Icons from './panels/icons';
8
- export type { ActionRef, ArgActionRef, ArgFuncRef, AsyncFuncRef, FuncRef, StateRef } from './helpers/reactUtils';
9
- export type { MessageBoxProps } from './panels/messageBox';
2
+ export * from './bim';
3
+ export * as ControlBar from './controlbar';
4
+ export * as Icons from './icons';
5
+ export * as Settings from './settings';
6
+ export * as Webgl from './webgl';
7
+ export * as Ultra from './ultra';
10
8
  export * from './container';
11
- export { type CameraRef } from './state/cameraState';
12
- export { type SectionBoxRef } from './state/sectionBoxState';
13
- export * as ControlBar from './controlbar/controlBar';
9
+ export type * from './helpers';
10
+ export type * from './panels';
11
+ export type * from './state';
@@ -2,7 +2,7 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import * as VIM from '../../core-viewers/webgl/index';
5
+ import * as Core from '../../core-viewers';
6
6
  import { CameraRef } from '../state/cameraState';
7
7
  import { SettingsState } from '../settings/settingsState';
8
8
  /**
@@ -13,7 +13,7 @@ export declare const AxesPanelMemo: React.MemoExoticComponent<typeof AxesPanel>;
13
13
  * JSX Component for axes gizmo.
14
14
  */
15
15
  declare function AxesPanel(props: {
16
- viewer: VIM.Viewer;
16
+ viewer: Core.Webgl.Viewer;
17
17
  camera: CameraRef;
18
18
  settings: SettingsState;
19
19
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,11 +2,11 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import { WebglViewer } from '../..';
6
- import { Isolation } from '../helpers/isolation';
7
5
  import { CameraRef } from '../state/cameraState';
8
6
  import { TreeActionRef } from '../bim/bimTree';
9
7
  import { ModalRef } from './modal';
8
+ import { IsolationRef } from '../state/sharedIsolation';
9
+ import * as Core from '../../core-viewers';
10
10
  type ClickCallback = React.MouseEvent<HTMLDivElement, MouseEvent>;
11
11
  export declare function showContextMenu(position: {
12
12
  x: number;
@@ -59,16 +59,16 @@ export type ContextMenuCustomization = (e: ContextMenuElement[]) => ContextMenuE
59
59
  /**
60
60
  * Memoized version of VimContextMenu.
61
61
  */
62
- export declare const VimContextMenuMemo: React.MemoExoticComponent<typeof VimContextMenu>;
62
+ export declare const VimContextMenuMemo: React.MemoExoticComponent<typeof ContextMenu>;
63
63
  /**
64
- * Context menu component definition according to current state.
64
+ * Context menu viewer definition according to current state.
65
65
  */
66
- export declare function VimContextMenu(props: {
67
- viewer: WebglViewer.Viewer;
66
+ export declare function ContextMenu(props: {
67
+ viewer: Core.Webgl.Viewer;
68
68
  camera: CameraRef;
69
69
  modal: ModalRef;
70
- isolation: Isolation;
71
- selection: WebglViewer.Object3D[];
70
+ isolation: IsolationRef;
71
+ selection: Core.Webgl.Element3D[];
72
72
  customization?: (e: ContextMenuElement[]) => ContextMenuElement[];
73
73
  treeRef: React.MutableRefObject<TreeActionRef | undefined>;
74
74
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { StateRef } from "../helpers/reactUtils";
2
+ interface BasePanelField {
3
+ id: string;
4
+ label: string;
5
+ }
6
+ export interface PanelFieldText extends BasePanelField {
7
+ type: "text";
8
+ state: StateRef<string>;
9
+ }
10
+ export interface PanelFieldBool extends BasePanelField {
11
+ type: "bool";
12
+ state: StateRef<boolean>;
13
+ }
14
+ export type PanelField = PanelFieldText | PanelFieldBool;
15
+ export interface GenericPanelProps {
16
+ showPanel: StateRef<boolean>;
17
+ header?: React.ReactNode;
18
+ fields: PanelField[];
19
+ onClose?: () => void;
20
+ }
21
+ export declare function GenericPanel(props: GenericPanelProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,14 @@
1
+ export * from './axesPanel';
2
+ export * from './contextMenu';
3
+ export * from './genericPanel';
4
+ export * from './help';
5
+ export * from './loadingBox';
6
+ export * from './logo';
7
+ export * from './messageBox';
8
+ export * from './modal';
9
+ export * from './overlay';
10
+ export * from './performance';
11
+ export * from './renderSettingsPanel';
12
+ export * from './restOfScreen';
13
+ export * from './sectionBoxPanel';
14
+ export * from './toast';
@@ -17,9 +17,9 @@ export type LoadingBoxPropsTyped = LoadingBoxProps & {
17
17
  type: 'loading';
18
18
  };
19
19
  /**
20
- * LoadingBox component that displays a loading message or other messages.
20
+ * LoadingBox viewer that displays a loading message or other messages.
21
21
  * @param props - Component props containing optional content.
22
- * @returns The LoadingBox component or null if no content is provided.
22
+ * @returns The LoadingBox viewer or null if no content is provided.
23
23
  */
24
24
  export declare function LoadingBox(props: {
25
25
  content: LoadingBoxProps;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { MessageBoxProps, MessageBoxPropsTyped } from './messageBox';
2
3
  import { LoadingBoxProps, LoadingBoxPropsTyped } from './loadingBox';
3
4
  import { HelpProps, HelpPropsTyped } from './help';
@@ -7,12 +8,11 @@ export type ModalPropsTyped = (MessageBoxPropsTyped | LoadingBoxPropsTyped | Hel
7
8
  onClose?: () => void;
8
9
  };
9
10
  export type ModalRef = {
10
- current: ModalPropsTyped | undefined;
11
+ getActiveState(): ModalPropsTyped | undefined;
11
12
  loading(content: LoadingBoxProps | undefined): void;
12
13
  message(content: MessageBoxProps | undefined): void;
13
14
  help(show: boolean): void;
14
15
  };
15
- export declare function useModal(canFollowLinks: boolean): ModalRef;
16
- export declare function Modal(props: {
17
- state: ModalRef;
18
- }): import("react/jsx-runtime").JSX.Element;
16
+ export declare const Modal: React.ForwardRefExoticComponent<{
17
+ canFollowLinks: boolean;
18
+ } & React.RefAttributes<ModalRef>>;
@@ -0,0 +1,4 @@
1
+ import { IsolationRef } from "../state/sharedIsolation";
2
+ export declare function IsolationSettingsPanel(props: {
3
+ state: IsolationRef;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { SideState } from '../sidePanel/sideState';
1
+ import { SideState } from '../state/sideState';
2
2
  export declare function RestOfScreen(props: {
3
3
  side: SideState;
4
4
  content: () => JSX.Element;
@@ -2,8 +2,8 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import * as VIM from '../../core-viewers/webgl/index';
6
- import { SideState } from './sideState';
5
+ import * as Core from '../../core-viewers';
6
+ import { SideState } from '../state/sideState';
7
7
  import { Container } from '../container';
8
8
  /**
9
9
  * Memoized version of the SidePanel.
@@ -15,6 +15,6 @@ export declare const SidePanelMemo: React.MemoExoticComponent<typeof SidePanel>;
15
15
  export declare function SidePanel(props: {
16
16
  container: Container;
17
17
  side: SideState;
18
- viewer: VIM.Viewer;
18
+ viewer: Core.Webgl.Viewer;
19
19
  content: () => JSX.Element;
20
20
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,8 +2,8 @@
2
2
  * @module viw-webgl-react
3
3
  */
4
4
  import React from 'react';
5
- import * as VIM from '../../core-viewers/webgl/index';
6
- import { SideState } from '../sidePanel/sideState';
5
+ import * as Core from '../../core-viewers';
6
+ import { SideState } from '../state/sideState';
7
7
  export type ToastConfigSpeed = {
8
8
  visible: boolean;
9
9
  speed: number;
@@ -16,7 +16,7 @@ export declare const MenuToastMemo: React.MemoExoticComponent<typeof MenuToast>;
16
16
  * Toast jsx component that briefly shows up when camera speed changes.
17
17
  */
18
18
  declare function MenuToast(props: {
19
- viewer: VIM.Viewer;
19
+ viewer: Core.Webgl.Viewer;
20
20
  side: SideState;
21
21
  }): import("react/jsx-runtime").JSX.Element;
22
22
  export {};
@@ -0,0 +1,5 @@
1
+ export * from './settings';
2
+ export * from './settingsStorage';
3
+ export * from './userBoolean';
4
+ export type * from './menuSettings';
5
+ export type * from './settingsState';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
3
  */
4
- import * as VIM from '../../core-viewers/webgl/index';
4
+ import * as Core from '../../core-viewers';
5
5
  import { SettingsState } from './settingsState';
6
6
  /**
7
7
  * JSX Component to interact with settings.
@@ -11,7 +11,7 @@ import { SettingsState } from './settingsState';
11
11
  * @returns
12
12
  */
13
13
  export declare function MenuSettings(props: {
14
- viewer: VIM.Viewer;
14
+ viewer: Core.Webgl.Viewer;
15
15
  settings: SettingsState;
16
16
  visible: boolean;
17
17
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
- * Contains settings and type definitions for the Vim web component
3
+ * Contains settings and type definitions for the Vim web viewer
4
4
  */
5
+ import { UserBoolean } from "./userBoolean";
5
6
  /**
6
7
  * Makes all fields optional recursively
7
8
  * @template T - The type to make recursively partial
@@ -11,27 +12,10 @@ export type RecursivePartial<T> = {
11
12
  [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
12
13
  };
13
14
  /**
14
- * Represents a boolean value that can also be locked to always true or false
15
- * @typedef {boolean | 'AlwaysTrue' | 'AlwaysFalse'} UserBoolean
15
+ * Complete settings configuration for the Vim viewer
16
+ * @interface Settings
16
17
  */
17
- export type UserBoolean = boolean | 'AlwaysTrue' | 'AlwaysFalse';
18
- /**
19
- * Checks if a UserBoolean value is effectively true
20
- * @param {UserBoolean | boolean} value - The value to check
21
- * @returns {boolean} True if the value is true or 'AlwaysTrue'
22
- */
23
- export declare function isTrue(value: UserBoolean | boolean): value is true | "AlwaysTrue";
24
- /**
25
- * Checks if a UserBoolean value is effectively false
26
- * @param {UserBoolean | boolean} value - The value to check
27
- * @returns {boolean} True if the value is false or 'AlwaysFalse'
28
- */
29
- export declare function isFalse(value: UserBoolean | boolean): value is false | "AlwaysFalse";
30
- /**
31
- * Complete settings configuration for the Vim component
32
- * @interface ComponentSettings
33
- */
34
- export type ComponentSettings = {
18
+ export type Settings = {
35
19
  materials: {
36
20
  useFastMaterial: boolean;
37
21
  useGhostMaterial: boolean;
@@ -76,34 +60,11 @@ export type ComponentSettings = {
76
60
  /**
77
61
  * Partial version of ComponentSettings where all properties are optional
78
62
  */
79
- export type PartialComponentSettings = RecursivePartial<ComponentSettings>;
80
- /**
81
- * Checks if any axes-related UI buttons are enabled
82
- * @param {ComponentSettings} settings - The component settings to check
83
- * @returns {boolean} True if any axes buttons are enabled
84
- */
85
- export declare function anyUiAxesButton(settings: ComponentSettings): UserBoolean;
86
- /**
87
- * Checks if any cursor-related UI buttons are enabled
88
- * @param {ComponentSettings} settings - The component settings to check
89
- * @returns {boolean} True if any cursor buttons are enabled
90
- */
91
- export declare function anyUiCursorButton(settings: ComponentSettings): boolean;
92
- /**
93
- * Checks if any tool-related UI buttons are enabled
94
- * @param {ComponentSettings} settings - The component settings to check
95
- * @returns {boolean} True if any tool buttons are enabled
96
- */
97
- export declare function anyUiToolButton(settings: ComponentSettings): boolean;
98
- /**
99
- * Checks if any settings-related UI buttons are enabled
100
- * @param {ComponentSettings} settings - The component settings to check
101
- * @returns {boolean} True if any settings buttons are enabled
102
- */
103
- export declare function anyUiSettingButton(settings: ComponentSettings): boolean;
63
+ export type PartialSettings = RecursivePartial<Settings>;
104
64
  /**
105
- * Default settings configuration for the Vim component
65
+ * Default settings configuration for the Vim Viewer
106
66
  * @constant
107
- * @type {ComponentSettings}
67
+ * @type {Settings}
108
68
  */
109
- export declare const defaultSettings: ComponentSettings;
69
+ export declare function getDefaultSettings(): Settings;
70
+ export declare function createSettings(settings: PartialSettings): Settings;
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
3
  */
4
- import * as VIM from '../../core-viewers/webgl/index';
5
- import { ComponentSettings, PartialComponentSettings } from './settings';
4
+ import * as Core from '../../core-viewers';
5
+ import { Settings, PartialSettings } from './settings';
6
6
  export type SettingsState = {
7
- value: ComponentSettings;
8
- update: (updater: (s: ComponentSettings) => void) => void;
9
- register: (action: (s: ComponentSettings) => void) => void;
7
+ value: Settings;
8
+ update: (updater: (s: Settings) => void) => void;
9
+ register: (action: (s: Settings) => void) => void;
10
10
  };
11
11
  /**
12
12
  * Returns a new state closure for settings.
13
13
  */
14
- export declare function useSettings(viewer: VIM.Viewer, value: PartialComponentSettings): SettingsState;
14
+ export declare function useSettings(viewer: Core.Webgl.Viewer, value: PartialSettings): SettingsState;
15
15
  /**
16
- * Apply given vim component settings to the given viewer.
16
+ * Apply given vim viewer settings to the given viewer.
17
17
  */
18
- export declare function applySettings(viewer: VIM.Viewer, settings: ComponentSettings): void;
18
+ export declare function applySettings(viewer: Core.Webgl.Viewer, settings: Settings): void;
@@ -1,15 +1,15 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
3
  */
4
- import { ComponentSettings, PartialComponentSettings } from './settings';
4
+ import { Settings, PartialSettings } from './settings';
5
5
  /**
6
- * Retrieves component settings from localStorage and applies permissions
7
- * @param settings - Partial component settings to apply permissions from
6
+ * Retrieves viewer settings from localStorage and applies permissions
7
+ * @param settings - Partial viewer settings to apply permissions from
8
8
  * @returns The stored settings with applied permissions, or empty object if retrieval fails
9
9
  */
10
- export declare function getLocalSettings(settings?: PartialComponentSettings): {};
10
+ export declare function getLocalSettings(settings?: PartialSettings): {};
11
11
  /**
12
- * Saves component settings to localStorage after removing permissions
12
+ * Saves viewer settings to localStorage after removing permissions
13
13
  * @param value - Component settings to save
14
14
  */
15
- export declare function saveSettingsToLocal(value: ComponentSettings): void;
15
+ export declare function saveSettingsToLocal(value: Settings): void;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Represents a boolean value that can also be locked to always true or false
3
+ * @typedef {boolean | 'AlwaysTrue' | 'AlwaysFalse'} UserBoolean
4
+ */
5
+ export type UserBoolean = boolean | 'AlwaysTrue' | 'AlwaysFalse';
6
+ /**
7
+ * Checks if a UserBoolean value is effectively true
8
+ * @param {UserBoolean | boolean} value - The value to check
9
+ * @returns {boolean} True if the value is true or 'AlwaysTrue'
10
+ */
11
+ export declare function isTrue(value: UserBoolean | boolean): value is true | "AlwaysTrue";
12
+ /**
13
+ * Checks if a UserBoolean value is effectively false
14
+ * @param {UserBoolean | boolean} value - The value to check
15
+ * @returns {boolean} True if the value is false or 'AlwaysFalse'
16
+ */
17
+ export declare function isFalse(value: UserBoolean | boolean): value is false | "AlwaysFalse";
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @module viw-webgl-react
3
3
  */
4
- import { SectionBoxRef, THREE } from '../../index';
4
+ import * as THREE from 'three';
5
+ import { SectionBoxRef } from './sectionBoxState';
5
6
  import { ActionRef, AsyncFuncRef, StateRef } from '../helpers/reactUtils';
6
7
  import { ISignal } from 'ste-signals';
7
8
  export interface CameraRef {
@@ -1,63 +1,54 @@
1
- import * as VIM from '../../core-viewers/webgl/index';
1
+ import * as Core from "../../core-viewers";
2
2
  import { CameraRef } from './cameraState';
3
3
  import { CursorManager } from '../helpers/cursor';
4
- import { Isolation } from '../helpers/isolation';
5
- import { ComponentSettings } from '../settings/settings';
6
- import { SideState } from '../sidePanel/sideState';
7
- import * as Icons from '../panels/icons';
4
+ import { Settings } from '../settings';
5
+ import { SideState } from './sideState';
6
+ import * as Icons from '../icons';
8
7
  import { SectionBoxRef } from './sectionBoxState';
9
8
  import { getMeasureState } from './measureState';
10
9
  import { ModalRef } from '../panels/modal';
11
- import * as ControlBar from '../controlbar/controlBar';
10
+ import { IsolationRef } from './sharedIsolation';
11
+ import * as ControlBar from '../controlbar';
12
12
  /**
13
13
  * Returns a control bar section for the section box.
14
14
  */
15
15
  export declare function controlBarSectionBox(section: SectionBoxRef, hasSelection: boolean): ControlBar.IControlBarSection;
16
- export declare function controlBarActions(camera: CameraRef, settings: ComponentSettings, isolation: Isolation, measure: ReturnType<typeof getMeasureState>): {
16
+ export declare function controlBarMeasure(settings: Settings, measure: ReturnType<typeof getMeasureState>): {
17
17
  id: string;
18
18
  enable: () => boolean;
19
19
  style: string;
20
- buttons: ({
21
- id: string;
22
- enabled: () => boolean;
23
- tip: string;
24
- action: () => void;
25
- icon: typeof Icons.toggleIsolation;
26
- style: typeof ControlBar.buttonDefaultStyle;
27
- isOn?: undefined;
28
- } | {
20
+ buttons: {
29
21
  id: string;
30
22
  enabled: () => boolean;
31
23
  isOn: () => boolean;
32
24
  tip: string;
33
25
  action: () => void;
34
26
  icon: typeof Icons.measure;
35
- style: typeof ControlBar.buttonDefaultStyle;
36
- })[];
27
+ style: typeof ControlBar.Style.buttonDefaultStyle;
28
+ }[];
37
29
  };
38
30
  export declare function controlBarCamera(camera: CameraRef): ControlBar.IControlBarSection;
31
+ export declare function controlBarSelection(isolation: IsolationRef): ControlBar.IControlBarSection;
39
32
  /**
40
33
  * Combines all control bar sections into one control bar.
41
34
  */
42
- export declare function useControlBar(viewer: VIM.Viewer, camera: CameraRef, modal: ModalRef, side: SideState, isolation: Isolation, cursor: CursorManager, settings: ComponentSettings, section: SectionBoxRef, customization: ControlBar.ControlBarCustomization | undefined): (ControlBar.IControlBarSection | {
35
+ export declare function useControlBar(viewer: Core.Webgl.Viewer, camera: CameraRef, modal: ModalRef, side: SideState, cursor: CursorManager, settings: Settings, section: SectionBoxRef, isolationRef: IsolationRef, customization: ControlBar.ControlBarCustomization | undefined): (ControlBar.IControlBarSection | {
43
36
  id: string;
44
37
  enable: () => boolean;
45
38
  style: string;
46
- buttons: ({
47
- id: string;
48
- enabled: () => boolean;
49
- tip: string;
50
- action: () => void;
51
- icon: typeof Icons.toggleIsolation;
52
- style: typeof ControlBar.buttonDefaultStyle;
53
- isOn?: undefined;
54
- } | {
39
+ buttons: {
55
40
  id: string;
56
41
  enabled: () => boolean;
57
42
  isOn: () => boolean;
58
43
  tip: string;
59
44
  action: () => void;
60
45
  icon: typeof Icons.measure;
61
- style: typeof ControlBar.buttonDefaultStyle;
62
- })[];
46
+ style: typeof ControlBar.Style.buttonDefaultStyle;
47
+ }[];
63
48
  })[];
49
+ /**
50
+ * Checks if any settings-related UI buttons are enabled
51
+ * @param {Settings} settings - The viewer settings to check
52
+ * @returns {boolean} True if any settings buttons are enabled
53
+ */
54
+ export declare function anyUiSettingButton(settings: Settings): boolean;
@@ -0,0 +1,9 @@
1
+ export * from './cameraState';
2
+ export * from './controlBarState';
3
+ export * from './fullScreenState';
4
+ export * from './measureState';
5
+ export * from './pointerState';
6
+ export * from './sectionBoxState';
7
+ export * from './sharedIsolation';
8
+ export * from './sideState';
9
+ export * from './viewerInputs';
@@ -1,6 +1,6 @@
1
- import { WebglViewer } from '../../index';
1
+ import * as Core from '../../core-viewers';
2
2
  import { CursorManager } from '../helpers/cursor';
3
- export declare function getMeasureState(viewer: WebglViewer.Viewer, cursor: CursorManager): {
3
+ export declare function getMeasureState(viewer: Core.Webgl.Viewer, cursor: CursorManager): {
4
4
  active: boolean;
5
5
  toggle: () => void;
6
6
  clear: () => void;
@@ -1,6 +1,6 @@
1
- import * as VIM from '../../core-viewers/webgl/index';
2
- export declare function getPointerState(viewer: VIM.Viewer): {
3
- mode: VIM.PointerMode;
4
- setMode: import("react").Dispatch<import("react").SetStateAction<VIM.PointerMode>>;
5
- onButton: (target: VIM.PointerMode) => void;
1
+ import * as Core from '../../core-viewers';
2
+ export declare function getPointerState(viewer: Core.Webgl.Viewer): {
3
+ mode: Core.PointerMode;
4
+ setMode: import("react").Dispatch<import("react").SetStateAction<Core.PointerMode>>;
5
+ onButton: (target: Core.PointerMode) => void;
6
6
  };