* Issue - 141 - Validate macro actions (#141)
* review: refactor validation logic based on each macro tab component emitted event
* review: mouse key macro invalid if any of the X, Y fields are empty
* review: apply review comments for shorthand if conditions and imports
The minification change the class name so constructor.name not give back the correct class name.
Introduced getName() method in KeyAction and MacroAction Abstract class
* add @angular/cli to the project
* increase nodejs version -> 8.2.1
* add lerna
* merge web and shared module
* move electron module into packages as uhk-agent
Electron agent functionality is not working
* delete symlinker
* convert private properties to public of component if used in html
* revert uhk-message.component
* fix component path
* fix the correct name of the uhk-message.component.scss
* building web and electron module
* delete uhk-renderer package
* handle device connect disconnect state
* add privilege detection
* fix set privilege functionality
* turn back download keymap functionality
* add bootstrap, select2 js and fix null pointer exception
* turn back upload data to keyboard
* fix send keymap
* fix test-serializer
* add missing package.json
* merging
* fix appveyor build
* fix linting
* turn back electron storage service
* commit the missing electron-datastorage-repository
* update node to 8.3.0 in .nvmrc and log node version in appveyor build
* set exact version number in appveyor build
* vertical align privilege and missing device components
* set back node version to 8 in appveyor
* move node-usb dependency from usb dir to root
maybe it is fix the appveyor build
* revert usb to root
* fix electron builder script
* fix electron builder script
* turn off electron devtools
* remove CTRL+U functionality
* fix CTRL+o
* fix lint error
* turnoff store freeze
* start process when got `Error: EPERM: operation not permitted` error
* move files from root usb dir -> packages/usb
* feat(notification): Add undoable notification
* feat(notification): Add undoable notification
* feat(notification): Use uhk-header to the notification
* half ready solution
* - fix: "Keymap has been deleted" is displayed for macros.
- When a keymap/macro deletion gets undone, please set the route of the restored keymap/macro.
- When the user switches to another route, please make the undo notification disappear.
* fix(keymap): Store prev user configuration in the application reducer
Store the previous state in application reducer, because refactoring the
user-config reducer is not easy
* feat(keymap): Fix review request
* fix(keymap): Add tooltips to action icons
* fix(keymap): Remove console.log write
* feat(tooltip): New design of the tooltip
* feat(keymap): Show the tooltip of "Long press action" downward
* style(tooltip): Fix linting issues
* Launch application scancodes (closes#328)
* simple directive to map bootstrap tooltip, add sample usage
* Custom bootstrap tooltip with separate styles and directive (closes#329)
* fix: linting issues
* fix: try to ignore stylelint for !important
* review: simple tooltip with html content and custom styles
* cleanup extra html tags for tooltip sample
* build(webpack): Fix the request of a dependency is an expression
Critical dependency: the request of a dependency is an expression
* style: Fix spaces after object literal braces