@ifc-lite/viewer 1.1.7 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +373 -0
- package/dist/apple-touch-icon.png +0 -0
- package/dist/assets/Arrow.dom-BjDQoB2M.js +20 -0
- package/dist/assets/arrow2-bb-jcVEo.js +2 -0
- package/dist/assets/arrow2_bg-4Y7xYo54.wasm +0 -0
- package/dist/assets/arrow2_bg-BlXl-cSQ.js +1 -0
- package/dist/assets/arrow2_bg-BoXCojjR.wasm +0 -0
- package/dist/assets/desktop-cache-oPzaWXYE.js +1 -0
- package/dist/assets/event-DIOks52T.js +1 -0
- package/dist/assets/ifc-cache-BAN4vcd4.js +1 -0
- package/dist/assets/ifc-lite_bg-C6kblxf9.wasm +0 -0
- package/dist/assets/index-YBtrHPu3.js +65252 -0
- package/dist/assets/index-v3mcCUPN.css +1 -0
- package/dist/assets/native-bridge-CULtTDX3.js +111 -0
- package/dist/assets/wasm-bridge-CjL-lSak.js +1 -0
- package/dist/favicon-16x16-cropped.png +0 -0
- package/dist/favicon-16x16.png +0 -0
- package/dist/favicon-192x192-cropped.png +0 -0
- package/dist/favicon-192x192.png +0 -0
- package/dist/favicon-32x32-cropped.png +0 -0
- package/dist/favicon-32x32.png +0 -0
- package/dist/favicon-48x48-cropped.png +0 -0
- package/dist/favicon-48x48.png +0 -0
- package/dist/favicon-512x512-cropped.png +0 -0
- package/dist/favicon-512x512.png +0 -0
- package/dist/favicon-64x64-cropped.png +0 -0
- package/dist/favicon-64x64.png +0 -0
- package/dist/favicon-96x96-cropped.png +0 -0
- package/dist/favicon-96x96.png +0 -0
- package/dist/favicon-square-512.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/favicon.png +0 -0
- package/dist/favicon.svg +3 -0
- package/dist/index.html +44 -0
- package/dist/logo.png +0 -0
- package/dist/manifest.json +48 -0
- package/index.html +33 -2
- package/package.json +34 -17
- package/public/apple-touch-icon.png +0 -0
- package/public/favicon-16x16-cropped.png +0 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-192x192-cropped.png +0 -0
- package/public/favicon-192x192.png +0 -0
- package/public/favicon-32x32-cropped.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon-48x48-cropped.png +0 -0
- package/public/favicon-48x48.png +0 -0
- package/public/favicon-512x512-cropped.png +0 -0
- package/public/favicon-512x512.png +0 -0
- package/public/favicon-64x64-cropped.png +0 -0
- package/public/favicon-64x64.png +0 -0
- package/public/favicon-96x96-cropped.png +0 -0
- package/public/favicon-96x96.png +0 -0
- package/public/favicon-square-512.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/favicon.png +0 -0
- package/public/favicon.svg +3 -0
- package/public/logo.png +0 -0
- package/public/manifest.json +48 -0
- package/src/App.tsx +2 -0
- package/src/components/ui/alert.tsx +62 -0
- package/src/components/ui/badge.tsx +39 -0
- package/src/components/ui/dialog.tsx +120 -0
- package/src/components/ui/label.tsx +27 -0
- package/src/components/ui/select.tsx +151 -0
- package/src/components/ui/switch.tsx +30 -0
- package/src/components/ui/table.tsx +120 -0
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/viewer/BCFPanel.tsx +1164 -0
- package/src/components/viewer/BulkPropertyEditor.tsx +875 -0
- package/src/components/viewer/DataConnector.tsx +840 -0
- package/src/components/viewer/DrawingSettingsPanel.tsx +536 -0
- package/src/components/viewer/EntityContextMenu.tsx +45 -17
- package/src/components/viewer/ExportChangesButton.tsx +195 -0
- package/src/components/viewer/ExportDialog.tsx +402 -0
- package/src/components/viewer/HierarchyPanel.tsx +1132 -218
- package/src/components/viewer/IDSPanel.tsx +661 -0
- package/src/components/viewer/KeyboardShortcutsDialog.tsx +245 -39
- package/src/components/viewer/MainToolbar.tsx +418 -94
- package/src/components/viewer/PropertiesPanel.tsx +1355 -91
- package/src/components/viewer/PropertyEditor.tsx +611 -0
- package/src/components/viewer/Section2DPanel.tsx +3313 -0
- package/src/components/viewer/SheetSetupPanel.tsx +502 -0
- package/src/components/viewer/StatusBar.tsx +27 -16
- package/src/components/viewer/TitleBlockEditor.tsx +437 -0
- package/src/components/viewer/ToolOverlays.tsx +935 -127
- package/src/components/viewer/ViewerLayout.tsx +40 -11
- package/src/components/viewer/Viewport.tsx +1276 -336
- package/src/components/viewer/ViewportContainer.tsx +554 -18
- package/src/components/viewer/ViewportOverlays.tsx +24 -7
- package/src/hooks/useBCF.ts +504 -0
- package/src/hooks/useIDS.ts +1065 -0
- package/src/hooks/useIfc.ts +1534 -205
- package/src/hooks/useIfcCache.ts +279 -0
- package/src/hooks/useKeyboardShortcuts.ts +50 -8
- package/src/hooks/useModelSelection.ts +61 -0
- package/src/hooks/useViewerSelectors.ts +218 -0
- package/src/hooks/useWebGPU.ts +80 -0
- package/src/index.css +265 -27
- package/src/lib/platform.ts +23 -0
- package/src/services/cacheService.ts +142 -0
- package/src/services/desktop-cache.ts +143 -0
- package/src/services/fs-cache.ts +212 -0
- package/src/services/ifc-cache.ts +14 -6
- package/src/store/constants.ts +85 -0
- package/src/store/index.ts +214 -0
- package/src/store/slices/bcfSlice.ts +372 -0
- package/src/store/slices/cameraSlice.ts +63 -0
- package/src/store/slices/dataSlice.test.ts +226 -0
- package/src/store/slices/dataSlice.ts +112 -0
- package/src/store/slices/drawing2DSlice.ts +340 -0
- package/src/store/slices/hoverSlice.ts +40 -0
- package/src/store/slices/idsSlice.ts +310 -0
- package/src/store/slices/loadingSlice.ts +33 -0
- package/src/store/slices/measurementSlice.test.ts +217 -0
- package/src/store/slices/measurementSlice.ts +293 -0
- package/src/store/slices/modelSlice.test.ts +271 -0
- package/src/store/slices/modelSlice.ts +211 -0
- package/src/store/slices/mutationSlice.ts +502 -0
- package/src/store/slices/sectionSlice.test.ts +125 -0
- package/src/store/slices/sectionSlice.ts +58 -0
- package/src/store/slices/selectionSlice.test.ts +286 -0
- package/src/store/slices/selectionSlice.ts +263 -0
- package/src/store/slices/sheetSlice.ts +565 -0
- package/src/store/slices/uiSlice.ts +58 -0
- package/src/store/slices/visibilitySlice.test.ts +304 -0
- package/src/store/slices/visibilitySlice.ts +277 -0
- package/src/store/types.test.ts +135 -0
- package/src/store/types.ts +248 -0
- package/src/store.ts +40 -515
- package/src/utils/ifcConfig.ts +82 -0
- package/src/utils/localParsingUtils.ts +287 -0
- package/src/utils/serverDataModel.ts +783 -0
- package/src/utils/spatialHierarchy.ts +283 -0
- package/src/utils/viewportUtils.ts +334 -0
- package/src/vite-env.d.ts +23 -0
- package/src/webgpu-types.d.ts +128 -0
- package/src-tauri/Cargo.toml +29 -0
- package/src-tauri/build.rs +7 -0
- package/src-tauri/capabilities/default.json +18 -0
- package/src-tauri/icons/128x128.png +0 -0
- package/src-tauri/icons/128x128@2x.png +0 -0
- package/src-tauri/icons/32x32.png +0 -0
- package/src-tauri/icons/Square107x107Logo.png +0 -0
- package/src-tauri/icons/Square142x142Logo.png +0 -0
- package/src-tauri/icons/Square150x150Logo.png +0 -0
- package/src-tauri/icons/Square284x284Logo.png +0 -0
- package/src-tauri/icons/Square30x30Logo.png +0 -0
- package/src-tauri/icons/Square310x310Logo.png +0 -0
- package/src-tauri/icons/Square44x44Logo.png +0 -0
- package/src-tauri/icons/Square71x71Logo.png +0 -0
- package/src-tauri/icons/Square89x89Logo.png +0 -0
- package/src-tauri/icons/StoreLogo.png +0 -0
- package/src-tauri/icons/icon.icns +0 -0
- package/src-tauri/icons/icon.ico +0 -0
- package/src-tauri/icons/icon.png +0 -0
- package/src-tauri/src/lib.rs +21 -0
- package/src-tauri/src/main.rs +10 -0
- package/src-tauri/tauri.conf.json +39 -0
- package/vite.config.ts +174 -26
- package/public/ifc-lite_bg.wasm +0 -0
- package/public/web-ifc.wasm +0 -0
- package/src/components/Viewport.tsx +0 -723
- package/src/components/viewer/BoxSelectionOverlay.tsx +0 -53
package/dist/index.html
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" class="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>IFClite Viewer</title>
|
|
7
|
+
|
|
8
|
+
<!-- Legacy ICO favicon (for older browsers) -->
|
|
9
|
+
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
|
|
11
|
+
|
|
12
|
+
<!-- Modern SVG favicon (for modern browsers) -->
|
|
13
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
14
|
+
|
|
15
|
+
<!-- PNG favicons for various sizes and contexts -->
|
|
16
|
+
<link rel="icon" type="image/png" sizes="512x512" href="/favicon-512x512-cropped.png">
|
|
17
|
+
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192-cropped.png">
|
|
18
|
+
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96-cropped.png">
|
|
19
|
+
<link rel="icon" type="image/png" sizes="64x64" href="/favicon-64x64-cropped.png">
|
|
20
|
+
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48-cropped.png">
|
|
21
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32-cropped.png">
|
|
22
|
+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16-cropped.png">
|
|
23
|
+
|
|
24
|
+
<!-- Apple Touch Icon (iOS) -->
|
|
25
|
+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
|
26
|
+
|
|
27
|
+
<!-- Android Chrome icons -->
|
|
28
|
+
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192-cropped.png">
|
|
29
|
+
<link rel="icon" type="image/png" sizes="512x512" href="/favicon-512x512-cropped.png">
|
|
30
|
+
|
|
31
|
+
<!-- Web App Manifest (PWA support) -->
|
|
32
|
+
<link rel="manifest" href="/manifest.json">
|
|
33
|
+
|
|
34
|
+
<!-- Theme colors -->
|
|
35
|
+
<meta name="theme-color" content="#7aa2f7">
|
|
36
|
+
<meta name="msapplication-TileColor" content="#1a1b26">
|
|
37
|
+
<meta name="msapplication-TileImage" content="/favicon-192x192-cropped.png">
|
|
38
|
+
<script type="module" crossorigin src="/assets/index-YBtrHPu3.js"></script>
|
|
39
|
+
<link rel="stylesheet" crossorigin href="/assets/index-v3mcCUPN.css">
|
|
40
|
+
</head>
|
|
41
|
+
<body>
|
|
42
|
+
<div id="root"></div>
|
|
43
|
+
</body>
|
|
44
|
+
</html>
|
package/dist/logo.png
ADDED
|
Binary file
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "IFClite Viewer",
|
|
3
|
+
"short_name": "IFClite",
|
|
4
|
+
"description": "High-performance web viewer for IFC files",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"background_color": "#1a1b26",
|
|
8
|
+
"theme_color": "#7aa2f7",
|
|
9
|
+
"icons": [
|
|
10
|
+
{
|
|
11
|
+
"src": "/favicon-16x16-cropped.png",
|
|
12
|
+
"sizes": "16x16",
|
|
13
|
+
"type": "image/png"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"src": "/favicon-32x32-cropped.png",
|
|
17
|
+
"sizes": "32x32",
|
|
18
|
+
"type": "image/png"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"src": "/favicon-48x48-cropped.png",
|
|
22
|
+
"sizes": "48x48",
|
|
23
|
+
"type": "image/png"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"src": "/favicon-96x96-cropped.png",
|
|
27
|
+
"sizes": "96x96",
|
|
28
|
+
"type": "image/png"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"src": "/favicon-192x192-cropped.png",
|
|
32
|
+
"sizes": "192x192",
|
|
33
|
+
"type": "image/png",
|
|
34
|
+
"purpose": "any maskable"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"src": "/favicon-512x512-cropped.png",
|
|
38
|
+
"sizes": "512x512",
|
|
39
|
+
"type": "image/png",
|
|
40
|
+
"purpose": "any maskable"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"src": "/apple-touch-icon.png",
|
|
44
|
+
"sizes": "180x180",
|
|
45
|
+
"type": "image/png"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
package/index.html
CHANGED
|
@@ -1,9 +1,40 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
2
|
+
<html lang="en" class="dark">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>
|
|
6
|
+
<title>IFClite Viewer</title>
|
|
7
|
+
|
|
8
|
+
<!-- Legacy ICO favicon (for older browsers) -->
|
|
9
|
+
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
|
|
11
|
+
|
|
12
|
+
<!-- Modern SVG favicon (for modern browsers) -->
|
|
13
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
14
|
+
|
|
15
|
+
<!-- PNG favicons for various sizes and contexts -->
|
|
16
|
+
<link rel="icon" type="image/png" sizes="512x512" href="/favicon-512x512-cropped.png">
|
|
17
|
+
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192-cropped.png">
|
|
18
|
+
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96-cropped.png">
|
|
19
|
+
<link rel="icon" type="image/png" sizes="64x64" href="/favicon-64x64-cropped.png">
|
|
20
|
+
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48-cropped.png">
|
|
21
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32-cropped.png">
|
|
22
|
+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16-cropped.png">
|
|
23
|
+
|
|
24
|
+
<!-- Apple Touch Icon (iOS) -->
|
|
25
|
+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
|
26
|
+
|
|
27
|
+
<!-- Android Chrome icons -->
|
|
28
|
+
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192-cropped.png">
|
|
29
|
+
<link rel="icon" type="image/png" sizes="512x512" href="/favicon-512x512-cropped.png">
|
|
30
|
+
|
|
31
|
+
<!-- Web App Manifest (PWA support) -->
|
|
32
|
+
<link rel="manifest" href="/manifest.json">
|
|
33
|
+
|
|
34
|
+
<!-- Theme colors -->
|
|
35
|
+
<meta name="theme-color" content="#7aa2f7">
|
|
36
|
+
<meta name="msapplication-TileColor" content="#1a1b26">
|
|
37
|
+
<meta name="msapplication-TileImage" content="/favicon-192x192-cropped.png">
|
|
7
38
|
</head>
|
|
8
39
|
<body>
|
|
9
40
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/viewer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "IFC-Lite viewer application",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite",
|
|
8
|
-
"build": "(tsc || true) && vite build",
|
|
9
|
-
"preview": "vite preview"
|
|
10
|
-
},
|
|
11
6
|
"dependencies": {
|
|
12
|
-
"@
|
|
13
|
-
"@ifc-lite/data": "workspace:*",
|
|
14
|
-
"@ifc-lite/export": "workspace:*",
|
|
15
|
-
"@ifc-lite/geometry": "workspace:*",
|
|
16
|
-
"@ifc-lite/parser": "workspace:*",
|
|
17
|
-
"@ifc-lite/query": "workspace:*",
|
|
18
|
-
"@ifc-lite/renderer": "workspace:*",
|
|
19
|
-
"@ifc-lite/spatial": "workspace:*",
|
|
7
|
+
"@radix-ui/react-alert-dialog": "^1.1.6",
|
|
20
8
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
21
9
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
22
10
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
23
11
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
12
|
+
"@radix-ui/react-label": "^2.1.4",
|
|
13
|
+
"@radix-ui/react-select": "^2.1.6",
|
|
14
|
+
"@radix-ui/react-switch": "^1.1.6",
|
|
24
15
|
"@radix-ui/react-progress": "^1.1.8",
|
|
25
16
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
26
17
|
"@radix-ui/react-separator": "^1.1.8",
|
|
@@ -29,24 +20,50 @@
|
|
|
29
20
|
"@radix-ui/react-toggle": "^1.1.10",
|
|
30
21
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
31
22
|
"@tanstack/react-virtual": "^3.13.18",
|
|
23
|
+
"apache-arrow": "^14.0.2",
|
|
32
24
|
"autoprefixer": "^10.4.23",
|
|
33
25
|
"class-variance-authority": "^0.7.1",
|
|
34
26
|
"clsx": "^2.1.1",
|
|
35
27
|
"lucide-react": "^0.562.0",
|
|
28
|
+
"parquet-wasm": "^0.5.0",
|
|
36
29
|
"postcss": "^8.5.6",
|
|
37
30
|
"react": "^18.2.0",
|
|
38
31
|
"react-dom": "^18.2.0",
|
|
39
32
|
"react-resizable-panels": "^4.4.0",
|
|
40
33
|
"tailwind-merge": "^3.4.0",
|
|
41
34
|
"tailwindcss": "^4.1.18",
|
|
42
|
-
"zustand": "^4.4.0"
|
|
35
|
+
"zustand": "^4.4.0",
|
|
36
|
+
"@ifc-lite/bcf": "^1.6.0",
|
|
37
|
+
"@ifc-lite/cache": "^1.6.0",
|
|
38
|
+
"@ifc-lite/data": "^1.6.0",
|
|
39
|
+
"@ifc-lite/ids": "^1.6.0",
|
|
40
|
+
"@ifc-lite/drawing-2d": "^1.6.0",
|
|
41
|
+
"@ifc-lite/export": "^1.6.0",
|
|
42
|
+
"@ifc-lite/geometry": "^1.6.0",
|
|
43
|
+
"@ifc-lite/mutations": "^1.6.0",
|
|
44
|
+
"@ifc-lite/parser": "^1.6.0",
|
|
45
|
+
"@ifc-lite/query": "^1.6.0",
|
|
46
|
+
"@ifc-lite/renderer": "^1.6.0",
|
|
47
|
+
"@ifc-lite/server-client": "^1.6.0",
|
|
48
|
+
"@ifc-lite/spatial": "^1.6.0",
|
|
49
|
+
"@ifc-lite/wasm": "^1.6.0"
|
|
43
50
|
},
|
|
44
51
|
"devDependencies": {
|
|
45
52
|
"@tailwindcss/postcss": "^4.1.18",
|
|
46
53
|
"@types/react": "^18.2.0",
|
|
47
54
|
"@types/react-dom": "^18.2.0",
|
|
48
55
|
"@vitejs/plugin-react": "^4.2.0",
|
|
56
|
+
"tsx": "^4.7.0",
|
|
49
57
|
"typescript": "^5.3.0",
|
|
50
|
-
"vite": "^5.0.0"
|
|
58
|
+
"vite": "^5.0.0",
|
|
59
|
+
"vite-plugin-static-copy": "^3.1.4",
|
|
60
|
+
"vite-plugin-top-level-await": "^1.6.0",
|
|
61
|
+
"vite-plugin-wasm": "^3.5.0"
|
|
62
|
+
},
|
|
63
|
+
"scripts": {
|
|
64
|
+
"dev": "vite",
|
|
65
|
+
"build": "NODE_OPTIONS='--max-old-space-size=4096' bash -c '(tsc || true) && vite build'",
|
|
66
|
+
"preview": "vite preview",
|
|
67
|
+
"test": "bash -c 'shopt -s globstar && tsx --test src/**/*.test.ts'"
|
|
51
68
|
}
|
|
52
|
-
}
|
|
69
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|