helpers.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // import { ref } from 'vue'
  2. import { useUserStore } from '@/stores/user'
  3. export function useIdGenerator(fieldType, fieldName) {
  4. let prefix
  5. fieldName = fieldName.toString()
  6. switch (fieldType) {
  7. case 'text':
  8. prefix = 'txt'
  9. break
  10. case 'button':
  11. prefix = 'btn'
  12. break
  13. case 'email':
  14. prefix = 'eml'
  15. break
  16. case 'password':
  17. prefix = 'pwd'
  18. break
  19. case 'radio':
  20. prefix = 'rdo'
  21. break
  22. case 'label':
  23. prefix = 'lbl'
  24. break
  25. case 'select':
  26. prefix = 'sel'
  27. break
  28. case 'legend':
  29. prefix = 'leg'
  30. break
  31. case 'error':
  32. prefix = 'err'
  33. break
  34. default:
  35. prefix = 'txt'
  36. break
  37. }
  38. return {
  39. inputId: prefix + fieldName[0].toUpperCase() + fieldName.toLowerCase().slice(1)
  40. }
  41. }
  42. export function useValidationErrorIdGenerator(field) {
  43. return {
  44. valErrorId: 'valError' + field[0].toUpperCase() + field.toLowerCase().slice(1)
  45. }
  46. }
  47. export function useDisplayablePassword(pwd, reveal = false) {
  48. const user = useUserStore()
  49. if (user.preferences.formatPassword && pwd.length > 0) {
  50. const x = Math.ceil(user.preferences.formatPasswordBy < 1
  51. ? pwd.length * user.preferences.formatPasswordBy
  52. : user.preferences.formatPasswordBy)
  53. const chunks = pwd.match(new RegExp(`.{1,${x}}`, 'g'));
  54. if (chunks) {
  55. pwd = chunks.join(' ')
  56. }
  57. }
  58. return user.preferences.showOtpAsDot && !reveal ? pwd.replace(/[0-9]/g, '●') : pwd
  59. }
  60. export function startsWithUppercase(str) {
  61. return str.substr(0, 1).match(/[A-Z\u00C0-\u00DC]/);
  62. }