* refactor(plugin-acl): extensible support for role permissions configuration UI
* feat: complete the configuration UI
* feat: complete the backend section
* chore: update unit tests
* chore: add translation
* chore: change 'Menu' to 'Desktop menu'
* refactor: use 'extendCollection' instead of 'this.db.extendCollection'
* chore: update acl e2e test
* test: add e2e tests
* fix: should refresh data when changing tab
* fix(menu): should hide children when children only have one
* feat: show tip when no pages find
* feat(tabBar): supports left and right swiping
* refactor: improve code
* chore: make e2e test pass
* chore: add migration
* fix: should use tk instead of values
* chore: nothing
* fix: improve
* refactor: rename mobileMenuUiSchemas to mobileRoutes
* refactor: add onDelete
* fix: change snippet to 'pm.mobile' from 'pm.mobile.roles'
* refactor: extract nested loop to outside
* refactor: use db.on('mobileRoutes:afterCreate')
* refactor: simplify code logic
* chore: fix build
* fix: improve code
* chore: fix build
* feat: hide menu configuration UI when no permission
---------
Co-authored-by: chenos <chenlinxh@gmail.com>