utils.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. module.exports = {
  2. createDrag (obj) {
  3. const drag = (ev) => {
  4. obj && obj.drag && obj.drag(ev)
  5. }
  6. const drop = (ev) => {
  7. document.removeEventListener('mousemove', drag)
  8. document.removeEventListener('mouseup', drop)
  9. obj && obj.drop && obj.drop(ev)
  10. }
  11. document.addEventListener('mousemove', drag)
  12. document.addEventListener('mouseup', drop)
  13. },
  14. guid (n) {
  15. var text = ''
  16. if (!n) n = 5
  17. var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  18. const d = new Date()
  19. text += possible[d.getMilliseconds() % possible.length]
  20. text += possible[d.getSeconds()]
  21. text += possible[d.getMinutes()]
  22. text += possible[d.getDate()]
  23. for (var i = 0; i < n; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)) }
  24. return text
  25. },
  26. textWrap (text, maxLen, opt) {
  27. const ret = []
  28. let parts = text.split(' ', -1)
  29. switch (opt) {
  30. case 'white-space':
  31. parts.forEach(n => { maxLen = Math.max(n.length + 1, maxLen) })
  32. break
  33. case 'any':
  34. // Break any word bigger than wrapThreshold
  35. let newParts = []
  36. parts.forEach(n => {
  37. while (n.length > maxLen) {
  38. const pre = n.substring(0, maxLen)
  39. newParts.push(pre)
  40. n = n.substr(maxLen)
  41. }
  42. newParts.push(n)
  43. })
  44. parts = newParts
  45. break
  46. }
  47. ret.push(parts[0])
  48. for (let i = 1; i < parts.length; i++) {
  49. let ri = ret.length - 1 // last
  50. if (ret[ret.length - 1].length + parts[i].length > maxLen) {
  51. ret.push(parts[i])
  52. } else {
  53. // we can add to same
  54. ret[ri] += ' ' + parts[i]
  55. }
  56. }
  57. return ret
  58. }
  59. }