From a4d386c5219179e36fa676bd90eb8405380e46c8 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Mon, 10 Jan 2022 18:10:51 +0100 Subject: [PATCH] Use ES modules. --- .github/workflows/build.yml | 3 +- appveyor.yml | 9 +- package.json | 28 +- sandbox/embed_edges.html | 72 +- sandbox/embed_filehost.html | 72 +- sandbox/embed_selfhost_code.html | 74 +- sandbox/embed_selfhost_errors.html | 72 +- sandbox/embed_selfhost_externallibs.html | 76 +- sandbox/embed_selfhost_fullscreen.html | 73 +- sandbox/embed_selfhost_manual.html | 72 +- sandbox/embed_selfhost_multiple.html | 72 +- sandbox/embed_selfhost_multiple_2.html | 72 +- sandbox/embed_selfhost_single.html | 74 +- sandbox/embed_selfhost_single_scroll.html | 74 +- source/{ => engine}/core/core.js | 21 +- source/{ => engine}/core/taskrunner.js | 24 +- source/{ => engine}/export/exporter.js | 26 +- source/{ => engine}/export/exporter3dm.js | 20 +- source/{ => engine}/export/exporterbase.js | 14 +- source/{ => engine}/export/exportergltf.js | 58 +- source/{ => engine}/export/exportermodel.js | 22 +- source/{ => engine}/export/exporterobj.js | 27 +- source/{ => engine}/export/exporteroff.js | 14 +- source/{ => engine}/export/exporterply.js | 23 +- source/{ => engine}/export/exporterstl.js | 21 +- source/{ => engine}/geometry/box3d.js | 18 +- source/engine/geometry/coord2d.js | 35 + source/{ => engine}/geometry/coord3d.js | 64 +- source/{ => engine}/geometry/coord4d.js | 6 +- source/engine/geometry/geometry.js | 56 ++ source/{ => engine}/geometry/matrix.js | 49 +- source/{ => engine}/geometry/octree.js | 36 +- source/{ => engine}/geometry/quaternion.js | 16 +- .../{ => engine}/geometry/transformation.js | 19 +- source/{ => engine}/geometry/tween.js | 22 +- source/{ => engine}/import/filelist.js | 49 +- source/{ => engine}/import/importer.js | 103 ++- source/{ => engine}/import/importer3dm.js | 48 +- source/{ => engine}/import/importer3ds.js | 190 +++-- source/{ => engine}/import/importerbase.js | 17 +- source/{ => engine}/import/importergltf.js | 202 ++--- source/{ => engine}/import/importerifc.js | 55 +- source/{ => engine}/import/importero3dv.js | 74 +- source/{ => engine}/import/importerobj.js | 75 +- source/{ => engine}/import/importeroff.js | 26 +- source/{ => engine}/import/importerply.js | 89 ++- source/{ => engine}/import/importerstl.js | 43 +- source/{ => engine}/import/importersvg.js | 9 +- source/{ => engine}/import/importerthree.js | 78 +- source/{ => engine}/import/importerutils.js | 32 +- source/{ => engine}/io/binaryreader.js | 4 +- source/{ => engine}/io/binarywriter.js | 4 +- source/{ => engine}/io/bufferutils.js | 36 +- source/{ => engine}/io/externallibs.js | 21 +- source/{ => engine}/io/fileutils.js | 34 +- source/{ => engine}/io/textwriter.js | 4 +- source/engine/main.js | 327 ++++++++ source/{ => engine}/model/color.js | 60 +- source/{ => engine}/model/generator.js | 72 +- source/{ => engine}/model/material.js | 98 +-- source/{ => engine}/model/mesh.js | 8 +- source/{ => engine}/model/meshbuffer.js | 30 +- source/{ => engine}/model/meshinstance.js | 13 +- source/{ => engine}/model/meshutils.js | 36 +- source/{ => engine}/model/model.js | 18 +- .../{ => engine}/model/modelfinalization.js | 40 +- source/{ => engine}/model/modelutils.js | 41 +- source/{ => engine}/model/node.js | 18 +- source/{ => engine}/model/object.js | 8 +- source/{ => engine}/model/property.js | 10 +- source/engine/model/quantities.js | 37 + source/{ => engine}/model/topology.js | 28 +- source/{ => engine}/model/triangle.js | 6 +- .../{ => engine}/parameters/parameterlist.js | 64 +- source/{ => engine}/threejs/threeconverter.js | 63 +- .../{ => engine}/threejs/threemodelloader.js | 20 +- source/{ => engine}/threejs/threeutils.js | 52 +- source/engine/viewer/domutils.js | 225 ++++++ source/{ => engine}/viewer/embeddedviewer.js | 51 +- source/{ => engine}/viewer/measuretool.js | 8 +- source/{ => engine}/viewer/navigation.js | 146 ++-- source/{ => engine}/viewer/viewer.js | 122 +-- source/{ => engine}/viewer/viewergeometry.js | 30 +- source/geometry/coord2d.js | 33 - source/geometry/geometry.js | 56 -- source/model/quantities.js | 35 - source/viewer/domutils.js | 238 ------ .../o3dv/js => source/website}/cookies.js | 14 +- .../o3dv/js => source/website}/dialogs.js | 27 +- {website/o3dv/js => source/website}/embed.js | 28 +- .../js => source/website}/eventhandler.js | 4 +- .../js => source/website}/exportdialog.js | 116 +-- .../o3dv/js => source/website}/featureset.js | 2 +- .../o3dv/js => source/website}/hashhandler.js | 18 +- source/website/index.js | 51 ++ {website/o3dv/js => source/website}/modal.js | 61 +- .../o3dv/js => source/website}/navigator.js | 65 +- .../website}/navigatorfilespanel.js | 24 +- .../js => source/website}/navigatoritems.js | 51 +- .../website}/navigatormaterialspanel.js | 34 +- .../website}/navigatormeshespanel.js | 82 +- .../js => source/website}/navigatorpanel.js | 25 +- .../js => source/website}/openurldialog.js | 16 +- .../o3dv/js => source/website}/panelset.js | 39 +- .../o3dv/js => source/website}/settings.js | 25 +- .../js => source/website}/sharingdialog.js | 43 +- .../o3dv/js => source/website}/sidebar.js | 34 +- source/website/sidebardetailspanel.js | 191 +++++ .../website}/sidebarmeasurepanel.js | 42 +- source/website/sidebarpanel.js | 33 + .../website}/sidebarsettingspanel.js | 138 ++-- .../o3dv/js => source/website}/splitter.js | 4 +- .../js => source/website}/themehandler.js | 11 +- .../website}/threemodelloaderui.js | 43 +- .../o3dv/js => source/website}/toolbar.js | 25 +- .../o3dv/js => source/website}/treeview.js | 88 +- {website/o3dv/js => source/website}/utils.js | 123 ++- .../o3dv/js => source/website}/website.js | 142 ++-- test/test.js | 73 +- test/tests/core_test.js | 8 +- test/tests/exporter_test.js | 12 +- test/tests/exportermodel_test.js | 24 +- test/tests/exportimport_test.js | 17 +- test/tests/fileutils_test.js | 14 +- test/tests/generator_test.js | 40 +- test/tests/geometry_test.js | 140 ++-- test/tests/importer3ds_test.js | 42 +- test/tests/importer_test.js | 39 +- test/tests/importergltf_test.js | 84 +- test/tests/importero3dv_test.js | 34 +- test/tests/importerobj_test.js | 136 ++-- test/tests/importeroff_test.js | 42 +- test/tests/importerply_test.js | 60 +- test/tests/importerstl_test.js | 60 +- test/tests/importerutils_test.js | 20 +- test/tests/io_test.js | 14 +- test/tests/mesh_test.js | 24 +- test/tests/meshbuffer_test.js | 21 +- test/tests/model_test.js | 72 +- test/tests/modelutils_test.js | 50 +- test/tests/node_test.js | 28 +- test/tests/parameterlist_test.js | 8 +- test/tests/property_test.js | 8 +- test/tests/quantities_test.js | 102 +-- test/tests/taskrunner_test.js | 10 +- test/utils/globals.js | 207 ++--- test/utils/importall.js | 10 - test/utils/testfiles.js | 146 ++-- test/utils/testutils.js | 754 +++++++++--------- tools/config.json | 115 --- tools/{build.py => create_package.py} | 72 +- tools/{svg.py => generate_icon_font.py} | 2 +- tools/jsdoc.json | 2 +- tools/run_python.js | 2 +- tools/update.py | 53 -- tools/update_engine_exports.py | 57 ++ .../{o3dv => }/css/O3DVIcons/O3DVIcons.woff | Bin .../{o3dv => }/css/O3DVIcons/checkmark.svg | 0 website/{o3dv => }/css/Quicksand/OFL.txt | 0 .../css/Quicksand/Quicksand-Bold.ttf | Bin .../css/Quicksand/Quicksand-Light.ttf | Bin .../css/Quicksand/Quicksand-Medium.ttf | Bin .../css/Quicksand/Quicksand-Regular.ttf | Bin .../css/Quicksand/Quicksand-SemiBold.ttf | Bin website/{o3dv => }/css/controls.css | 0 website/{o3dv => }/css/core.css | 0 website/{o3dv => }/css/dialogs.css | 0 website/{o3dv => }/css/embed.css | 0 website/{o3dv => }/css/icons.css | 0 website/{o3dv => }/css/navigator.css | 0 website/{o3dv => }/css/panelset.css | 0 website/{o3dv => }/css/sidebar.css | 0 website/{o3dv => }/css/themes.css | 0 website/{o3dv => }/css/treeview.css | 0 website/{o3dv => }/css/website.css | 0 website/embed.html | 144 +--- website/index.html | 150 +--- website/o3dv/js/sidebardetailspanel.js | 179 ----- website/o3dv/js/sidebarpanel.js | 30 - 179 files changed, 4602 insertions(+), 4722 deletions(-) rename source/{ => engine}/core/core.js (55%) rename source/{ => engine}/core/taskrunner.js (84%) rename source/{ => engine}/export/exporter.js (57%) rename source/{ => engine}/export/exporter3dm.js (83%) rename source/{ => engine}/export/exporterbase.js (80%) rename source/{ => engine}/export/exportergltf.js (89%) rename source/{ => engine}/export/exportermodel.js (83%) rename source/{ => engine}/export/exporterobj.js (86%) rename source/{ => engine}/export/exporteroff.js (62%) rename source/{ => engine}/export/exporterply.js (78%) rename source/{ => engine}/export/exporterstl.js (76%) rename source/{ => engine}/geometry/box3d.js (78%) create mode 100644 source/engine/geometry/coord2d.js rename source/{ => engine}/geometry/coord3d.js (67%) rename source/{ => engine}/geometry/coord4d.js (58%) create mode 100644 source/engine/geometry/geometry.js rename source/{ => engine}/geometry/matrix.js (90%) rename source/{ => engine}/geometry/octree.js (80%) rename source/{ => engine}/geometry/quaternion.js (50%) rename source/{ => engine}/geometry/transformation.js (68%) rename source/{ => engine}/geometry/tween.js (50%) rename source/{ => engine}/import/filelist.js (66%) rename source/{ => engine}/import/importer.js (75%) rename source/{ => engine}/import/importer3dm.js (83%) rename source/{ => engine}/import/importer3ds.js (76%) rename source/{ => engine}/import/importerbase.js (82%) rename source/{ => engine}/import/importergltf.js (83%) rename source/{ => engine}/import/importerifc.js (79%) rename source/{ => engine}/import/importero3dv.js (59%) rename source/{ => engine}/import/importerobj.js (82%) rename source/{ => engine}/import/importeroff.js (74%) rename source/{ => engine}/import/importerply.js (83%) rename source/{ => engine}/import/importerstl.js (75%) rename source/{ => engine}/import/importersvg.js (92%) rename source/{ => engine}/import/importerthree.js (82%) rename source/{ => engine}/import/importerutils.js (70%) rename source/{ => engine}/io/binaryreader.js (98%) rename source/{ => engine}/io/binarywriter.js (98%) rename source/{ => engine}/io/bufferutils.js (77%) rename source/{ => engine}/io/externallibs.js (52%) rename source/{ => engine}/io/fileutils.js (82%) rename source/{ => engine}/io/textwriter.js (94%) create mode 100644 source/engine/main.js rename source/{ => engine}/model/color.js (56%) rename source/{ => engine}/model/generator.js (89%) rename source/{ => engine}/model/material.js (66%) rename source/{ => engine}/model/mesh.js (96%) rename source/{ => engine}/model/meshbuffer.js (91%) rename source/{ => engine}/model/meshinstance.js (92%) rename source/{ => engine}/model/meshutils.js (57%) rename source/{ => engine}/model/model.js (89%) rename source/{ => engine}/model/modelfinalization.js (91%) rename source/{ => engine}/model/modelutils.js (78%) rename source/{ => engine}/model/node.js (91%) rename source/{ => engine}/model/object.js (93%) rename source/{ => engine}/model/property.js (87%) create mode 100644 source/engine/model/quantities.js rename source/{ => engine}/model/topology.js (89%) rename source/{ => engine}/model/triangle.js (95%) rename source/{ => engine}/parameters/parameterlist.js (75%) rename source/{ => engine}/threejs/threeconverter.js (84%) rename source/{ => engine}/threejs/threemodelloader.js (73%) rename source/{ => engine}/threejs/threeutils.js (78%) create mode 100644 source/engine/viewer/domutils.js rename source/{ => engine}/viewer/embeddedviewer.js (77%) rename source/{ => engine}/viewer/measuretool.js (94%) rename source/{ => engine}/viewer/navigation.js (70%) rename source/{ => engine}/viewer/viewer.js (81%) rename source/{ => engine}/viewer/viewergeometry.js (92%) delete mode 100644 source/geometry/coord2d.js delete mode 100644 source/geometry/geometry.js delete mode 100644 source/model/quantities.js delete mode 100644 source/viewer/domutils.js rename {website/o3dv/js => source/website}/cookies.js (86%) rename {website/o3dv/js => source/website}/dialogs.js (74%) rename {website/o3dv/js => source/website}/embed.js (76%) rename {website/o3dv/js => source/website}/eventhandler.js (91%) rename {website/o3dv/js => source/website}/exportdialog.js (58%) rename {website/o3dv/js => source/website}/featureset.js (66%) rename {website/o3dv/js => source/website}/hashhandler.js (73%) create mode 100644 source/website/index.js rename {website/o3dv/js => source/website}/modal.js (74%) rename {website/o3dv/js => source/website}/navigator.js (77%) rename {website/o3dv/js => source/website}/navigatorfilespanel.js (62%) rename {website/o3dv/js => source/website}/navigatoritems.js (66%) rename {website/o3dv/js => source/website}/navigatormaterialspanel.js (71%) rename {website/o3dv/js => source/website}/navigatormeshespanel.js (79%) rename {website/o3dv/js => source/website}/navigatorpanel.js (56%) rename {website/o3dv/js => source/website}/openurldialog.js (60%) rename {website/o3dv/js => source/website}/panelset.js (75%) rename {website/o3dv/js => source/website}/settings.js (72%) rename {website/o3dv/js => source/website}/sharingdialog.js (77%) rename {website/o3dv/js => source/website}/sidebar.js (66%) create mode 100644 source/website/sidebardetailspanel.js rename {website/o3dv/js => source/website}/sidebarmeasurepanel.js (63%) create mode 100644 source/website/sidebarpanel.js rename {website/o3dv/js => source/website}/sidebarsettingspanel.js (65%) rename {website/o3dv/js => source/website}/splitter.js (92%) rename {website/o3dv/js => source/website}/themehandler.js (93%) rename {website/o3dv/js => source/website}/threemodelloaderui.js (71%) rename {website/o3dv/js => source/website}/toolbar.js (79%) rename {website/o3dv/js => source/website}/treeview.js (63%) rename {website/o3dv/js => source/website}/utils.js (69%) rename {website/o3dv/js => source/website}/website.js (82%) delete mode 100644 test/utils/importall.js rename tools/{build.py => create_package.py} (65%) rename tools/{svg.py => generate_icon_font.py} (95%) delete mode 100644 tools/update.py create mode 100644 tools/update_engine_exports.py rename website/{o3dv => }/css/O3DVIcons/O3DVIcons.woff (100%) rename website/{o3dv => }/css/O3DVIcons/checkmark.svg (100%) rename website/{o3dv => }/css/Quicksand/OFL.txt (100%) rename website/{o3dv => }/css/Quicksand/Quicksand-Bold.ttf (100%) rename website/{o3dv => }/css/Quicksand/Quicksand-Light.ttf (100%) rename website/{o3dv => }/css/Quicksand/Quicksand-Medium.ttf (100%) rename website/{o3dv => }/css/Quicksand/Quicksand-Regular.ttf (100%) rename website/{o3dv => }/css/Quicksand/Quicksand-SemiBold.ttf (100%) rename website/{o3dv => }/css/controls.css (100%) rename website/{o3dv => }/css/core.css (100%) rename website/{o3dv => }/css/dialogs.css (100%) rename website/{o3dv => }/css/embed.css (100%) rename website/{o3dv => }/css/icons.css (100%) rename website/{o3dv => }/css/navigator.css (100%) rename website/{o3dv => }/css/panelset.css (100%) rename website/{o3dv => }/css/sidebar.css (100%) rename website/{o3dv => }/css/themes.css (100%) rename website/{o3dv => }/css/treeview.css (100%) rename website/{o3dv => }/css/website.css (100%) delete mode 100644 website/o3dv/js/sidebardetailspanel.js delete mode 100644 website/o3dv/js/sidebarpanel.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2132d6f..db74d26 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,5 +23,6 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: npm install - - run: npm run build + - run: npm run lint - run: npm run test + - run: npm run create_package diff --git a/appveyor.yml b/appveyor.yml index 4717929..e523648 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,13 +10,12 @@ install: - npm install build_script: - - npm run build - -test_script: + - npm run lint - npm run test - + - npm run create_package + artifacts: - - path: build\final\package\* + - path: dist\final\package\* deploy: description: 'News:\n- ...' diff --git a/package.json b/package.json index 378de68..4eb9fe6 100644 --- a/package.json +++ b/package.json @@ -4,28 +4,35 @@ "version": "0.8.4", "repository": "github:kovacsv/Online3DViewer", "license": "MIT", + "type": "module", "devDependencies": { "clean-css-cli": "^5.5.0", "docdash": "^1.2.0", + "esbuild": "^0.14.11", "eslint": "^8.5.0", "fantasticon": "^1.2.2", - "google-closure-compiler": "^20211201.0.0", "http-server": "^14.0.0", "jsdoc": "^3.6.7", "mocha": "^9.1.3", "oslllo-svg-fixer": "^1.4.0", - "rewire": "^6.0.0", "svgo": "^2.3.1" }, "scripts": { "start": "http-server", "test": "mocha test", - "lint": "eslint source && eslint website", - "doc": "jsdoc -c tools/jsdoc.json", - "build": "npm run lint && npm run doc && node tools/run_python.js tools/build.py", - "update": "node tools/run_python.js tools/update.py", + "lint": "eslint source", + "docs": "jsdoc -c tools/jsdoc.json", "updatelibs": "npm install && node tools/run_python.js tools/updatelibs.py", - "svg": "node tools/run_python.js tools/svg.py" + "generate_icon_font": "node tools/run_python.js tools/generate_icon_font.py", + "update_engine_exports": "node tools/run_python.js tools/update_engine_exports.py", + "create_dist": "npm run lint && npm run test && npm run create_package", + "create_package": "npm run build_engine_prod && npm run build_website_prod && npm run build_css_prod && node tools/run_python.js tools/create_package.py", + "build_dev": "npm run build_engine_dev && npm run build_website_dev", + "build_css_prod": "cleancss -o build/o3dv.website.min.css website/css/*", + "build_engine_dev": "npm run update_engine_exports && esbuild source/engine/main.js --bundle --minify --global-name=OV --sourcemap --outfile=build/o3dv.min-dev.js", + "build_engine_prod": "npm run update_engine_exports && esbuild source/engine/main.js --bundle --minify --global-name=OV --outfile=build/o3dv.min.js", + "build_website_dev": "esbuild source/website/index.js --bundle --minify --global-name=OV --sourcemap --outfile=build/o3dv.website.min-dev.js", + "build_website_prod": "esbuild source/website/index.js --bundle --minify --global-name=OV --outfile=build/o3dv.website.min.js" }, "dependencies": { "@simonwep/pickr": "1.8.2", @@ -52,13 +59,13 @@ "WebIFC": "readonly" }, "parserOptions": { - "ecmaVersion": 12 + "ecmaVersion": 12, + "sourceType": "module" }, "rules": { "semi": "error", "no-var": "error", "guard-for-in": "error", - "no-use-before-define": "error", "no-new": "error", "no-new-object": "error", "no-new-func": "error", @@ -77,7 +84,8 @@ "no-undef": "error", "no-extend-native": "error", "eqeqeq": "error", - "no-unused-vars": "off" + "no-unused-vars": "off", + "no-use-before-define": "off" } } } diff --git a/sandbox/embed_edges.html b/sandbox/embed_edges.html index 8a16d89..cce4431 100644 --- a/sandbox/embed_edges.html +++ b/sandbox/embed_edges.html @@ -8,77 +8,7 @@ Online 3D Viewer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +