bim+ websdk
=========

bim+ websdk is a javascript wrapper around the bim+ api

Quick Links
-----------

https://nemetschekprime.atlassian.net/wiki/spaces/bimpluspublic/pages/1090127532/Bimplus+Web+SDK+Reference

How to build
------------

### Install nodejs
[http://www.nodejs.org/](http://www.nodejs.org/)

### Install local npm modules
Open up a normal command line (admin is not needed) and go to the websdk folder

    npm install

(whenever package.json has changed, you might to do this again)

### Build websdk
Library building process is using UMD (Universal Module Definition) output format so
it's compatible with both cjs and amd module formats. The same library can be use in the
client or on the server. Build process is using babel so it's possible to use new ES2015
code in source codes.

Library can be build in several ways as a dev or prod version.
To run a dev build with source maps run:

    npm run build

To build a prod version - uglified, minified run:

    npm run build-prod

Pulish new release to npm (Hint: Before doing this npm login needs to be done and the package version adjusted) :

    npm run npm-publish

Check content of npm package (result is bimplus-renderer@(version).tar.gz)

    npm run npm-pack

    
### Develop/Debug websdk
goto your websdk folder

    npm link

goto your application folder which uses the websdk

    npm link bimplus-websdk

Do you changes in the websdk and build

    npm run build

or

    npm run build-prod

Your app will automatically get the changes done in the renderer

After developing it might be wise to unlink:
goto your websdk folder

    npm unlink
goto your application folder which uses the websdk

    npm unlink bimplus-websdk
    npm install

### Unit testing
With every build output is copied also to the test folder.
To run the unit tests go to the test subfolder and run :

    npm install
    npm run test

For more information see README.md inside the test folder

### Documentation
Bimplus WebSDK uses npm documentation plugin for easy documentation generation.
To generate a documentation please install documentation plugin via npm :

    npm install -g documentation

To create documentation in html format go to your websdk folder and run :

    npm run build-doc

Documentation output will be in websdk/documentation folder

To create documentation in markdown format go to your websdk folder and run :

    npm run build-docMd

Documentation output will be in websdk/documentation/Bimplus_WebSDK_doc.md file.

To create a markdown suitable for Confluence run script:

    npm run build-docConf

This script will convert generated markdown into Confluence format. See console
output for converted file name.

Content of the confluence file can be inserted into Confluence page :
- start confluence page editation mode
- choose Insert more content  / {} Markup option from toolbar
- in popup window choose to Insert Markdown format
- copy content of the converted confluence markdown file into the field in Confluence
- save it (Please note that page links doesn't work in page preview mode)

### Typescript definitions
- typescript definition file is located in subfolder 'types'
