No exemplo a constante registroInicial
possui uma função que não é genérica (não aceita todos os casos). Para corrigir é interessante substituir o -1 da parte : (page * pageOffset) - 1
por : (page * pageOffset) - pageOffset
.
O motivo é que (page * pageOffset)
calcula a posição real na tabela que o limite (pageOffset) pode alançar junto a essa página. Se subtrairmos a quantidade de registros de cada página (pageOffset) vamos encontrar a posição real que inicia essa página atual.
Resultado final: