@empathyco/x-components
Version:
Empathy X Components
79 lines (76 loc) • 3.14 kB
JavaScript
import _sfc_main from './page-selector.vue2.js';
import { openBlock, createElementBlock, createElementVNode, normalizeClass, renderSlot, createTextVNode, Fragment, renderList, toDisplayString, createCommentVNode } from 'vue';
import './page-selector.vue3.js';
import _export_sfc from '../_virtual/_plugin-vue_export-helper.js';
const _hoisted_1 = {
key: 0,
class: "x-page-selector",
"aria-label": "Pagination"
};
const _hoisted_2 = ["disabled", "aria-disabled"];
const _hoisted_3 = ["data-test", "aria-label", "aria-current", "onClick"];
const _hoisted_4 = ["disabled", "aria-disabled"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.visiblePages?.length > 1 ? (openBlock(), createElementBlock("nav", _hoisted_1, [
createElementVNode("button", {
class: normalizeClass(["x-button", _ctx.buttonClasses]),
disabled: _ctx.currentPage === 1,
"data-test": "previous-page-button",
"aria-label": "Previous page",
"aria-disabled": _ctx.currentPage === 1,
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.selectPage(_ctx.currentPage - 1))
}, [
renderSlot(_ctx.$slots, "previous-page-button", {}, () => [
createTextVNode("Prev")
], true)
], 10, _hoisted_2),
(openBlock(true), createElementBlock(
Fragment,
null,
renderList(_ctx.visiblePages, (page) => {
return openBlock(), createElementBlock("button", {
key: page.value,
class: normalizeClass(["x-button x-page-selector__page", [
_ctx.itemClasses(page.isSelected),
{
"x-page-selector__page--current": page.isSelected,
"x-page-selector__page--hidden": page.value === _ctx.hiddenPage
}
]]),
"data-test": `page-button-${page.value}`,
"aria-label": `Page ${page.value}`,
"aria-current": page.isSelected ? "page" : void 0,
onClick: ($event) => _ctx.selectPage(page.value)
}, [
renderSlot(_ctx.$slots, "page-button", {
page: page.value,
isSelected: page.isSelected
}, () => [
createTextVNode(
toDisplayString(page.value),
1
/* TEXT */
)
], true)
], 10, _hoisted_3);
}),
128
/* KEYED_FRAGMENT */
)),
createElementVNode("button", {
class: normalizeClass(["x-button", _ctx.buttonClasses]),
disabled: _ctx.currentPage === _ctx.totalPages,
"data-test": "next-page-button",
"aria-label": "Next page",
"aria-disabled": _ctx.currentPage === _ctx.totalPages,
onClick: _cache[1] || (_cache[1] = ($event) => _ctx.selectPage(_ctx.currentPage + 1))
}, [
renderSlot(_ctx.$slots, "next-page-button", {}, () => [
createTextVNode("Next")
], true)
], 10, _hoisted_4)
])) : createCommentVNode("v-if", true);
}
var pageSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b08cf95a"]]);
export { pageSelector as default };
//# sourceMappingURL=page-selector.vue.js.map