# mapintegratedvuer
This project aims to provide an application to visually navigate anatomical entities to discover functional and physiological datasets
from organ-specific neural circuitry.
## Components in mapintegratedvuer
Mapintegratedvuer includes multiple components for visualising data, the list of viewers can be found below:
### [Flatmapvuer](https://github.com/ABI-Software/flatmapvuer)
### [Scaffoldvuer](https://github.com/ABI-Software/scaffoldvuer)
### [Simulationvuer](https://github.com/ABI-Software/simulationvuer)
### [Plotvuer](https://github.com/ABI-Software/plotvuer)
### [Sidebar](https://github.com/ABI-Software/map-sidebar.git)
## mapintegratedvuer on NPM
mapintegratedvuer is available on npm and can be installed into your project with the following command:
```bash
npm i @abi-software/mapintegratedvuer
```
## 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/mapintegratedvuer".
Import the package in your script as followed:
```javascript
import '@abi-software/mapintegratedvuer';
import '@abi-software/mapintegratedvuer/dist/mapintegratedvuer.css';
```
The codes above register the MapContent component in the global scope.
You can now use the MapContent in your vue template as followed:
```html
```
## Project setup from Github
The source code is available from Github, it can be found here: https://github.com/ABI-Software/mapintegratedvuer .
### Clone the respositroy
```bash
git clone https://github.com/ABI-Software/mapintegratedvuer
```
### Setup
```bash
npm install
```
### Create an instance
```bash
npm run serve
```
### Compiles and minifies for production
```bash
npm run build-bundle
```
## Example
The following pagedemonstrates the mapintegratedapp in action: https://mapcore-demo.org/current/sparc-app/maps
## Testing mapintegratedvuer dependencies in [sparc-app](https://github.com/nih-sparc/sparc-app/)
We will cover three options for updating nested dependencies.
### 1. Copy build files from `npm run build-bundle`
This works by directly changing files in `node-modules/`, where node will look to resolve dependencies.
```
cd
npm run build-bundle
cp /dist /node_modules/@//dist
cd
npm run build-bundle
cp /dist /node_modules/@abi-software/mapintegratedvuer/dist
yarn dev
```
*Note: this assumes assets in the static folders shipped with the npm package will remain unchanged*
### 2. Use `yarn link`
This is a variant of option 1, where we use `yarn link` to create a symbolic link from mapintegratedvuer->spar-app
It reduces the number of copies to 1, but still requires 3 builds
```
cd
npm run build-bundle
cp /dist /node_modules/@//dist
cd
npm run build-bundle
yarn link
cd sparc-app
yarn link @abi-software/mapintegratedvuer
yarn dev
```
(npm link does not work without disabling es-lint, which we won't go into)
### 3. Publish own version of mapintegratedvuer
This method is the most time consuming and has the downside of populating the npm package's version history with builds.
Since it mimics the way `sparc-app` will use it, it's gauranteed to work.
```
cd
npm run build-bundle
npm publish --tag alpha
cd mapintegratedvuer
npm install @/@alpha
```
Edit mapintegratedvuer/package.json:
Change `@abi-software/mapintegratedvuer` to `@/mapintegratedvuer`
```
cd mapintegratedvuer
npm run build-bundle
npm publish --tag alpha
```
Edit sparc-app/pages/maps/index.vue
Change `@abi-software/mapintegratedvuer` to `@/mapintegratedvuer`
```
cd sparc-app
yarn add @/mapintegratedvuer@alpha
yarn dev
```
## API Documentation
The API documentation is developed with `vitepress` and `vuese`. The API documentation pages are in the `docs` folder.
### To run in local development mode
```bash
npm run docs:watch
```
This will start the documentation server with `vitepress` on port `:5173` and watch the `FlatmapVuer` and `MultiFlatmapVuer` components changes.
## The HelpModeDialog
The `HelpModeDialog` is used to show help tooltips individually and one by one. This is available on Flatmap, MultiFlatmap, and Scaffold views.
To use `HelpModeDialog`, set `useHelpModeDialog` to `true`. The default value is `false`.
```HTML
```