{"version":3,"file":"Pagination.cjs","sources":["../../common/Pagination/Pagination.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { VNode } from \"vue\";\n\nimport { PaginationClassesKey, PaginationProps } from \"./types\";\n\nconst {\n  prevLabel = \"Previous\",\n  nextLabel = \"Next\",\n  from = 0,\n  to = 6,\n  current = 3,\n  type = \"default\",\n  total = 6,\n  classes = {} as Partial<Record<PaginationClassesKey, string>>,\n} = defineProps<PaginationProps>();\n\ndefineSlots<{\n  prev(): VNode;\n  next(): VNode;\n}>();\n\nconst emits = defineEmits<{\n  (e: \"onClick\", pageNumber: number): void;\n  (e: \"onPrev\"): void;\n  (e: \"onNext\"): void;\n}>();\n</script>\n\n<template>\n  <div :class=\"[classes?.root]\">\n    <nav v-if=\"type === 'default'\" data-testid=\"default-pagination-root\" aria-label=\"Pagination\" :class=\"['w-fit', classes?.container]\">\n      <ul :class=\"['inline-flex -space-x-px', classes?.itemContainer]\">\n        <li>\n          <div aria-hidden :class=\"['page-item-btn rounded-l-lg', classes?.prevItem]\" data-testid=\"prev-button\" @click=\"emits('onPrev')\">\n            <span v-if=\"!$slots?.prev\">{{ prevLabel }}</span>\n            <span v-if=\"$slots?.prev\">\n              <slot name=\"prev\" />\n            </span>\n          </div>\n        </li>\n        <li\n          v-for=\"(_, index) in Array.from({ length: to }, (_, i) => i)\"\n          :key=\"index\"\n          aria-hidden\n          :data-testid=\"`page-item-${index + 1}`\"\n          @click=\"emits('onClick', index + 1)\"\n        >\n          <div :class=\"['page-item', { 'page-current': current === index + 1 }, classes?.item, current === index + 1 && classes?.currentItem]\">\n            {{ index + 1 }}\n          </div>\n        </li>\n        <li>\n          <div aria-hidden :class=\"['page-item-btn rounded-r-lg', classes?.nextItem]\" data-testid=\"next-button\" @click=\"emits('onNext')\">\n            <span v-if=\"!$slots?.next\">{{ nextLabel }}</span>\n            <span v-if=\"$slots?.next\">\n              <slot name=\"next\" />\n            </span>\n          </div>\n        </li>\n      </ul>\n    </nav>\n    <div v-if=\"type === 'table'\" data-testid=\"table-pagination-root\" :class=\"['flex w-fit flex-col items-center', classes?.container]\">\n      <!-- Help text -->\n      <span data-testid=\"table-pagination-helpText\" :class=\"['text-app-gray-700 dark:text-app-gray-400 text-sm', classes?.tableText]\">\n        Showing <span class=\"text-app-gray-900 dark:text-app-white font-semibold\">{{ from + 1 }}</span> to\n        <span class=\"text-app-gray-900 dark:text-app-white font-semibold\">{{ to }}</span> of\n        <span class=\"text-app-gray-900 dark:text-app-white font-semibold\">{{ total }}</span> Entries\n      </span>\n      <!-- Buttons -->\n      <div :class=\"['xs:mt-0 mt-2 inline-flex']\">\n        <button type=\"button\" data-testid=\"table-pagination-prevBtn\" :class=\"['table-item rounded-l', classes?.prevItem]\" @click=\"emits('onPrev')\">\n          <span v-if=\"!$slots?.prev\">{{ prevLabel }}</span>\n          <span v-if=\"$slots?.prev\">\n            <slot name=\"prev\" />\n          </span>\n        </button>\n        <button type=\"button\" data-testid=\"table-pagination-nextBtn\" :class=\"['table-item rounded-r', classes?.nextItem]\" @click=\"emits('onNext')\">\n          <span v-if=\"!$slots?.next\">{{ nextLabel }}</span>\n          <span v-if=\"$slots?.next\">\n            <slot name=\"next\" />\n          </span>\n        </button>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n@reference \"../../styles/main.css\";\n\n.page-item {\n  @apply px-3 py-2 ml-0 leading-tight text-app-gray-500 bg-app-white border border-app-gray-300 cursor-pointer hover:bg-app-gray-100 hover:text-app-gray-700 dark:bg-app-gray-800 dark:border-app-gray-700 dark:text-app-gray-400 dark:hover:bg-app-gray-700 dark:hover:text-app-white;\n}\n\n.page-current {\n  @apply text-app-primary-600 bg-app-primary-50 hover:bg-app-primary-100 hover:text-app-primary-600 dark:border-app-gray-700 dark:bg-app-primary-600 dark:text-app-white;\n}\n\n.table-item {\n  @apply px-4 py-2 text-sm font-medium text-app-white bg-app-gray-800 hover:bg-app-gray-900 dark:bg-app-gray-800 dark:border-app-gray-700 dark:text-app-gray-400 dark:hover:bg-app-gray-700 dark:hover:text-app-white;\n}\n</style>\n"],"names":["emits","__emit","_createElementBlock","_normalizeClass","__props","_createElementVNode","$slots","_openBlock","_hoisted_2","_renderSlot","_ctx","_Fragment","_renderList","_","i","index","$event","_hoisted_5","_hoisted_6","_toDisplayString","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_11","_hoisted_13"],"mappings":"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"}