# Scaffoldvuer This project aims to provide high-level 3D physiological models viewing capability. Scaffoldvuer is now built with Vue3 frameworks. Vue 2 version of Scaffoldvuer is no longer maintained and the source can be found in this [branch](https://github.com/ABI-Software/scaffoldvuer/tree/Vue-2). ## Scaffoldvuer on NPM Scaffoldvuer is available on npm and can be installed into your project with the following command: ```bash npm i @abi-software/scaffoldvuer ``` ## Project setup ``` npm install ``` ### Compiles and minifies for production ``` npm run build-bundle ``` ## How to use Install the package in your vue app project with the following command "npm i @abi-software/scaffoldvuer". Import the package in your script as followed: ```javascript import { ScaffoldVuer } from '@abi-software/scaffoldvuer'; import '@abi-software/scaffoldvuer/dist/style.css'; ``` Local registration in vue component: ```javascript export default { ... components: { ScaffoldVuer, } ... } ``` The codes above register the ScaffoldVuer component in the global scope. You can now use the ScaffoldVuer in your vue template as followed: ```html ``` url should be a variable/string containing the url of a compatible json model. scaffold-selected is the custom event triggered when a part of the 3D-scaffold is selected, see below for a sample callback. ```javascript methods: { ScaffoldSelected: function(annotation) { console.log(annotation); } } ``` A more in depth API reference can be found here: https://abi-software.github.io/scaffoldvuer/ . ## Project setup from Github The source code is available from Github, it can be found here: https://github.com/ABI-Software/scaffoldvuer . ### Clone the respositroy ```bash git clone https://github.com/ABI-Software/scaffoldvuer.git ``` ### Setup ```bash npm install ``` ### Compiles and minifies for production ```bash npm run build-bundle ``` ### Run the sample application ```bash npm run serve ``` ## Example The following example showcases ScaffoldVuer in action: https://mapcore-demo.org/current/scaffoldvuer/ ## Scaffoldvuer release process: ### Versioning Scaffoldvuer uses [semantic versioning](https://semver.org/). If any changes are experimental or parallel to the main development, [npm dist tags](https://docs.npmjs.com/cli/v9/commands/npm-dist-tag) are used to keep this version from being the default when `npm install @abi-software/scaffoldvuer` is used. Dist tags can be used like so: ``` npm publish --tag ``` `` is the dist tag to add. In example: `npm publish --tag beta` ### Publishing #### 1. Update the package number in [package.json](https://github.com/ABI-Software/scaffoldvuer/blob/main/package.json) #### 2. Bundles for scaffoldvuer can be built by using ``` npm run build-bundle ``` This builds the package to be digested by other vue packages by importing either the build or the source. ##### Build import ``` import { ScaffoldVuer } from "@abi-software/scaffoldvuer"; import '@abi-software/scaffoldvuer/dist/map-side-bar.css'; ``` ##### Source import (used in [abi-software/mapintegratedvuer](https://github.com/abi-Software/mapintegratedvuer)) ``` import { ScaffoldVuer } from "@abi-software/scaffoldvuer/src/components/index.js"; ``` #### 3. Publish with `npm publish` in the package directory ### Testing #### Testing [`zincjs`](https://github.com/alan-wu/ZincJS) Check that the version of zincjs used is running correctly and passing the tests. Test runs can be found here: https://autotest.bioeng.auckland.ac.nz/jenkins/blue/organizations/jenkins/ZincJS/activity Click on the latest test and search for `zincjs@` to find the zincjs version number. #### Visual check Open the links below, checking that they load in, render correctly and are usable: Region http://localhost:8081/#/?url=https://mapcore-bucket1.s3.us-west-2.amazonaws.com/format-testing/MyExport_metadata.json Glyph small http://localhost:8081/#/?url=https://mapcore-bucket1.s3.us-west-2.amazonaws.com/format-testing/TimeGlyphs/timeGlyphs_1.json Lines http://localhost:8081/#/?url=https://mapcore-bucket1.s3.us-west-2.amazonaws.com/format-testing/Lines/lines_metadata.json Glyph large http://localhost:8081/#/?url=https://mapcore-bucket1.s3.us-west-2.amazonaws.com/format-testing/TimeGlyphs/timeGlyphs_large_metadata.json Points http://localhost:8081/#/?url=https://mapcore-bucket1.s3.us-west-2.amazonaws.com/format-testing/Points/point_time_metadata.json Surfaces http://localhost:8081/#/?url=https://mapcore-bucket1.s3.us-west-2.amazonaws.com/format-testing/Surfaces/beating_heart_metadata.json #### Testing the build bundle in other packages Use one of the following methods for testing the scaffoldvuer build in apps that depend on this package: 1. Use [`npm link`](https://docs.npmjs.com/cli/v8/commands/npm-link) to test scaffoldvuer works in apps that import it. 2. Use symlink, or copy and paste the `/dist` directory. 3. Modify the package.json to /scaffoldvuer and publish. (Careful! If this is not done the version will need to be [deprecated](https://docs.npmjs.com/cli/v8/commands/npm-deprecate) One of the above methods will often need to be used in [abi-software/mapintegratedvuer](https://github.com/abi-Software/mapintegratedvuer)