* Merge branch 'master' into chore-upgrade-angular-to-7
* reformat files of the store
* set preserveWhitespaces = true
* delete console.log from AutoGrowInputComponent
* fix null pinter exception when set the keyaction on an undefined key
* speed tuning
* delete svg-keyboard-key animation
* revert electron logger upgrade
* improve animation speed of scg-keyboard-key component
* fix: popover keymap tab visibility
* fix: remove btn-line css class
The `let` operator was not migrated because earlier two reducer needed be refactored
- user-configuration reducer
- present reducer
This commit is prerequisite of the angular upgrade.
* feat: show udev rules on missing device screen
* delete MissingDeviceComponent
* feat: change privilege and message device screen texts
* feat: change message device screen texts
* fix: load config from device
* fix: load config when hasPermission = true
* fix: load app start info after set permission rules
* fix: action dispatch
* fix: load config from device when UdevRulesInfo.Ok
* fix: load config from device when 0 device available
* feat: add extra space between the "old udev rule" and permission button
* feat: make double tap to hold layer optional per key
* test: fix test serializer
* fix: remove "application start" text
* Add double-tap.svg
* Add closing dot at the end of the sentence.
* fead: add double-tap icon
* Bundle firmware version 8.3.0
* feat: 'layer-double-tap' feature flag
* feat: convert SwitchLayerMode to string enum
* feat: add clipboard copy icon to the x-term-component
* feat: start device poll after firmware upgrade
* feat: remove the OK button from the firmware upgrade page
* feat: read the firmware after firmware upgrade
* fix: scrolling of the x-term-component
* feat: refresh the firmware version after recovery device
* fix: remove the scrollbar styling
* fix: stay on device firmware upgrade screen
* feat: Make saving the configuration more robust
* parse backup user config before return
* fix some bug
* Add write-userconfig.js and invalid-config.bin
* throw exception if failed user config parsing
* Merge branch 'master' into feat-467-make-save-more-robust
* hide keymaps and macros if agent in restore mode
* fix Device name settings
* Add generate version module script
* Remove Fork me on GitHub banner
* Add app-version.ts
* Revert "Add app-version.ts"
This reverts commit fe1a37e631.
* Add app-version.ts
* Add agent icon class
* Move settings component under agent folder
* Add AboutComponent
* Add agent routes
* Add index.ts for agent folder
* Fix agent folder imports in shared module
* Add agent menu to side menu, with Settings and About pages under it
* Fix agent icon alignment in side menu
* Simplify About page
* Make Agent menu 0 level in side menu
* Remove bottom Settings menu
* Fix Agent menu closing if My UHK is closed in side menu
* Fix version text alignment in auto update settings
* Remove github fork ribbon styles
* use package.json instead of app-version.ts
* fix OpenUrlInNewWindow naming
* fix lint request
* fix: firmware download url calculation
* fix(device): check privilege on Linux
* device connected if also have permission
* fix rules sh path
* refactor permission detection
* fic hasPermission condition
* fix return value
* Change UsbCommandId_SetTestLed from 0x02 to 0x14
* Change UsbCommandId_JumpToModuleBootloader from 0x12 to 0x02.
* Change UsbCommandId_SendKbootCommandToModule from 0x13 to 0x03.
* Replace UsbCommandId_ReadHardwareConfig and UsbCommandId_ReadUserConfig with UsbCommandId_ReadConfig.
* Change UsbCommandId_WriteHardwareConfig and UsbCommandId_WriteUserConfig to 0x05 and 0x06.
* Change UsbCommandId_ApplyConfig to 0x07.
* Change the arguments of UsbCommandId_LaunchEepromTransfer and its id to 0x08.
* Change the value of UsbCommandId_{GetDeviceState,SetTestLed,GetDebugBuffer,GetAdcValue,SetLedPwmBrightness}.
* Use firmware 6.0.0
* Add a number of properties to the user config that are related to mouse movement, LED brightness, data model versioning, and double tap switch layer timeout. Update firmware related version numbers.
* use default config if parse loaded config from device failed
* add asserts to the new user config fields
* separate user and hardware config parser
* fix indent
* fix user-config size read