Guest User

Untitled

a guest
Aug 17th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. computed: {
  2. pages () {
  3. // always shows the first page
  4. const start = [
  5. { handler: '‹', page: 1 },
  6. { handler: '1', page: 1 }
  7. ]
  8.  
  9. // always shows the last page
  10. const end = [
  11. { handler: this.totalPaged, page: this.totalPaged },
  12. { handler: '›', page: this.totalPaged }
  13. ]
  14.  
  15. const atTheBeginning = this.page <= this.amountBetween
  16. const atTheEnding = this.totalPaged - this.amountBetween <= this.page
  17. const atTheMiddle = !atTheBeginning && !atTheEnding
  18.  
  19. const middle = Array.from({ length: Math.max(0, this.amountBetween) }, (_, i) => {
  20. const delta = atTheBeginning ? 2 : atTheEnding ? this.totalPaged - this.amountBetween : this.page - Math.floor(this.amountBetween / 2)
  21.  
  22. return {
  23. handler: `${i + delta}`,
  24. page: i + delta
  25. }
  26. })
  27.  
  28. if (atTheMiddle) {
  29. middle[0] = {
  30. handler: '‹',
  31. page: this.page - 2
  32. }
  33.  
  34. middle[middle.length - 1] = {
  35. handler: '›',
  36. page: this.page + 2
  37. }
  38. }
  39.  
  40. return start.concat(middle, end)
  41. }
  42. }
Add Comment
Please, Sign In to add comment